https://ibb.co/pd4jpLR
Hallo zusammen. Ich habe folgendes Problem:
In die Tabelle Vbap wurde neue Spalte ZZBELEGDAT durch APPEND hinzugefügt. Das hat ein anderer Entwickler in 10.2018 gemacht. Ich mache jetzt ein Programm, wo anhand dieses Feldes selektiert wird. Die Tabelle hat gegen 50 Tausend Einträge. Wenn ich durch ZZBELEGART selektiere, bekomme ich durch ganzes Zeitraum 46 Sätze. Wenn ich blanke Felder selektiere (is not initial) bekomme 86 Sätze. Also die Sätze bis 10.2018 tauchen nicht auf. Ich kann die zwar durch ein kleines Programm füllen und dann wieder leer machen, damit die gefunden werden können, aber ich eine „schickere“ Lösung suche. Gibts vllt irgendwelche Standardlösung dafür? Oder habt ihr die Vorschläge?
Das ist ein böse Falle, in die ihr da getappt seid.
Wahrscheinlich wurde in dem Append-Feld das Flag "Initialisieren" nicht gesetzt.
Ist das der Fall, dann ist der Wert des Feldes bei allen existierenden Einträgen "NULL".
Die bekommst du also nur selektiert, wenn du explizit auf "IS NULL" abfragst.
Bei allen neu hinzukommenden Einträge wird das Feld korrekt mit "space" initialisiert.
am einfachsten wäre es also, das "Init-Flag" zu setzen.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Du kannst im Append über SE11-> über Zusätze->DB Eigenschaften -> Initialisierungsflag Ein/Aus das Initialiseren der Felder erzwingen.
Danach sollte auch der Zugriff über IS NOT INITIAL und so funktionieren.
Es nicht zu wissen ist eine Sache. Aus Versehen beim Anlegen der Tabelle den Klicker zu vergessen eine andere. Ich gebe Dir recht: Beim Anlegen von Tabellen sollte man doppelt und dreifach sorgfältig vorgehen, und ich fluche selbst darüber, dass der Anteil der Datenbanktabellen mit durchdacht gewähltem Primärindex zumindest bei (nicht von mir stammenden) Z-Tabellen drastisch unterhalb der 50% zu liegen pflegt (das dürfte für die allermeisten Firmen gelten). Aber dennoch sind wir alle nur Menschen, und solche Flüchtigkeitsfehler passieren.
Davon abgesehen hat nicht jeder sein ABAP im Lehrgang gelernt, so wie Du anscheinend. Ich kannte andere Programmiersprachen und habe mich 14 Tage mit einem ABAP-für-Einsteiger-Buch in die Ecke verkrümelt. Den Rest habe ich on the job gelernt. Auch das halte ich für legitim. (Und ich behaupte, bei der Anlage von Tabellen - extern wie intern - achte ich sorgsamer auf die Details als die meisten, die das in einem Lehrgang gelernt haben.)