Um im ERP eine Auslieferung in Bezug zu einem Kundenauftrag anzulegen, ist folgender BAPI nötig.
Edit: Der BAPI wurde mittlerweile umbenannt und lautet jetzt BAPI_OUTB_DELIVERY_CREATE_SLS. Danke an Dovahkiin (siehe Kommentare)
DATA lt_sales_order_items TYPE TABLE OF bapidlvreftosalesorder. DATA ls_sales_order_item LIKE LINE OF lt_sales_order_items. ls_sales_order_item-ref_doc = lf_vbeln_ka. APPEND ls_sales_order_item TO lt_sales_order_items. CALL FUNCTION 'BAPI_OUTBOUND_DELIVERY_CREATE_SLS' IMPORTING delivery = lf_vbeln_lf TABLES sales_order_items = lt_sales_order_items[] return = lt_return[].
Einen Transport zur Auslieferung erstellt man über folgenden BAPI.
DATA lt_itemdata TYPE TABLE OF bapishipmentitem. DATA ls_itemdata LIKE LINE OF lt_itemdata. DATA ls_headerdata TYPE bapishipmentheader. ls_headerdata-shipment_type = lf_shtyp. " Transporttyp ls_headerdata-trans_plan_pt = lf_tplst. " Transportdispostelle ls_headerdata-service_agent_id = lf_tdlnr. " Spediteur ls_headerdata-status_plan = 'X'. " Status des TA setzen ls_headerdata-status_checkin = 'X'. ls_itemdata-delivery = lf_vbeln_lf. ls_itemdata-itenerary = 1. APPEND ls_itemdata TO lt_itemdata. CALL FUNCTION 'BAPI_SHIPMENT_CREATE' EXPORTING headerdata = ls_headerdata TABLES itemdata = lt_itemdata[] return = lt_return[].
Der Name des Bausteins zur Anlage einer Lieferung zum Auftrag wurde umbenannt und lautet jetzt: ‚BAPI_OUTB_DELIVERY_CREATE_SLS‘