qyurryus hat geschrieben:Coding würde weiterhelfen!
Kristallkugel-Methode:
- der Funktionsbaustein hat eine (für SAP-Verhältnisse) detaillierte Dokumentation, ansonsten diese sich einmal anschauen. Dort wird auch für FAQs auf die SAP-Hinweise 197958 und 499626 verwiesen.
- Wahrscheinlich erweiterst du POITEM um eine Zeile - dabei beachten dass Änderungen auch in den analogen Tabellen mit "X"-Suffix markiert werden müssen (in diesem Fall POITEMX).
Code: Alles auswählen.
lt_poitem-po_item = ls_struc-ebelp.
lt_poitem-material = ls_struc-matnr.
lt_poitem-plant = ls_struc-werks.
lt_poitem-quantity = 1.
lt_poitem-stge_loc = '1000'.
APPEND lt_poitem.
lt_poitemx-po_item = 'X'.
lt_poitemx-stge_loc = 'X'.
lt_poitemx-plant = 'X'.
lt_poitemx-material = 'X'.
lt_poitemx-quantity = 'X'.
APPEND lt_poitemx.
lt_potextitem-po_item = ls_struc-ebelp.
lt_potextitem-text_id = 'F01'.
lt_potextitem-text_form = 'EKPO'.
lt_potextitem-text_line = ls_struc-postext.
APPEND lt_potextitem.
lt_poschedule-po_item = ls_struc-ebelp.
lt_poschedule-sched_line = '00001'.
lt_poschedule-quantity = 1.
lt_poschedule-delivery_date = ls_struc-eindt.
APPEND lt_poschedule.
lt_poschedulex-po_item = ls_struc-ebelp.
lt_poschedulex-sched_line = '00001'.
lt_poschedulex-quantity = 'X'.
lt_poschedulex-delivery_date = 'X'.
APPEND lt_poschedulex.
CALL FUNCTION 'BAPI_PO_CHANGE'
EXPORTING
purchaseorder = ls_struc-ebeln
no_messaging = ''
no_message_req = ''
memory_complete = 'X'
TABLES
return = lt_return
poitem = lt_poitem
poitemx = lt_poitemx
potextitem = lt_potextitem
poschedule = lt_poschedule
poschedulex = lt_poschedulex.
Code: Alles auswählen.
...
lt_poitemx-po_item = ls_struc-ebelp. "Statt 'X' muss hier die neue Positionsnummer eingetragen werden
lt_poitemx-stge_loc = 'X'.
lt_poitemx-plant = 'X'.
lt_poitemx-material = 'X'.
lt_poitemx-quantity = 'X'.
APPEND lt_poitemx.
...