CL_DEF_IM_WRBX_OUT_OF_STOCK - Default-Implementierung zur BAdI-Definition WRBX_OUT_OF_STOC

rdisp/max_wprun_time - Maximum work process run time   SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up  
Diese 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 überwiegendeTeil der Defaultimplementierung (Lesen der Stammdaten für Material und Materialwerksdaten sowieBestä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 Beispielimplementierungwird 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 MARCgelesen. 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 dieBestä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 definiertenSchwellen 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 Fehlbestandssituationfü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 undfü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 KlasseCL_EX_WRBX_OOS_TEMPLATEalsVorlage 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ändegekapselt (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 genutztwerden, die Objektattribute der Klasse CL_DEF_IM_WRBX_OUT_OF_STOCK auszulesen und für eigene Implementierungszwecke zu verwenden.

  • GET_DB_FIELD_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_COMBINATIONS: 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:






Fill RESBD Structure from EBP Component Structure   CPI1466 during Backup  
Diese Dokumentation steht unter dem Copyright der SAP AG.


Length: 16522 Date: 20120527 Time: 111959     triton ( 336 ms )