Ansicht
Dokumentation
/SAPAPO/CL_EXM_IM_PDEM_DEM_CAT - Beispiel-Implementierung zur BAdI: /SAPAPO/PDEM_DEM_CAT
Addresses (Business Address Services) General Data in Customer MasterDiese Dokumentation steht unter dem Copyright der SAP AG.
Funktionalität
In dieser Beispielimplementierung ist die Logik für die Ermittelung kundenspezifischer Bedarfskategorien realisiert. Das System prüft die Kundenauftragspositionen, die im Importparameter IS_DATA_STRUCTURE enthalten sind, gegen die in der Datenbanktabelle /SAPAPO/PDEMCAT definierten Suchkriterien und ermittelt dann eine Bedarfskategorie für diese Kundenauftragspositionen.
Die Hauptmethode in dieser Klasse ist GET_DEMAND_CATEGORY, in der eine Bedarfskategorie ermittelt wird. Innerhalb dieser Methode ruft das System folgende Methoden auf:
- INITIALIZATION: In dieser Methode werden die in der Datenbanktabelle /SAPAPO/PDEMCAT definierten Suchkriterien und die Semantik-Mappings anhand einer DataSource vorbereitet.
- INITIALIZATION_OLD: In dieser Methode werden die in der Datenbanktabelle /SAPAPO/PDEMCAT definierten Suchkriterien und die Semantik-Mappings anhand einer InfoSource vorbereitet.
- GET_DATA_ELEMENT: Diese Methode gibt ein Datenelement eines Feldes in der Struktur IS_DATA_STRUCTURE zurück.
- GET_AN_FIELD_VALUE_FROM_STRU: Diese Methode gibt einen Wert eines Feldes in der Struktur IS_DATA_STRUCTURE zurück.
Definieren von Suchbedingungen
Sie müssen die Suchbedingungen in der Datenbanktabelle /SAPAPO/PDEMCAT angegeben haben. Diese Tabelle enthält folgende Felder:
- Mandant
- Kundennummer
- Positionsvorgangsart
- Kennzeichen: außergewöhnlicher Bedarf
- Bedarfskategorie
Wie Sie die Suchenbedingungen definieren hängt von der Logik in der Methode GET_DEMAND_CATEGORY ab.
Für die Standard-Bedarfskategorie NONE muss die Tabelle folgendermaßen gefüllt sein:
- Kundennummer: SPACE
- Positionsvorgangsart: SPACE
- Kennzeichen: außergewöhnlicher Bedarf: SPACE
- Bedarfskategorie: NONE
Andere Suchenbedingungen können je nach der Logik in der Methode GET_DEMAND_CATEGORY hinzufügen.
INITIALIZATION
- Diese Methode übernimmt die Inhalte aus der Tabelle /SAPAPO/PDEMCAT in die Puffertabelle MT_FC_COMM_STRUC.
- Die Methode ermittelt anhand des Importparameters IV_DATASOURCE_NAME die entsprechenden Semantiken, Feldnamen, Datenelemente usw. und sichert diese in der Puffertabelle MT_FC_COMM_STRUC.
INITIALIZATION_OLD
- Diese Methode übernimmt die Inhalte aus der Tabelle /SAPAPO/PDEMCAT in die Puffertabelle MT_FC_COMM_STRUC.
- Die Methode ermittelt anhand des Importparameters IV_INFOSOURCE_NAME die entsprechenden Semantiken, InfoObjekt-Namen, Datenelemente usw. und sichert diese in der Puffertabelle MT_FC_COMM_STRUC.
GET_DATA_ELEMENT
Diese Methode ermittelt ein Datenelement anhand der Semantik in der Puffertabelle MT_FC_COMM_STRUC.
GET_AN_FIELD_VALUE_FROM_STRU
Diese Methode ermittelt einen Wert anhand der Semantik in der Struktur IS_DATA_STRUCTURE .
GET_DEMAND_CATEGORY
Diese Methode setzt die folgende Logik ein und legt fest, welche der in der Tabelle /SAPAPO/PDEMCAT definierten Bedarfskategorien das System einer Kundenauftragsposition zuordnen soll:
- Das System prüft, ob die Importparameter korrekt gefüllt sind. Es darf nur entweder IV_DATASOURCE_NAME oder IV_INFOSOURCE_NAME gefüllt sein, nicht beide gleichzeitig.
- Wenn sie nicht bereits aufgerufen ist, ruft das System die Methode INITIALIZATION oder INITIALIZATION_OLD auf.
- Das System prüft, ob die Werte folgender Datenfelder aus der Struktur IS_DATA_STRUCTURE in der Tabelle MT_DEMAND_CATEGORY mit einem Eintrag in der Tabelle MT_DEMAND_CATEGORY übereinstimmen:
- Kundennummer
- Positionsvorgangsart
- Kennzeichen: außergewöhnlicher Bedarf
- Wenn dies der Fall ist, übernimmt das System die Bedarfskategorie, die in diesem Eintrag angegeben ist.
- Anderenfalls fährt das System mit Schritt 4 fort.
- Das System prüft die Daten in der Struktur IS_DATA_STRUCTURE in der Tabelle MT_DEMAND_CATEGORY daraufhin, ob sie mit der Kombination aus zwei der oben genannten Datenfelder übereinstimmt. Das heißt, das System prüft, ob ein Eintrag in der Tabelle MT_DEMAND_CATEGORY mit einer der folgenden Kombinationen übereinstimmt:
- Positionsvorgangsartund Kennzeichen: außergewöhnlicher Bedarf
- Kundennummer und Positionsvorgangsart
- Kundennummerund Kennzeichen: außergewöhnlicher Bedarf
- Wenn dies der Fall ist, übernimmt das System die Bedarfskategorie, die Sie für diesen Eintrag in der Tabelle MT_DEMAND_CATEGORY definiert haben.
- Anderenfalls fährt das System mit Schritt 5 fort.
- Das System prüft die Daten in der Struktur IS_DATA_STRUCTURE in der Tabelle MT_DEMAND_CATEGORY auf das Datenfeld Kennzeichen: außergewöhnlicher Bedarf. Wenn dieses Kennzeichen gesetzt ist, übernimmt das System die entsprechende Bedarfskategorie, die in der Suchkriterien für diesen Fall definiert ist. Wenn das Kennzeichen nicht gesetzt ist, weist das System der Kundenauftragsposition die Bedarfskategorie 'NONE' zu. (Dies ist, wie oben beschrieben, die Standardbedarfskategorie für die Kombination Kundennummer = SPACE, Positionsvorgangsart= SPACE, Kennzeichen: außergewöhnlicher Bedarf = SPACE).
- Wenn das System keine Bedarfskategorie findet, löst es eine Ausnahme aus.
Beziehungen
Beispiel
Hinweise
Weiterführende Informationen
Weitere Informationen finden Sie in der Beschreibung des Business Add-Ins (BAdI) /SAPAPO/PDEM_DEM_CAT und in der Beschreibung der Methode
BAL Application Log Documentation PERFORM Short Reference
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 8024 Date: 20240426 Time: 045509 sap01-206 ( 94 ms )