Ansicht
Dokumentation

CL_DEF_IM_WRBX_OUT_OF_STOCK - Default-Implementierung zur BAdI-Definition WRBX_OUT_OF_STOC

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 Currency  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

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~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~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.

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_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).

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.
  • 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.

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:






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 )