[SAP] Aktivierung des Material Ledgers (ML)

Aktivierung des Material Ledgers (ML)

Grundsätzliche Voraussetzungen

  • Bewertungsbereich festgelegt
    • Bewertungsbereich (meist Werk) muss eindeutig definiert sein
    • Bestandsbewertung über das Materialmanagement (MM) muss produktiv funktionieren
  • Konsistente Materialstammdaten
    • alle bewerteten Materialien müssen korrekt angelegt sein
    • Preissteuerung (S oder V) muss fachlich geprüft sein
    • keine offene Inkonsistenzen in der Bestandsführung vorhanden
  • FI- und CO-Integration
    • Automatische Kontenfindung (OMWB / OMR0 / OBYC) vollständig eingerichtet
    • Materialbewegungen müssen korrekt in FI buchen
    • Kostenrechnung und Ergebnisrechnung abstimmen
  • Bestandskonsistenz
    • keine fehlerhaften Bestände oder ungeklärte Differenzen
    • Bestandswerte und Mengen zw. MM und FI müssen stimmen

Technische Customizing-Voraussetzungen

Vor der Aktivierung müssen folgende Einstellungen vorhanden sein:

  • Aktivierung des Material Ledgers für den Bewertungsbereich (Werk)
  • Definition eines Material-Ledger-Typs
  • Zuordnung der Währungen zum Material-Ledger-Typ
  • Zuordnung des Material-Ledger-Typs zum Bewertungsbereich
  • Optional: Aktivierung von Actual Costing (Istkalkulation)

Besondere Einschränkungen

  • Aktivierung des ML möglichst vor Produktivstart
  • In produktiven Systemen mit bereits vorhandenen Bewegungsdaten ist die Aktivierung wesentlich komplexer und erfordert eine sorgfältige Analyse bzw. ein Einführungsprojekt. SAP beschreibt für bestehende Daten besondere Vorgehensweisen und Konvertierungsprozesse.
  • Nach der Aktivierung müssen alle relevanten Werke innerhalb des definierten Konzepts berücksichtigt werden.

Checkliste für die Freigabe

  • FI/MM-Abstimmung fehlerfrei
  • Keine negativen oder inkonsistenten Bestände
  • Bewertungsbereiche und Werke definiert
  • OMWB / OMR0 / OBYC – MM Kontenfindung vollständig eingerichtet
  • Materialstamm gepflegt
  • Perioden im MM/FI korrekt geöffnet
  • Währungskonzept festgelegt (Company Code, Group Currency usw.)
  • Fachliches Konzept für Istkalkulation vorhanden (falls genutzt)

Für ein bestehendes ECC-Produktivsystem zusätzlich prüfen, ob bereits CKMSTART, CKM9 oder frühere ML-Aktivierungen durchgeführt worden sind. Dies bestimmt maßgeblich, ob oder wie aufwändig eine nachträgliche Aktivierung möglich ist.

Links

[SAP] Material Ledger / Materialbewertung / Materialpreise

Transaktionen

MR21 (Preisänderung)
CKM3PH (Materialpreishistorie)
OMX1 (ML-Aktivierung auf n BWKRSe)
OMX2 (Material-Ledger-Typ definieren)
OMX3 (ML-Bewertungskreis-Zuordnung)
OMX4 (Nummernkreispflege ML-BELEG)
CKM3N (Materialpreisanalyse)

  • Preissteuerung
  • Periodischer Verrechnungspreis
  • ML-Preise

SAPRCKMZ (Material-Ledger-Daten mehrere Perio.)
CKMD (Vorgänge zu einem Material)
CKMS (Material Ledger Docs for Material)
CKM9 (Erklären Customizing zum Werk)
CKMSTART (Produktivstart Material-Ledger)
CKMHELP (Material Ledger Help Desk Overview)

Funktionsbausteine

BAPI_MATVAL_PRICE_CHANGE (Materialpreis-Änderung)

Domänen

CURTP (Währungstyp)

Tabellen

MBEW (Materialbewertung)
TCKMHD (Beschreibung des Material-Ledger-Typs)
TCKMT (Material-Ledger-Typ (Text-Tabelle))
TCKMIT (Währungs-,Bewertungstypen zum Material-Ledger-Typ)
TCKM2 (Bewertungskreissteuerung tabelle – valuation area control t.)
CKMLHD (Material-Ledger: Kopfsatz)
CKMLPP (Material-Ledger: Perioden-Summensätze Mengen)
CKMLPR (Material-Ledger: Preise)
CKMLCR (Material-Ledger: Perioden-Summensätze Werte)
CKMLHD (Header Record)
MLHD (Documents Headers)
MLIT (Documents Items)
MLPP (Documents Quantities)
MLPPF (Documents Quantities by Field Group)
MLCR (Documents Currencies and Values)

Views

FCML_MLMASTER (Super-Join: CKMLHD/CKMLPP/CKMLPR/CKMLCR)
/FMP/V_MP_CR_M (Materialpreise -CKMLCR – MBEW)

CDS-Views

I_ProdValnLedgerAccountTP_2 (Product Valuation Ledger Account – TP)

Fiori-Apps

F4006 (Materialbestandspreise hochladen)

Links

[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                     https://codezentrale.de/abap-leistungstammsatz-anlegen/
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( ).