Hallo Christoph,
wenn du dir die Tabelle in SE16 anschaust, dann wirst du selber auf die Lösung kommen.
Wenn im Kopf eines Auftrages eine Kundenbestellnummer steht, dann heisst dass noch lange nicht, dass in der Tabelle VBKD für jede Auftragsposition ein Datensatz vorhanden ist. Das ist uns im Zusammenhang mit Warenausgangsetiketten aufgefallen, wo Kunden auch ihre Kundenbestellnummer angedruckt haben wollten.
Die Lösung ist also folgendes:
" Kundenbestellnummer besorgen aus Positionsbereich bzw. Kopf des Kundenauftrags?
select single bstkd from VBKD into ( z_vbkd_bstkd ) where VBELN = z_lips-vgbel and POSNR = z_lips-vgpos.
if sy-subrc = 4. " nein, nicht im Positionsbereich. Also im Kopf gucken
select single bstkd from VBKD into ( z_vbkd_bstkd ) where VBELN = z_lips-vgbel and POSNR = '000000'.
endif.
Mit freundlichen Grüßen
Matthias Alpmann