Ansicht
Dokumentation

CL_TRA_XI_MESSAGE - Fill and send message with client proxy

CL_TRA_XI_MESSAGE - Fill and send message with client proxy

CL_GUI_FRONTEND_SERVICES - Frontend Services   General Data in Customer Master  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Funktionalität

CL_SHP_XI_MESSAGE ist eine abstrakte Basisklasse für Push Services aus der Lieferungsbearbeitung, die einen Rahmen für die Vorverarbeitung und Wiederholung von Nachrichten zur Verfügung stellt.

Hierzu wird das InterfaceIF_SHP_MESSAGE_SENDER implementiert, sodass instanziierbare Unterklassen einer Nachrichtenart der Lieferung zugeordnet werden können (siehe Verarbeitungsklasse zuordnen).

Vorverarbeitung

In der Vorverarbeitung wird zunächst nur die vom Proxy generierte Nachrichtenstruktur aufgebaut. Gesendet wird die Nachricht erst in der Verbuchung der Lieferung. Da die Vorverarbeitung noch vor Aufruf der Verbuchung erfolgt, stehen globale Daten aus der Lieferungsbearbeitung zur Verfügung, wie z.B. im Lieferungskontext der Klasse CL_SHP_DELIVERY_CONTEXT.

Über die Vorverarbeitung kann so die Nachricht noch mit Lieferungsdaten aufgebaut werden, wenn die Lieferung gelöscht wird. Die Vorverarbeitung steht jedoch auch Sofortnachrichten beim Anlegen oder Ändern der Lieferung zur Verfügung (siehe Verarbeitungsklasse zuordnen).

Die abstrakte Methode FILL füllt die Nachrichtenstruktur. Im Falle einer Vorverarbeitung erfolgt der Aufruf vor der Verbuchung mit gesetztem Flag IF_SYNC. Unabhängig von diesem Flag stehen die Daten der Lieferung bereits in den Instanzattributen RLIKP, RLIPS etc. zur Verfügung.

Die abstrakte Methode SEND versendet die Nachricht über einen Client-Proxy und gibt dessen Instanz für administrative Zwecke zurück.

Eine Vorverarbeitung gibt die von FILL gefüllte Nachrichtenstruktur über einen Container an einen späteren Aufruf von SEND weiter. Ohne Vorverarbeitung erfolgt der Aufruf von SEND unmittelbar nach FILL.

In der abstrakten MethodeBIND erhält das Attribut MESSAGE die Referenz auf diese Nachrichtenstruktur, sodass die Basisklasse die Nachricht unabhängig vom DDIC-Typ der Nachrichtenstruktur weitergeben kann. Die Methode BIND sollte im Konstruktor der Unterklasse gerufen werden.

Eine Vorverarbeitung findet statt, wenn

  • die Nachricht beim Löschen wiederholt werden soll (sieheCHECK_REPEAT) oder
  • das Attribut FILL_IN_PREPROCESS gesetzt ist und die Nachricht noch in derselben LUW versendet werden soll.

Wiederholung

Die Prüfung, ob eine Nachricht wiederholt werden soll, überlässt die Basisklasse einer entsprechenden Implementierung des BAdIs SHP_BADI_REPEAT_MESSAGE (Methode CHECK_REPEAT). Diese Methode kann in Unterklassen redefiniert werden.

Implementierung

Eine Verarbeitungsklasse muss die MethodenBIND, FILL und SEND implementieren.

Der Konstruktur

  • ruft die Methode BIND,
  • setzt das Attribut FILL_IN_PREPROCESS auf den Wert ABAP_TRUE, wenn bei Nachrichten, die in derselben LUW gesendet werden sollen, der oben beschriebene Vorverarbeitungsschritt vorangestellt werden soll und
  • setzt das Attribut REPEAT_ON_DELETE auf den Wert ABAP_TRUE, wenn die Nachricht beim Löschen der Lieferung zur Wiederholung vorgeschlagen werden soll.

Auf die Daten der Lieferung kann über die Referenzen RLIKP, RLIPS, RVBFA, RVBPA, RVBUK und RVBUP zugegriffen werden. Diese Referenzen zeigen im Falle des Löschens der Lieferung auf die Daten in den Y-Tabellen und ansonsten auf die X-Tabellen.

Darüber hinaus steht der Lieferungskontext im Attribut CTX (CL_SHP_DELIVERY_CONTEXT) und die Lieferungsdaten nochmals explizit im Attribut DPD ( CL_SHP_DELIVERY_PROC_DATA) zur Verfügung.

Das Attribut GDT_IND enthält die booleschen Werte für den GDT Indicator.

Erweiterungen

Für Erweiterungen steht das BAdI SHP_BADI_FILL_XI_MESSAGE zur Verfügung. Hierüber kann das Ergebnis von FILL einer ausgelieferten Verarbeitungsklasse auch ohne Unterklassenbildung geändert oder erweitert werden.

Beziehungen

Beispiel

CL_SHP_XI_MESSAGE_DLIN für die DeliveryInformation (Nachrichtenart DLIN).

Hinweise

Weiterführende Informationen






General Material Data   CPI1466 during Backup  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 5949 Date: 20240423 Time: 090417     sap01-206 ( 83 ms )