In den letzten Beiträgen sind wir näher auf das WPUUMS, WPUTAB und WPUFIB eingegangen. Dieses Mal beschäftigen wir uns mit der Veränderung von IDoc Daten im POS DTA OUTBOUND und zeigen auf welche Möglichkeiten bestehen, wenn der SAP-Standard nicht ausreicht.

Im folgenden wird zwischen 2 Szenarien unterscheiden:

  1. SAP Erweiterungssegmente
  2. Veränderung von Idoc Daten in Standardsegmenten
  3. Eigene Erweiterungssegmente

Als Beispiel wird im folgenden der gängigste IDoc-Typ WPUUMS verwendet.

1. SAP Erweiterungssegmente

Im SAP-Standard werden frei verwendbare Erweiterungssegmente auf Itemebene bereitgestellt:

Die Struktur des Segments schaut wie folgt aus:

Sie ist kompatibel mit der Struktur der Transaktionserweiterungen:

Um das Erweiterungssegment in der Ausgangsimplementierung zu füllen muss der Mapping-BADI aktiviert und implementiert werden. Die BADIs finden sich im Customizing unter SAP Customer Activity Repository > POS Data Management > POS Inbound Processing > Customer-Specific Enhancements and BAdI Implementations > Change Data Before and After Processing > Change Outgoing Data > Enhancement of Special Outbound Tasks

In der Implementierung kann die Tabelle ET_EXT_HEADER gefüllt werden.

Im weiteren Verlauf der Ausgangsverarbeitung werden die Werte der Tabelle in das Erweiterungssegment übertragen und an das IDoc hinzugefügt.

2. Veränderung von IDoc-Daten in Standardsegmenten

 

Um Werte in Standardsegementen zu modifizieren muss eine Kopie der Klasse /POSDW/CL_IM_TASK_WPUUMS im Z-Namensraum erstellt werden. Diese Klasse muss als neue Implementierung des BADIs /POSDW/TASK mit einem neuem Filterwert zugeordent werden.

Hinterlegt man seinen Filterwert im Customizing seiner Ausgangsaufgabe kann man die Standardimplementierung ersetzen.

Als nächsten Schritt muss eine Kopie des Funktionsbaustein /POSDW/IDOC_OUTBOUND_WPUUMS über die Transaktion SE37 im Z-Namensraum erzeugt werden. Zusätzlich gilt es Kopien der zu veränderten Includes zu erzeugen. Nun kann der Standardbaustein durch den Z-Baustein in der Methode CALL der Badiimplementierung ersetzt werden.

Nun die die Ausgangsverarbeitung komplett im Kundennamensraum und in den Unterprogrammen map_header und map_item können Änderungen an den IDoc-Daten vorgenommen werden.

3. Eigene Erweiterungssegmente

Um neue Segmente zu seinem Ausgangsidoc hinzuzufügen muss als erster Schritt ein Erweiterungssegment in der Transaktion WE31 erstellt werden. Die Struktur des Segments variiert hier je nach Anforderung.

Nun gilt es eine Erweiterung zum entsprechenden IDoc anzulegen. Dies ist durch die Transaktion WE30 möglich.

Danach muss die neu erzeugte Erweiterung in der Partnervereinbarung(WE20) den entsprechenden Systemen und Nachrichtentypen zugeordnet werden.

Ab hier kann die Erweiterung durch die in Punkt 2 beschriebenen Schritte gefüllt werden.

Fazit

Der IDocversand aus dem POSDTA ist durch die BADI-gestütze Aufgabenimplementierung frei an ihre Geschäftsprozesse anpass- und erweiterbar.

Wie sie den IDocversand im POSDTA für die verschiedenen IDoc-Typen einrichten finden sie in unseren weiteren Blogartikeln. Für weitere Fragen stehen wir gerne in einem persönlichen Gespräch für sie zur Verfügung.