Funktionsbaustein GN DELIVERY CREATE
Aus SAP-Wiki
Zur Navigation springenZur Suche springen
Der Funktionsbaustein GN_DELIVERY_CREATE kann Anlieferungen und Auslieferungen anlegen.
Beispielcoding
Data: ls_vbsk TYPE vbsk, "Vertriebsbeleg Sammelgang Kopf INSERT INITIAL LINE INTO TABLE lt_komdlgn ASSIGNING FIELD-SYMBOL(<ls_komdlgn>). <ls_komdlgn> = VALUE #( lifnr = mv_lifnr "Lieferant matnr = ls_tab-matnr_sap "Material werks = ls_tab-werks "Werk vgbel = ls_tab-ebeln_sap "Bestellung vgpos = ls_tab-ebelp "Bestellposition lgort = ls_tab-lgort "Lagerort vgtyp = 'V' "Belegtyp Vorgänger = Bestellung vstel = '1010' "Versandstelle 1010 lfdat = sy-datlo "Lieferdatum Heute lfuhr = sy-timlo "Lieferuhrzeit Jetzt lfimg = ls_tab-menge "Menge meins = ls_tab-meins "Mengeneinheit vrkme = ls_tab-meins "Verkaufsmengeneinheit lfart = 'PELS' "Lieferart PELS = Anl. bew. empf. TrB pstyv = 'ZELS' "Positionstyp ZELS = vwpos = 'V' "Verwendung der Position bolnr = lv_bolnr "Frachtbrief traid = lv_traid "Container lifex = lv_lifex "Referenz kzazu = abap_true "Auftragszusammenführung EXT_REBERSTE, 20.10.2021, ). * Lösche führende Nullen aus der LIeferreferenz SHIFT <ls_komdlgn>-lifex LEFT DELETING LEADING '0'. DATA(ls_control) = VALUE leshp_delivery_proc_control_in( splitprot_requested = 'X' "Tabelle LT_SPLITPROT wird gefüllt für Splitursache Anlieferungen * Setzen Parameter 'SPE_MAX_NR_DELIVERIES = 1' beim Fkt. 'GN_DELIVERY_CREATE' bei Anlegen Anlieferung. * Dadurch wird nur 1 Anlieferung erzeugt (statt für jede Bestellreferenz 1 Anlieferung) spe_max_nr_deliveries = 1 "Dadurch wird nur 1 Anlieferung erzeugt (statt für jede Bestellreferenz 1 Anlieferng) ). DATA: lt_vbadr TYPE shp_sadrvb_t ##NEEDED, lt_vbpa TYPE shp_vl10_vbpa_t ##NEEDED, lv_no_commit TYPE xfeld. * Die Anlieferung wird nicht sofort physisch angelegt, um beim Debuggen noch abbrechen zu können nach Ausführung Fkt. lv_no_commit = abap_true. * Anlegen von Lieferungen mit Funktionsbaustein 'GN_DELIVERY_CREATE' CALL FUNCTION 'GN_DELIVERY_CREATE' EXPORTING vbsk_i = ls_vbsk no_commit = lv_no_commit is_control = ls_control "Kontrollstruktur: Anforderung Füllen Splitkriterien -> Protokoll in LT_sPLITPROT is_borgr_control = ls_borgr_control "Aktuell nicht gefüllt (nötig?) IMPORTING vbsk_e = ls_vbsk_e "Tabelle VBSK et_splitprot = lt_splitprot "Ursachen für Splits Anlieferungen et_vbadr = lt_vbadr et_vbpa = lt_vbpa TABLES xkomdlgn = lt_komdlgn "Tabelle Positionen xvbfs = lt_vbfs "Fehlerprotokoll Sammelgang xvbls = lt_vbls. "Lieferscheine zum Sammelgang