Ansicht
Dokumentation
CL_DEF_IM_WRBX_OUT_OF_STOCK - Default-Implementierung zur BAdI-Definition WRBX_OUT_OF_STOC
Fill RESBD Structure from EBP Component Structure TXBHW - Original Tax Base Amount in Local CurrencyDiese Dokumentation steht unter dem Copyright der SAP AG.
Klasse CL_DEF_IM_WRBX_OUT_OF_STOCK
Funktionalität
Überblick
Die Klasse CL_DEF_IM_WRBX_OUT_OF_STOCK implementiert das Interface IF_WRBX_OUT_OF_STOCK und stellt die Standardimplementierung des BAdIs WRBX_OUT_OF_STOCK bereit.
Die Defaultimplementierung ist als Vorschlagsimplementierung gedacht. Sollte der überwiegende Teil der Defaultimplementierung (Lesen der Stammdaten für Material und Materialwerksdaten sowie Bestände) genutzt werden, kann von der Klasse eine Subklasse abgeleitet werden und die gewünschten Änderungen der Funktionalität über Überschreiben der entsprechenden DO_-Methoden neu implementiert werden.
Eine von CL_DEF_IM_WRBX_OUT_OF_STOCK abgeleitete Klasse kann aus technischen Gründen nicht direkt als Implementierungsklasse des BAdIs WRBX_OUT_OF_STOCK verwendet werden.
So ist z.B. für die alternative Berechnung der Fehlbestandssituation pro Material nur eine alternative Implementierung der Methode DO_CALC_OUT_OF_STOCK_BY_MAT möglich.
Hier eine Beschreibung der Komponenten zur Klasse CL_DEF_IM_WRBX_OUT_OF_STOCK:
Klassenattribute
Die folgende Liste gibt einen Überblick über die Klassenattribute. Alle Attribute sind privat, so dass die Daten des Objekts konsistent bleiben. Ein lesender Zugriff ist nur über die Acczessormethoden (GET_...) in einer Subklasse möglich.
- MT_DB_FIELDS_SITE_MAT_GROUP, MT_DB_FIELDS_SITE_MAT
- Tabellen mit Feldnamen für den Zugriff auf Tabellen MARC, MARD.
- MT_DB_FIELDS_MATERIAL Tabelle mit Feldnamen für den Zugriff auf Tabellen MARA, MAKT, MARD.
- Tabellen mit Feldnamen
- Die Tabellen enthalten Feldnamen von Tabellen und werden für einen SELECTBefehl verwendet. Die Tabellen werden in der Methode FILL_DB_FIELD_TABLESaufgebaut, die in der Inzialisierungsmethode IF_WRBX_OUT_OF_STOCK~INIT_VENDOR_OUT_OF_STOCKS aufgerufen wird.
- M_VENDOR_NUMBER: Lieferantennummer
- M_THRESHOLD_DCS, M_THRESHOLD_STORES: Schwellen für Fehlbestandssituation der Verteilzentren und Filialen
- M_MERCHANDISE_CATEGORY: Warengruppe, der als Filterwert für Materialien dient.
- M_REGULAR_VENDOR: Kennzeichen, ob nur Materialien gelesen werden sollen, für die der Lieferant als Regellieferant im Einkaufsinfosatz eingetragen ist.
- M_MAX_COMBINATIONS: Maximale Anzahl an Materialwerkskombinationen, für die eine Fehlbestandssituation geprüft werden soll.
- MR_MATERIAL_LIST: Lokales Objekt, das die verwendeten Materialdaten verwaltet.
- MR_OUT_OF_STOCK_LIST: Lokales Objekt, das die verwendeten Bestandsdaten sowie Materialwerksstammdaten verwaltet.
- MT_SITE: Stammdaten zu den Werkenen
- M_CHECK_LISTING: Wenn das Kennzeichen gesetzt ist (Wert IF_WRB_CONSTANTS=>C_TRUE), wird für alle Materialwerkskombinationen eine Listungsprüfung (Tabelle WLK1) durchgeführt.
- M_LFA1: Stammdatensatz für Lieferant (Tabelle LFA1)
Objektreferenzen
Die Klasse referenziert auf folgende Objekte:
- MR_MATERIAL_LIST(Klasse CL_WRB_VENDOR_MAT_LIST): Verwaltet die Materialstammdaten und stellt einen Iterator zur Verfügung, mit dem man paketweise Berechnung der Fehlbestandssituation durchführen kann.
- MR_OUT_OF_STOCK_LIST(Klasse CL_WRB_OOS_MAT_LIST): Liest die Bestandsdaten und berechnet die Fehlbestandssituation paketweise über einen Iterator.
Beschreibung der Methoden
Implementation der Interface-Methoden
Die allgemeine Bedeutung der Interfacemethoden ist bereits in der Dokumentation zum Interface IF_WRBX_OUT_OF_STOCK erläutert.
In diesem Abschnitt wird die konkrete Implementierung der Interfacemethoden beschrieben.
- IF_WRBX_OUT_OF_STOCK~CHECK_AUTHORITY: Berechtigungsprüfung wird mit dem Funktionsbaustein WRB_VENDOR_CHECK_AUTH_DISPLAYdurchgeführt.
- IF_WRBX_OUT_OF_STOCK~GET_VENDOR_NAME: Liest Lieferantenstammdaten von Tabelle LFA1 und gibt als Lieferantennamen das Feld LFA1 zurück.
- IF_WRBX_OUT_OF_STOCK~GET_SITES_BY_TYPE: Liest Werksstammdaten von Tabelle T001W, außerdem wird auf Werksebene eine Berechtigungsprüfung durchgeführt (Berechtigungsobjekt 'M_MATE_WRK').
- IF_WRBX_OUT_OF_STOCK~INIT_VENDOR_OUT_OF_STOCKS: Inizialisierungsroutine, in der einige Attribute inizialisiert werden. Sollte diese Methode in einer Subklasse überschrieben werden, so muss die Implementierung der Superklasse aufgerufen werden (CALL METHOD SUPER->INIT_VENDOR_OUT_OF_STOCKS...) um die Objektkonsistenz zu gewährleisten.
- IF_WRBX_OUT_OF_STOCK~GET_MATERIALS: Liest die Stammdaten zum Material aus den Tabellen MARA(Materialstamm), MAKT(Materialkurztexte) und MARM (Mengeneinheiten).
- IF_WRBX_OUT_OF_STOCK~CALC_VENDOR_OOS_DETAIL: Berechnet die Fehlbestandsübersicht zum Lieferant auf Materialebene. In der Beispielimplementierung wird davon ausgegangen, dass die Bestimmung der Fehlbestandssituation durch die Materialdisposition motiviert ist.
- Dazu wird für jedes Material der über alle Lagerorte aggregierte freie Lagerbestand gelesen (Tabelle MARD, Feld LABST); außerdem werden Stammdaten von Tabelle MARC gelesen. Als Referenzbestand dient der Sicherheitsbestand (Tabelle MARC, Feld EISBE), der ein Schwankungsmaß für die Güte der Materialprognose darstellt.
- Die Idee der Standardimplementierung ist, dass eine Fehlbestandssituation eingetreten ist, wenn die Bestände im Bereich der Genauigkeit der Materialprognose liegen. Vorraussetzung für das Funktionieren der Standardimplementierung ist also, dass die entsprechenden Daten im Materialstamm gepflegt sind.
- Das in dieser Klasse implementierte Maß für die Prüfung auf eine Fehlbestandssituation pro Materialwerkskombination ist durch folgende Formel gegeben:
- Bestandssituation = Lagerbestand / Sicherheitsbestand * 100%
- Ist die Bestandssituation unterhalb der durch M_THRESHOLD_DCS, M_THRESHOLD_STORES definierten Schwellen für Verteilzentrum oder Filiale, so liegt für diese Materialwerkskombination ein Fehlbestand vor.
- Die Berechnung pro Material wird in Methode DO_CALC_OUT_OF_STOCK_BY_MAT ausgeführt.
- Beispiel: Wenn die Schwelle zu 100% vorgegeben ist, liegt ein Fehlbestand für eine Materialwerkskombination vor, sobald, der Sicherheitsbestand unterschritten wurde.
- IF_WRBX_OUT_OF_STOCK~CALC_VENDOR_OOS_OVERVIEW: Verdichtet die vom Baustein WRB_RFC_VENDOR_GET_OUTOFSTOCKS berechneten Fehlbestandssituation für einen Lieferanten über die Materialien zu einer Fehlbestandssituation auf Lieferantenebene. In der Implementierung werden die maximalen Fehlbestandswerte der Materialien als globale Fehlbestandswerte auf Lieferantenebene genommen.
- Beispiel:
- Für drei Materialien eines Lieferanten wird folgende Fehlbestandsstatistik errechnet:
- Material A: Fehlbstand für Fililalen 20%, für Verteilzentren 16%
- Material B: Fehlbstand für Fililalen 10%, für Verteilzentren 8%
- Material C: Fehlbstand für Fililalen 33%, für Verteilzentren 13%
- Als Übersichtwerte für den Lieferanten wird ein Fehlbestand von 33% für die Filialen und 16% für die Verteilzentren zurückgegeben.
- IF_WRBX_OUT_OF_STOCK~MERCH_CAT_IS_NOT_VALID: Die Standardimplementierung prüft auf Vorhandensein eines Datenbankeintrags in Tabelle T023 für die übergebene Warengruppe.
Hook-Methoden
Als Hook-Methode wird eine Funktion bezeichnet, deren Standardverhalten in einer Subklasse geeignet erweitert werden kann. Hook-Methoden haben in der Klasse CL_DEF_IM_WRBX_OUT_OF_STOCKdas Präfix "DO_".
Um eigene Logik zu implementieren, ist die Klasse CL_DEF_IM_WRBX_OUT_OF_STOCK abzuleiten und für die gewünschten Änderungen der Funktionalität die entsprechenden Hook-Methoden zu überschreiben.
Aus technischen Gründen ist es derzeit nicht möglich, eine Subklasse von CL_DEF_IM_WRBX_OUT_OF_STOCKdirekt als Implementierungsklasse für das BAdI anzugeben. Aus diesem Grunde kann die Klasse CL_EX_WRBX_OOS_TEMPLATEals Vorlage für die Implementierungsklasse des BAdIs verwendet werden. Diese Klasse delegiert lediglich die Methodenaufrufe des BAdI Interfaces an die Klasse, in der die Funktionalität implementiert ist.
Hier eine Aufzählung der Hook-Methoden:
- DO_CALC_OUT_OF_STOCK_BY_MAT: Berechnet die Fehlbestandsübersicht für ein Material und alle übergebenen Betriebe.
- DO_READ_STOCK_DATA: In der Methode ist ein SELECTBefehl zum Lesen der Materialwerksstammdaten sowie der Bestände gekapselt (Tabellen MARCund MARD). Es werden von dieser Methode alle Kombinationen aus Materialien und Werken gelesen.
- DO_CHECK_LISTING: Durchführung der Listungsprüfung mit dem Baustein WLK1_CHECK.
- DO_READ_MATERIAL_DATA: In der Methode ist ein SELECT Befehl zum Lesen der Materialstammdaten gekapselt (Tabellen MARA, MAKT, MARM).
- DO_READ_EINA_INFORECORDS: Lesen von Einkaufsinfosätzen (Tabelle EINA).
Accessormethoden und Mutatormethoden
Accessor- (Präfix "GET_..." oder "IS_.." für kennzeichenartige Felder) und Mutator Methoden (Präfix "SET_...") dienen zum Lesenden und Verändernden Zugriff auf Objektattribute einer Klasse. In diesem Umfeld können die Accessormethoden in überschreibenden Klassen dazu genutzt werden, die Objektattribute der Klasse CL_DEF_IM_WRBX_OUT_OF_STOCK auszulesen und für eigene Implementierungszwecke zu verwenden.
- GET_DB_FIE LD_NAME_TABLES: Accessormethode für die Namen der Datenbankfelder, die gelesen werden sollen. Die Liste der Feldnamen werden in einem SELECT Befehl verwendet
- GET_MATERIAL_DATA: Accessormethode für Materialdaten aus der Materialliste. Vorbedingung ist, dass zuvor in der Klasse die Materialliste gelesen wurde.
- GET_SITE_DATA: Accessormethode für Werksdaten
- SET_CHECK_LISTING: Mutatormethode des Kennzeichens für "Listungsprüfung durchführen"
- IS_CHECK_LISTING: Accessormethode des Kennzeichens für "Listungsprüfung durchführen"
- GET_MAX_COMBIN ATIONS: Acessormethode für die maximale Anzahl an Materialwerkskombinationen, für die eine Fehlbestandssituation geprüft werden soll.
- GET_VENDOR_DATA: Accessormethode für Lieferantendaten
Sonstige Dienstmethoden
- FILL_DB_FIELD_ TABLES: Methode, mit der die Tabellen TE_DB_FIELDS_SITE_MAT_GROUP, TE_DB_FIELDS_SITE_MAT und TE_DB_FIELDS_MATERIAL gefüllt werden.
Beziehungen
Beispiel
Hinweise
Weiterführende Informationen
Weitere Informationen finden Sie in der Dokumentation zu folgenden Programmobjekten:
- Funktionsbaustein WRB_RFC_VENDOR_GET_OUTOFSTOCK
- Funktionsbaustein WRB_RFC_GET_OOS_OVERVIEW
- BAdI WRBX_OUT_OF_STOCK
- BAdI Interface IF_WRBX_OUT_OF_STOCK
- Templateklasse CL_EX_WRBX_OOS_TEMPLATE
ABAP Short Reference ROGBILLS - Synchronize billing plans
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 16511 Date: 20240426 Time: 120103 sap01-206 ( 221 ms )