CL_DEF_IM_WRBAX_OUT_OF_STOCK - Default-Implementierung zur BAdI-Definition WRBAX_OUT_OF_STO

Addresses (Business Address Services)   PERFORM Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Klasse CL_DEF_IM_WRBAX_OUT_OF_STOCK

Funktionalität

Überblick

Die Klasse CL_DEF_IM_WRBAX_OUT_OF_STOCK ist die Standardimplementierung des BAdIsWRBAX_OUT_OF_STOCK. Die Implementierung demonstriert, wie die durch das BAdI InterfaceIF_WRBAX_OUT_OF_STOCK geforderten Methoden implementiert werden können.

Darüber hinaus können Sie die Standardimplementierung als Ausgangspunkt für eigeneEntwicklungen verwenden. Das Standardverhalten ist durch diese Standardimplementierung bestimmt. AbweichendeAnforderungen können Sie durch Überschreiben von "Hookmethoden" (Methodensignatur "DO_...")implementieren (eine Hookmethode ist eine Methode, deren Verhalten in einer Subklasse überschrieben und neu definiert werden kann).

Verwendete Klassen

Um die vom Interface spezifizierten Funktionen zu implementieren, werden in der Klasse Objektinstanzen folgender Klassen verwendet:

  • Klasse CL_WRBA_SITE_LIST:
Ermittelt Werksstammdaten und Sortimentsdaten zum Werk sowie Lagerorte zum Werk.
  • Klasse CL_WRBA_VENDOR_MAT_LIST:
Ermittelt Listen zu allen Lieferanten und Materialien sowie deren Kombinationen für den Fall, dass ein Material von mehreren Lieferanten bezogen werden kann.
Die Beziehung Lieferanten zu Materialien wird aus den Einkaufsinfosätzen ermittelt.
Sie haben die Möglichkeit, aus den Selektionsoptionen die Ergebnislisten für Lieferantenund Materialien zu ermitteln. Hierzu existiert eine Referenz MR_BADI, die auf den Klassenaufrufer(Klasse CL_DEF_IM_WRBAX_OUT_OF_STOCK) zeigt. Diese Referenz wird dazu genutzt, die HookmethodenDO_READ_MATERIAL_FROM_RANGES, DO_READ_PURCHASE_INFORECORDS, DO_READ_VENDOR_FROM_RANGES, DO_RESOLVE_GEN_AND_CHECK_MATder Klasse CL_DEF_IM_WRBAX_OUT_OF_STOCK aufzurufen. Durch Überschreiben der Hookmethoden in Subklassen können Sie das Leserergebnis beeinflussen.
  • Klasse CL_WRBA_OOS_MAT_LIST:
Ermittelt die Bestände und berechnet den Bestandsstatus (Normaler Bestand, Überbestand, Fehlbestand) für alle ermittelten Kombinationen von Werken, Lagerorten und Materialien.
Die Ermittlung von Werken und Lagerorten ist dabei an die Klasse CL_WRBA_SITE_LIST und die Ermittlung von Materialien und Lieferanten an die Klasse CL_WRBA_VENDOR_MAT_LIST delegiert.
Sie haben die Möglichkeit, die Berechnung des Bestandsstatus durchzuführen, die Listungzu prüfen und die Ergebnisliste zu beeinflussen. Hierzu existiert eine Referenz MR_BADI,die auf den Klassenaufrufer (Klasse CL_DEF_IM_WRBAX_OUT_OF_STOCK) zeigt. Diese Referenz wirddazu genutzt, die Hookmethoden DO_ADD_LINES_FOR_DISPLAY, DO_CALC_STOCK_SITUATION, DO_CHECK_LISTING,DO_READ_STOCK_DATA der Klasse CL_DEF_IM_WRBAX_OUT_OF_STOCK aufzurufen. Durch Überschreiben der Hookmethoden in Subklassen lässt sich das Leserergebnis beeinflussen.

Interface Methoden

Dieser Abschnitt beschreibt, wie die Methoden des Interfaces IF_WRBAX_OUT_OF_STOCK implementiert wurden:

  • GET_ALV_FIELDCAT: Liest den ABAP Listviewer Katalog ohne zusätzliche Änderungen.
  • CHECK_AUTHORITY: Führt eine allgemeine Berechtigungsprüfung mit Hilfe des Berechtigungsobjekts "F_LFA1_APP" (Anzeige von Lieferantendaten) durch
  • GET_SITES: Liest die Werksliste (Tabelle T001W)
  • INIT_OUT_OF_STOCKS: Instanziiert Objekte für Werksliste, Lieferantenmaterialliste und Bestandsliste (weitere Details sind unten beschrieben)
  • GET_MATERIAL_LIST: Liest die Lieferantenmaterialliste. Auf Basis der übergebenen Selektionsoptionenfür Material, Warengruppe und/oder Lieferant werden dazugehörige Einkaufsinfosätzeermittelt (Tabelle EINA). Nach dem Lesen der Einkaufsinfosätze werden die Stammdaten für Material (Tabellen MARA, MARM, MAKT), Warengruppen (Tabelle T023T) und Lieferant (Tabelle LFA1) gelesen.
  • GET_STOCKS_AND_CALC_OOS: Liest die Bestandsdaten zur Werksliste für alle Lagerorte und allen Materialien der Materialliste aus Tabelle MARD.
  • ADD_DATA_FOR_LIST_DISPLAY: Ist leer implementiert.

