[ABAP] BAPI: Bestellung ändern

* Bestellung
PARAMETERS: p_po TYPE bapimepoheader-po_number DEFAULT '0001234567'.
* Testmodus
PARAMETERS: p_test TYPE bapiflag-bapiflag DEFAULT abap_true.
* Authority-Check
PARAMETERS: p_noauth TYPE bapiflag-bapiflag DEFAULT abap_true.

* Returnparameter
DATA: it_return TYPE STANDARD TABLE OF bapiret2 WITH DEFAULT KEY.
* Bestellung Kopfdaten
DATA: lv_bapimepoheader TYPE bapimepoheader.
* Bestellung Kopfdaten (Änderungsleiste)
DATA: lv_bapimepoheaderx TYPE bapimepoheaderx.
* Bestellposition
DATA: it_bapimepoitem TYPE STANDARD TABLE OF bapimepoitem WITH DEFAULT KEY.
* Bestellung Positionsdaten (Änderungsleiste)
DATA: it_bapimepoitemx TYPE STANDARD TABLE OF bapimepoitemx WITH DEFAULT KEY.

* Headerdaten
lv_bapimepoheader = VALUE #( po_number = p_po
                             pmnttrms = 'ZB03'
                           ).

* Flags zum Ändern der Headerdaten
lv_bapimepoheaderx = VALUE #( po_number = abap_true
                              pmnttrms = abap_true
                            ).

* Positionsdaten
it_bapimepoitem = VALUE #( ( po_item = '00001'
                             quantity = '1.0'
                           )
                         ).

* Flags zum Ändern der Positionsdaten
it_bapimepoitemx = VALUE #( ( po_item = '00001'
                              po_itemx = abap_true
                              quantity = abap_true
                            )
                          ).

* Bestellung ändern
CALL FUNCTION 'BAPI_PO_CHANGE'
  EXPORTING
    purchaseorder = p_po
    no_authority  = p_noauth
    testrun       = p_test
    poheader      = lv_bapimepoheader
    poheaderx     = lv_bapimepoheaderx
  TABLES
    return        = it_return
    poitem        = it_bapimepoitem
    poitemx       = it_bapimepoitemx.

* Wenn keine Fehler, dann COMMIT
IF NOT line_exists( it_return[ type = 'E' ] ).
  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
      wait = abap_true.
ENDIF.

* Ausgabe der Meldungen
cl_demo_output=>write_data( it_return ).

* HTML-Code holen
DATA(lv_html) = cl_demo_output=>get( ).
* Daten im Inline-Browser im SAP-Fenster anzeigen
cl_abap_browser=>show_html( EXPORTING
                              title        = 'Daten zur Bestellung'
                              html_string  = lv_html
                              container    = cl_gui_container=>default_screen ).
* cl_gui_container=>default_screen erzwingen
WRITE: space.

[SAP] Bestellung

Transaktionen

MEPO (Bestellung)

  • Transaktion für ME21N/ME22N/ME23N

ME21N (Bestellung anlegen)
ME22N (Bestellung ändern)
ME23N (Bestellung anzeigen)

ME25 (Bestellung anlegen, Lieferant unbekannt)
ME28 (Sammelfreigabe)
ME29N (Einzelfreigabe)
ME58 (Bestellungen über Banf Zuordnungsliste)
ME59N (automatische Bestellerzeugung aus BANFen)
ME80FN (Allgemeine Auswertungen)

  • Listansicht zu versch. Belegarten
  • Selektion nach Materialnummer, Werk, Lagerort, Belegart, Datum, EKOrg, gemerkt etc.

ME81N (Bestellwertanalyse zu Bestellungen)

ME2L (Bestellungen zum Lieferanten)

  • mit Selektionsparameter WE101 (offener Wareneingang)

ME2M (Bestellungen zum Material)
ME2N (Bestellungen zur Bestellnummer)
ME2K (Bestellungen zur Kontierung)
ME2C (Bestellungen zur Warengruppe)
ME91F (Bestellungen mahnen und erinnern)

  • Liefermahnungen

ME9F (Nachrichtenausgabe Bestellungen)
OMH6 (Nummernkreise Einkaufsbelege)

Funktionsbausteine

ME_DISPLAY_PURCHASE_DOCUMENT (Anzeigen eines Einkaufsbeleges)

BAPIs

BAPI_PO_CREATE1 (Create Purchase Order)
BAPI_PO_CHANGE (Change Purchase Order)
BAPI_PO_GETDETAIL1 (Detail Information for a Purchase Order)

Tabellen

EKKO (Einkaufsbelegkopf)
EKPO (Einkaufsbelegposition)
EKKN (Kontierung im Einkaufsbeleg)
EKBE (Historie zum Einkaufsbeleg)
EBAN (Bestellanforderung)
T161 (Einkaufsbelegarten)

Views

MASSEKPO (Bestellposition)
V_EKKONA (View zur Ausgabe von Einkaufsbelegen) (EKKO, NAST)

Fiori-Apps

F3292 (Bestellungen zentral verwalten)
F2593 (Massenänderungen an Bestellungen)

Links