[ABAP] Übersicht zu wichtigen MM-BAPIs

BAPI                            Bezeichnung                                           Link

BAPI_BILLINGDOC_GETLIST         Detailinformationen zur einer Faktura                 https://codezentrale.de/abap-parallelverarbeitung-multitasking/
BAPI_CONTRACT_CREATE            BAPI zum Anlegen eines Einkaufskontraktes
BAPI_CONTRACT_CHANGE            BAPI zum Ändern eines Einkaufskontraktes
BAPI_CUSTOMER_GETDETAIL2        Detailangaben Debitor                                 https://codezentrale.de/abap-bapi-zum-lesen-der-daten-eines-debitoren-customers/
BAPI_ENTRYSHEET_GETDETAIL       Detaildaten des Erfassungsblatts anzeigen             https://codezentrale.de/abap-lerf-detaildaten-des-erfassungsblatts-anzeigen/
BAPI_GOODSMVT_CREATE            Warenbewegungen mit MB_CREATE_GOODS_MOVEMENT buchen   https://codezentrale.de/abap-warenbewegungen-buchen/
BAPI_MATERIAL_GET_ALL           BAPI zum Lesen von Materialdaten                      https://codezentrale.de/abap-mm-materialdaten-lesen/
BAPI_MATERIAL_GET_DETAIL        Detaildaten zu einem Material ermitteln               https://codezentrale.de/abap-daten-zu-einem-material-matnr-ermitteln/
BAPI_MATERIAL_SAVEDATA          Anlegen und Ändern von Materialstammdaten             https://codezentrale.de/abap-mm-bapi_material_savedata-anlegen-und-aendern-von-materialstammdaten/
BAPI_MATERIAL_STOCK_REQ_LIST    Material - Aktuelle Bedarfs-/Bestandsliste            https://codezentrale.de/abap-mm-aktuelle-bedarfs-bestandsliste-reservierte-bestaende-analog-zur-transaktion-mmbe/
BAPI_PO_CHANGE                  Bestellung ändern                                     https://codezentrale.de/abap-bapi-bestellung-aendern/
BAPI_PO_CREATE1                 Bestellung anlegen                                    https://codezentrale.de/abap-bapis-zum-bestellung-anlegen-lesen-aendern/
BAPI_PO_GETDETAIL1              Detailinformationen für eine Bestellung               https://codezentrale.de/abap-bapi-bestellung-anzeigen/
BAPI_PR_CHANGE                  Change Enjoy Purchase Requisition
BAPI_PR_CREATE                  Create Enjoy Purchase Requisistion
BAPI_PR_GETDETAIL               Get details for one MEREQ Object                      https://codezentrale.de/abap-bapi-zum-lesen-von-infos-zur-bestellanforderung-banf/
BAPI_REQUISITION_CHANGE         Bestellanforderung ändern (obsolet)
BAPI_REQUISITION_CREATE         Bestellanforderung anlegen (obsolet)
BAPI_REQUISITION_GETDETAIL      Details zur Bestellanforderung anzeigen (obsolet)
BAPI_SAG_CHANGE                 Ändern eines Lieferplanes
BAPI_SAG_CREATE                 Anlegen eines Lieferplanes
BAPI_SAG_GETDETAIL              Detail aus Lieferplan auslesen
BAPI_SERVICE_CHANGE             BAPI zum Ändern eines Leistungsstammsatzes
BAPI_SERVICE_CREATE             Anlegen eines Leistungstammsatzes
BAPI_SERVICE_GET_DETAIL         Detaildaten zu einem Leistungsstammsatz lesen
BAPI_USER_GET_DETAIL            Detaildaten eines Benutzers lesen                     https://codezentrale.de/abap-detaildaten-eines-benutzers-lesen/

[ABAP] MM: Aktuelle Bedarfs-/Bestandsliste / reservierte Bestände analog zur Transaktion MMBE

* http://letscodeabap.blogspot.com/2015/03/get-reservations-in-abap.html
TYPES: BEGIN OF ty_xtab1,
         werks LIKE resb-werks,
         lgort LIKE resb-lgort,
         charg LIKE resb-charg,
         matnr LIKE resb-matnr,
         bdmng LIKE resb-bdmng,
         bdmns LIKE resb-bdmng,
         erfme LIKE resb-erfme,
         erfmg LIKE resb-erfmg,
       END OF ty_xtab1.

PARAMETERS: p_matnr TYPE marc-matnr DEFAULT '1234567890'.
PARAMETERS: p_werks TYPE marc-werks DEFAULT '10'.

START-OF-SELECTION.

  DATA: lv_detail TYPE bapi_mrp_stock_detail.
  DATA: lv_ret TYPE bapiret2.

* Material - Aktuelle Bedarfs-/Bestandsliste
  CALL FUNCTION 'BAPI_MATERIAL_STOCK_REQ_LIST'
    EXPORTING
      material         = p_matnr
      plant            = p_werks
    IMPORTING
      mrp_stock_detail = lv_detail
      return           = lv_ret.

  DATA: xbdart TYPE RANGE OF resb-bdart.

* Range Bedarfsarten
  DATA(rg_resb_bdart) = VALUE rseloption( ( sign   = 'I'
                                            option = 'EQ'
                                            low    = 'AR'
                                            high   = '' )
                                          ( sign   = 'I'
                                            option = 'EQ'
                                            low    = 'MR'
                                            high   = '' ) ).

* Range Werke
  DATA(rg_werks) = VALUE rseloption( ( sign   = 'I'
                                       option = 'EQ'
                                       low    = p_werks
                                       high   = '' ) ).

* Rückgabetabelle mit Beständen
  DATA: it_xtab1 type STANDARD TABLE OF ty_xtab1 WITH DEFAULT KEY.

* Lesen u. addieren v. reservierten Beständen
  CALL FUNCTION 'MB_ADD_RESERVATION_QUANTITIES'
    EXPORTING
      x_kzear = space " Endausfassung der Reservierung
      x_matnr = p_matnr
      x_xloek = space " Position ist gelöscht
    TABLES
      xbdart  = rg_resb_bdart
      xtab1   = it_xtab1
      xwerks  = rg_werks.

  cl_demo_output=>write_data( lv_ret ).
  cl_demo_output=>write_data( lv_detail ).
  cl_demo_output=>write_data( it_xtab1 ).
  cl_demo_output=>display( ).