Ansicht
Dokumentation

BAPI_OUTB_DELIVERY_CREATE_STO - Erzeuge Lieferung zur Umlagerbestellung

BAPI_OUTB_DELIVERY_CREATE_STO - Erzeuge Lieferung zur Umlagerbestellung

General Data in Customer Master   SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Funktionalität

Zu einer Umlagerbestellung (STO) oder einzelnen Umlagerbestellpositionen wird eine Lieferung erstellt. Durch einen Liefersplit kann es auch zur Anlage mehrerer Lieferungen kommen.

Mit Ausnahme der Umlagerbestellnummer in mindestens einem Eintrag des Parameters STOCK_TRANS_ITEMS sind alle Parameter optional.

Schnittstelle

Parameter Opt.   Bedeutung
Import  
SHIP_POINT X   Versandstelle
DUE_DATE X   Lieferungserstelldatum
DEBUG_FLG X   Erzwingt Abbruch (ALE-Analyse)
Export  
DELIVERY X   Erste erzeugte Lieferung
NUM_DELIVERIES X   Anzahl erzeugter Lieferungen
Tabellen   Richtung
STOCK_TRANS_ITEMS   Import Bestellpositionen/ Bestellnr. (STO)
SERIAL_NUMBERS X Import Serialnummern
EXTENSION_IN X Import Zusätzliche Eingabedaten
DELIVERIES X Export Erzeugte Lieferungen
CREATED_ITEMS X Export Erzeugte Lieferungspositionen
EXTENSION_OUT X Export Zusätzliche Ausgabedaten
RETURN X Export Fehlerprotokoll

Opt.: Optional
Richtung: Gibt bei Tabellenparametern die verwendete Richtung an.

Achtung:
Die exportierten Tabellenparameter werden vor der Verarbeitung initialisiert. Daten, die vor Aufruf des BAPIs in diesen Parametern enthalten waren, gehen damit verloren.

Importierte Parameter

Versandstelle (SHIP_POINT)
Wird die Versandstelle nicht vorgegeben, so wird die erste Versandstelle gewählt, die unter den referenzierten Bestellpositionen ermittelt werden kann.

Lieferungserstelldatum (DUE_DATE)
Als Lieferungserstelldatum wird der 31.12.9999 gewählt, wenn nicht anders vorgegeben.

DEBUG_FLG
Nur für den internen Gebrauch. Das DEBUG_FLG kann in der ALE-Eingangsverarbeitung genutzt werden, um einen Abbruch zu erzwingen und somit die Analyse der Verarbeitung erleichtern.

Umlagerbestellung (STOCK_TRANS_ITEMS-REF_DOC)
Werden keine weiteren Angaben zu einer Umlagerbestellung gemacht, wird die gesamte Bestellung beliefert. Es müssen also nicht alle Bestellpositionen aufgelistet werden. Die Angabe nur der Bestellnummer der STO ist ausreichend.

Umlagerbestellposition (STOCK_TRANS_ITEMS-REF_ITEM)

Die Bestellposition muss angegeben werden, wenn

  • nicht alle Bestellpositionen der STO beliefert werden sollen oder
  • Liefermengen vorgegeben werden sollen oder
  • Bestellpositionen in verschiedenen Lieferungen (externe Nummernvergabe) beliefert werden sollen.
Achtung:

  • Eine Bestellposition darf nicht mehrfach in STOCK_TRANS_ITEMS vorkommen.
  • Eine Bestellposition darf nicht vorkommen, wenn die Bestellnummer bereits in einem anderen Eintrag als alleinige Angabe vorkommt.

Liefermengen (STOCK_TRANS_ITEMS-LFIMG)
Werden keine Liefermengen vorgegeben, werden diese unter Berücksichtigung des Lieferungserstelldatums aus den Einteilungen ermittelt. Anderenfalls wird die Liefermenge aus der Vorgabe übernommen.

Bei Vorgabe der Liefermenge ist die Angabe der Verkaufsmengeneinheit erforderlich - entweder als SAP-Code (SALES_UNIT) oder ISO-Code (SALES_UNIT_ISO).

Liefermengen können nur für einzelne Bestellpositionen angegeben werden.

Externe Liefernummer (STOCK_TRANS_ITEMS-DELIV_NUMB)
Die Liefernummer kann aus dem externen Nummernkreisintervall vorgegeben werden.

Serialnummern (SERIAL_NUMBERS)
Im Parameter SERIAL_NUMBERS können Serialnummern den Lieferpositionen zugeordnet werden, die die angegebenen Bestellpositionen beliefern.

Zusätzliche Import-Daten (EXTENSION_IN)
Im Parameter EXTENSION_IN können zusätzliche Daten übergeben werden. Weitere Informationen hierzu finden Sie in der Dokumentation des BADIs BADI_DLV_CREATE_STO_EXTIN.

Exportierte Parameter

Liefernummer (DELIVERY)
Erzeugte Lieferung (Schlüsselfeld im BOR-Objekttyp LIKP). Im Falle eines Liefersplits ist dies die erste erzeugte Lieferung.

Anzahl erzeugter Lieferungen (NUM_DELIVERIES)
Im Falles eines Liefersplits können mehr als eine Lieferung erzeugt werden.

Erzeugte Lieferungen (DELIVERIES)
Liste aller erzeugten Lieferungen (inkl. DELIVERY).

Erzeugte Lieferpositionen (CREATED_ITEMS)
Liste aller erzeugten Lieferpositionen.

