ZCL MM UTILITIES

Aus SAP Wiki ツ


Die in Freizeit erstellte Z-Klasse bietet verschiedene Methoden für den MM-Bereich an. Diese Klasse benötigt die Z-Klasse für Konvertierungen.

ADD_PO_CONFIRMATION

Diese Instanzmethode nutzt den SAP internen Funktionsbaustein "ME_PO_CONFIRM", s. wichtige Hinweise hier.

Durch den Konstruktur muss eine interne EKPO Tabelle und optional eine EKES Tabelle mitgegeben werden. Wenn keine EKES Tabelle mitgegeben wird, baut die Methode sich eine eigene interne EKES Tabelle anhand der Positionsdaten auf.

GET_PO_CHANGE_DOCUMENTS

Die statische Methode nutzt den Funktionsbaustein "ME_READ_CHANGES_EINKBELEG". In der Methode sind noch sinnvolle Prüfungen vorhanden z.B. ob die EKKO Struktur im Feld EBELN eine Bestellnummer hat.

GET_GENERAL_DATA_FROM_MAT

Gibt die allgemeinen Materialdaten als Rückgabeparameter zurück.

Als Importparameter wird eine Referenz von TYPE REF TO DATA erwartet.

"relevante Daten kommen direkt aus Programmselektion
SELECT-OPTIONS:  s_matnr FOR mard-matnr.

"Aus SELECT-OPTION oder andersweitig eine Range aufgebaut, wird eine Referenz erzeugt.
GET REFERENCE OF s_matnr[] INTO DATA(lr_matnr).

DATA(lt_mard) = zcl_mm_utilities=>get_storage_loc_data( ir_materials = lr_matnr ).

GET_PLANT_DATA_FROM_MAT

Gibt die Werksdaten von Materialien als Rückgabeparameter zurück.

Als Importparameter werden Referenzen von TYPE REF TO DATA erwartet.

S. Referenz-Erzeugung: GET_GENERAL_DATA_FROM_MAT

GET_STORAGE_LOC_DATA

Gibt die Lagerortdaten von Materialien als Rückgabeparameter zurück.

Als Importparameter werden Referenzen von TYPE REF TO DATA erwartet.

S. Referenz-Erzeugung: GET_GENERAL_DATA_FROM_MAT

CREATE_STOCK_RECONCILIATION

Diese statische Methode erstellt ein "einfachen" Bestandsabgleich mit einem Partner. Aktuell wird ein Vergleich zwischen frei verfügbaren Bestand, QS und gesperten Bestand unterstützt.

Es ist möglich ein Mapping mitzugeben in Falle, dass der Partner die Bestände nicht so speichert wie in einem SAP System. Wenn der Partner Bestände durch ein Kennzeichen und nur einer Mengenangabe differenziert, kann das zuvor im Mapping aufgeschlüsselt werden. Ebenso ist ein Mapping für Werk und Lagerort möglich.

Mapping festlegen

DATA: ls_mapping TYPE zcl_mm_utilities=>ts_partner_sap_mapping,
      lt_mapping TYPE zcl_mm_utilities=>tt_partner_sap_mapping.

Beispiel: Partner liefert Bestandskennzeichen und eine Mengenangabe

"ls_partner_stocks-partner_bstar = 'FREE'. "partner delivers only stock identifier
"ls_mapping-partner_bstar = ls_partner_stocks-partner_bstar. "add bstar to mapping and the equivalent to SAP
"ls_mapping-sap_bstar_understanding = 'LABST'.

Bestandsabgleich durchführen

zcl_mm_utilities=>create_stock_reconciliation( EXPORTING it_partner_sap_mapping = lt_mapping
                                                         it_partner_stocks = lt_partner_stocks
                                                         it_sap_stocks = lt_sap_stocks
                                                         iv_test_output = abap_true
                                               IMPORTING et_delta = DATA(lt_delta) ).

GET_QUAN_FROM_TARGET_UOM

  • Diese statische Methode berechnet mit Hilfe des Funktionsbausteines "MD_CONVERT_MATERIAL_UNIT die Menge einer Quellenmengeneinheit in eine Zielmengeneinheit um.
  • Zuvor wird die Materialnummer auf internes Format konvertiert, wenn die Materialnummer < 18 ist.
  • Wenn ein Fehler auftaucht, wird eine Exception geworfen.
DATA(lv_bstm) = zcl_mm_utilities=>GET_QUAN_FROM_TARGET_UOM( iv_matnr = '100' "Konv. in internes Format
                                                            iv_source_quan = '50'
                                                            iv_source_quan_uom = 'ST'
                                                            iv_target_quan_uom = 'PAL' ).
"lv_bstm ist 5.000 s.u. Zusatzdaten

Zusatzdaten Material

Nenner Alternative Mengeneinheit Zähler Basismengeneinheit
1 ST <=> 1 ST
1 PAL <=> 10 ST