Update vbap
set feldA = itab_vbap-feldA
feldB = itab_vbap-feldB
feldC = itab_vbap-feldC
where vbeln = itab_vbap-vbeln.
Die Syntaxprüfung ist auch erfolgreich.
Der sy-subrc beträgt allerdings 4 !
Die interne Tabelle itab_vbap ist ordnungsgemäß gefüllt. Sie beinhaltet zwar nicht alle Felder aus der VBAP, sondern nur eine bestimmte Anzahl, aber die übergebe ich deswegen ja auch extra einzeln per set-Anweisung.
Hat es mit den Schlüsseln bei der VBAP zu tun? Dort ist ja auch die POSNR als Schlüssel angegeben. Ich möchte zu einem Auftrag mit z.B. der Nummer 7 auf jede Zeile der Position - also egal, ob nun nur eine oder vier Positionen vorhanden sind - die Einträge vornehmen. Kann ich Update nur unter Benutzung aller vorhandenen Schlüssel nutzen?
Nimm die Menschen wie sie sind, es gibt keine anderen.
Du updatest aber nicht Keyfelder das geht nicht ?!
Einzige Möglichkeit falls notwendig die Zeile in eine Workarea schreiben-> Zeile löschen und dann mit Modifizierung ein Insert machen.
@DeathGuardian: Hab's gerade noch mal überprüft. Die VBELN ist in Ordnung.
@Alex: Tja, dann probier ich das mal so aus mit dem Loop. Die itab_vbap ist schon eine ganze interne Tabelle. Ich wollte es ursprünglich vermeiden, zu loopen, weil dass doch so auf die Performance geht. Und die Syntax mit dem Update von einer internen Tabelle habe ich so aus der ABAP-Referenz. Ich war dann natürlich davon ausgegangen, dass das auch so funktioniert.
Nimm die Menschen wie sie sind, es gibt keine anderen.