Zusätzliche Export-Daten (EXTENSION_OUT)
Bei synchronem Aufruf können nach Lieferungserstellung noch weitere Daten an den Aufrufer im Parameter EXTENSION_OUT zurückgegeben werden. Siehe Dokumentation des BADIs BADI_DLV_CREATE_EXTOUT.

Fehlerprotokoll (RETURN)
Der Parameter RETURN enthält das Fehlerprotokoll.

Analog zu Transaktion VL10 können Lieferungen u.U. auch dann angelegt werden, wenn es während der Verarbeitung zu Fehlermeldungen kam. Da ein asynchroner Aufrufer des BAPIs (ALE) den Erfolg der Verarbeitung nur über den RETURN-Parameter erfährt, werden Fehlermeldungen zu Warnmeldungen konvertiert, wenn mindestens eine Lieferung angelegt werden konnte. Für eine erfolgreich angelegte Lieferung mit konvertierten Fehlermeldungen wird die Meldung VLBAPI061 (s.u.) ausgegeben.

Ferner enthält RETURN folgende wichtige Meldungen:

Nachricht Bedeutung
BAPI000 Eine Lieferung konnte angelegt werden
BAPI001 Eine Lieferung konnte nicht angelegt werden
VLBAPI061 Lieferung mit Fehlern angelegt (siehe Warnmeldungen)
VL311 Lieferung wurde gesichert

Im asynchronen Fall kann daher den Meldungen VL311 entnommen werden, welche Lieferungen angelegt werden konnten.

Transaktionales Verhalten

  • Kein COMMIT WORK.
  • ROLLBACK WORK, wenn keine Lieferung erstellt werden konnte.

Beispiel

Der folgende Report beliefert eine Umlagerbestellung.

report  zz_test_create_sto.

parameters: vbeln like ekko-ebeln OBLIGATORY memory id bes,
            vstel like tvst-vstel,
            logsys like tbdls-logsys default 'NONE'.

data: lf_vbeln type vbeln_vl,
      lf_num type vbnum,
      ls_deli type bapishpdelivnumb,
      lt_deli type table of bapishpdelivnumb,
      lt_order type table of bapidlvreftosto,
      ls_order type bapidlvreftosto,
      ls_itm type bapidlvitemcreated,
      lt_itm type table of bapidlvitemcreated,
      ls_ext type bapiparex,
      lt_extin type table of bapiparex,
      lt_extout type table of bapiparex,
      ls_ret type bapiret2,
      lt_return type table of bapiret2.

* StockTransItems (here: complete STO)
ls_order-ref_doc = vbeln.
append ls_order to lt_order.

* ExtensionIn
ls_ext = 'My additional input'.
append ls_ext to lt_extin.

* Synchronous RFC
call function 'BAPI_OUTB_DELIVERY_CREATE_STO'
   DESTINATION logsys
    EXPORTING
      SHIP_POINT              = vstel
*     DUE_DATE                =
*     DEBUG_FLG               =
  importing
    delivery                = lf_vbeln
    num_deliveries          = lf_num
  tables
    stock_trans_items       = lt_order
    extension_in            = lt_extin
    deliveries              = lt_deli
    created_items           = lt_itm
    extension_out           = lt_extout

    return                  = lt_return
          .

write: / 'Delivery:', lf_vbeln,
       / 'NumDeliveries:', lf_num,
       / 'Deliveries:'.
loop at lt_deli into ls_deli.
  write ls_deli-deliv_numb.
endloop.

if not lt_itm[] is initial.
  write: / 'CreatedItems:'.
  loop at lt_itm into ls_itm.
    write: / ls_itm-ref_doc,
             ls_itm-ref_item,
             ls_itm-deliv_numb,
            ls_itm-deliv_item,
             ls_itm-material,
             ls_itm-dlv_qty,
             ls_itm-sales_unit,
             ls_itm-sales_unit_iso.
  endloop.
endif.

if not lt_return[] is initial.
  write: / 'Return:'.
  loop at lt_return into ls_ret.
    write: / ls_ret-type, ls_ret-id, ls_ret-number,
             ls_ret-message,
           /.
  endloop.
endif.

if not lt_extout[] is initial.
  write: / 'ExtensionOut:'.
  loop at lt_extout into ls_ext.
    write: / ls_ext.
  endloop.
endif.

* COMMIT WORK
if not lf_vbeln is initial.
  commit work.
endif.

Hinweise

  • Das BAPI kann mehrere Umlagerbestellungen gleichzeitig beliefern, ist jedoch nicht für eine Massenbelieferung ausgelegt.
  • Das BAPI kann nicht mehrfach in derselben Logical Unit of Work (LUW) aufgerufen werden. Nach einem erfolgreichen Aufruf ist ein COMMIT WORK des Aufrufer erforderlich bevor dieses oder ein anderes BAPI der Funktionsgruppe V50I gerufen werden kann.
  • Das BAPI kann keine Lieferpositionsnummern vorgeben.

Weiterführende Informationen

  • Dokumentation zum Parameter STOCK_TRANS_ITEMS.
  • Dokumentation der BADIs
  • BADI_DLV_CREATE_STO_EXTIN und

  • BADI_DLV_CREATE_EXTOUT.





Parameter

CREATED_ITEMS
DEBUG_FLG
DELIVERIES
DELIVERY
DUE_DATE
EXTENSION_IN
EXTENSION_OUT
NO_DEQUEUE
NUM_DELIVERIES
RETURN
SERIAL_NUMBERS
SHIP_POINT
STOCK_TRANS_ITEMS

Ausnahmen

Funktionsgruppe

V50I

Vendor Master (General Section)   BAL_S_LOG - Application Log: Log header data  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 17112 Date: 20240523 Time: 153749     sap01-206 ( 131 ms )