Hook-Methoden

Das Standardverhalten der Klasse können Sie in Subklassen durch folgendeHookmethoden alternativ implementieren. Nachfolgend ist die Funktion der Standardimplementierung beschrieben:

  • DO_READ_MATERIAL_FROM_RANGES: Liest Materialstammdaten aus den Datenbanktabellen MARA, MARM,MAKT zu den übergebenen Selektionsoptionen. Sollte eine Implementierung im Kundenprojekt stattfinden,so achten Sie darauf, dass die Selektion sowohl für normale Materialien als auch für Sammelartikel (Zugriff auf MARA über Feld SATNR) implementiert sein muss.
  • DO_READ_VENDOR_FROM_RANGES: Liest Lieferantenstammdaten von Tabelle LFA1
  • DO_READ_PURCHASE_INFORECORDS: Liest Einkaufsinfosätze (Tabelle EINA) zur gegebenen Kombination aus Lieferanten und Materialien.
  • DO_RESOLVE_GEN_AND_CHECK_MAT: Löst Sammelmaterialien in ihre Varianten auf und überprüft die Materialstammdaten.
  • DO_READ_STRUC_ART_COMPONENTS: Löst strukturierte Materialien (z. B. Lot oder Set) in ihre Komponenten auf.
  • DO_READ_STOCK_DATA: Liest Bestandsdaten (Tabelle MARD) und gibt Bestände auf Ebene Werk und Lagerort zur übergebenen Kombination aus Materialien und Werken zurück.
  • DO_CHECK_LISTING: Prüft Listung mit Hilfe des Funktionsbausteins WLK1_CHECK
  • DO_CALC_STOCK_SITUATION: Berechnet den Fehlbestandsstatus (normale Bestandssituation, Überbestand,Fehlbestand) pro Material, Lagerort und Werk. In der Beispielimplementierung wird davon ausgegangen, dass die Bestimmung der Fehlbestandssituation durch die Materialdisposition motiviert ist.
Dazu wird für jedes Material und pro Lagerort und pro Werk der freie Lagerbestand (Tabelle MARD,Feld LABST) sowie einige Stammdaten von der Tabelle MARC gelesen. Als Referenzbestand dient der Sicherheitsbestand(Tabelle MARC, Feld EISBE), der ein Schwankungsmaß für die Güte der Materialprognose darstellt.
Der Ausgangspunkt der Standardimplementierung ist, dass eine Fehlbestandssituation eingetreten ist,wenn die Bestände im Bereich der Genauigkeit der Materialprognose liegen. Vorraussetzung fürdas 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 in PI_THRESHOLD_DC, PI_THRESHOLD_STORE definierten Schwellen für Verteilzentrum oder Filiale, so liegt für ein solches Material ein Fehlbestand vor.
Ist die Bestandssituation überhalb der in PI_THRESHOLD_DC, PI_THRESHOLD_STORE definiertenSchwellen für Verteilzentrum oder Filiale, so liegt für ein solches Material ein Überbestand vor.
Für alle anderen Fälle wird die Bestandssituation als normal gewertet.
  • DO_ADD_LINES_FOR_DISPLAY:
Mischt die in vorigen Schritten ermittelten Bestandsdaten und Stammdaten für Materialien, Lieferanten, Werken zur Ausgabetabelle (Exportparameter TC_STOCK_DISPLAY_DATA) zusammen.
Die Liste wird so aufgebaut, dass bei mehreren Lieferanten pro Material jeweils eine Zeile mit Bestandsdatenohne Lieferantendaten sowie separate Zeilen mit Informationen zum Lieferanten ohne Bestandsdaten erzeugt werden.
Zeilen mit Informationen zum Lieferanten ohne Bestandsdaten werden in der Bestandsliste der TransaktionWRBDL durch eine inaktive LED Ikone kenntlich gemacht. Wurde nur ein Lieferant ermittelt, werden die Daten zum Lieferant und die Bestandsdaten in einer Tabellenzeile in der Bestandsliste (Transaktion WRBDL) angezeigt.
Zusätzliche Hinweise zur Methode DO_ADD_LINES_FOR_DISPLAY für den Fall, dass die Methode in einer Subklasse überschrieben werden soll:
  • Die überschreibende Implementierung sollte intern die Methode DO_CALC_STOCK_SITUATION analog zur Standardimplementierung aufrufen.

  • Der Importparameter TI_MATERIAL_RANGE enthält eine Liste von Materialien (jede Zeileder Importtabelle enthält also einen Wertebereichsparameter, dessen Feld OPTION den WERT EQ hat)

  • SAP empfiehlt, die in die Ausgabestruktur zu kopierenden Daten analog wie in der Standardimplementierung über entsprechende Methodenaufrufe zu lesen.

Beziehungen

Beispiel

Hinweise

Weiterführende Informationen

Siehe auch:

Die Beispielimplementierung zeigt, wie alternatives Programmverhalten implementiert werden kann. Hierzu wird die KlasseCL_DEF_IM_WRBAX_OOS_SUBCLASS verwendet, die eine Subklasse der StandardimplementierungsklasseCL_DEF_IM_WRBAX_OUT_OF_STOCK ist.





Addresses (Business Address Services)   General Material Data  
Diese Dokumentation steht unter dem Copyright der SAP AG.


Length: 11254 Date: 20120527 Time: 111950     triton ( 323 ms )