IDoc-Verarbeitung
Die Eingangsdaten für das Interface OC können aus einer EDI-Strecke kommend verarbeitet werden. Dabei wird der EDI-Prozess INPUT_ORDRSP durchlaufen.
Funktionsbeschreibung
Die hier beschriebene Lösung setzt direkt auf dem eingehenden IDoc vom Typ "ORDERS05" auf. Das heißt, das IDoc wird von xSuite unmittelbar ausgelesen und weiterverarbeitet. Die erforderlichen technischen Validierungen orientieren sich dabei am SAP-Standard. Die Verarbeitung des IDocs kann projektspezifisch angepasst oder erweitert werden.
Nach erfolgreichem Abschluss der technischen Validierungen werden die IDoc-Daten in xSuite-Strukturen überführt und für den FP-Import aufbereitet. Die Daten werden außerdem einem SmartForms-Formular übergeben und dadurch in eine lesbare Form gebracht.
Im Anschluss daran wird der FP-Import durchgeführt und somit ein Interface-Beleg vom Typ "Auftragsbestätigung" erzeugt. Sollten bis zu diesem Zeitpunkt Fehler auftreten, welche die Erzeugung eines Interface-Belegs verhindern (wozu die vorhergehende technische Validierung ebenso zählt), wird ein IDoc-Statussatz mit Fehlermeldung erzeugt und die Verarbeitung abgebrochen.
Nachdem der Interface-Beleg erzeugt worden ist, wird er mit dem zuvor angelegten SmartForms-Formular verknüpft. Danach erfolgt die Toleranzprüfung der Daten. Je nach Ergebnis der Toleranzprüfung und abhängig von den Customizing-Einstellungen der Interface-Satzart wird der Beleg entweder durchgebucht und auf den Status Abgeschlossen gesetzt, oder er behält den Status Offen und wird im Order Confirmation Monitor angezeigt, wo dann eine weitere Nachbearbeitung erfolgen kann.
Ablauf und Komponenten
Die im folgenden aufgeführten Funktionsbausteine gehören zur Funktionsgruppe /WMD/FP_OC_IDOC.
Funktionsbaustein /WMD/FP_IDOC_INPUT_ORDRSP
Dieser Funktionsbaustein ist der Einstieg in die IDoc-Verarbeitung. Er besitzt dieselbe Signatur wie der Standard-Funktionsbaustein IDOC_INPUT_ORDRSP. Damit dieser Funktionsbaustein anstelle des Standard-Funktionsbausteins verwendet wird, muss er im EDI-Customizing eingetragen werden, siehe EDI-Customizing).
Der Funktionsbaustein dient als Rahmen für die weitere Verarbeitung und Schnittstelle zum SAP-IDoc-Framework.
ABAP-Klasse /WMD/CL_FP_OC_IDOC_ORDRSP
Diese Klasse wird vom Funktionsbaustein /WMD/FP_IDOC_INPUT_ORDRSP aufgerufen. Sie führt die eigentliche Verarbeitung des IDocs durch. Dazu zählt:
Mapping der IDoc-Sätze in xSuite-Zwischenstrukturen
Durchführen der technischen Validierung, wie z. B. Prüfen der Feldlängen
Mapping der Daten in die FP-Import-Strukturen
Erzeugen eines PDF-Formulars
Durchführen des FP-Imports
Rückgabe von Statussätzen an den FB /WMD/FP_IDOC_INPUT_ORDRSP
Darüber hinaus kann die Klasse auch zu Testzwecken eingesetzt werden, siehe Formular /WMD/FP_IDOC_INPUT_ORDRSP und Funktionsbaustein /WMD/FP_OC_INPUT_ORDRSP_TEST.
Die Klasse implementiert das Interface /WMD/IF_FP_OC_IDOC_ORDRSP und ist eine Exit-Klasse, also projektspezifisch übersteuerbar.
Formular /WMD/FP_IDOC_INPUT_ORDRSP
Dieser Funktionsbaustein dient zum Testen des Formulars /WMD/FP_IDOC_INPUT_ORDRSP und zum Testen der IDoc-Verarbeitung.
Beim Testen eines Formulars aus der Transaktion SMARTFORMS heraus bekommt das Formular keine Daten von außen. Die für die Verarbeitung erforderlichen Daten müssen anderweitig beschafft werden. Das erledigt der Funktionsbaustein /WMD/FP_IDOC_INPUT_ORDRSP, der über eine Weiche im Formular aufgerufen wird. Dazu muss der Eingabeparameter I_TESTMODE den Wert "X" haben und I_DOCNUM den Wert "<IDoc-Nummer>". Der Funktionsbaustein ruft die Klasse /WMD/CL_FP_OC_IDOC_ORDRSP im Testmodus auf, sodass keine Nachverarbeitung des IDocs stattfindet.
Beispiel: Wird das Formular im Testmodus mit F8 → F8 aufgerufen, erscheint die Schnittstelle des Formular-Funktionsbausteins. Hier müssen die beiden erwähnten Parameter gesetzt werden.
Import-Parameter | Wert |
|---|---|
I_TESTMODE | X |
I_DOCNUM | 0000000000836819 |
Auf diese Weise kann die Verarbeitung des IDocs getestet und das Ergebnis visualisiert werden, ohne die Nachverarbeitung durch den FP-Import und die Erzeugung eines Interface-Datensatzes durchlaufen zu müssen.
Funktionsbaustein /WMD/FP_OC_INPUT_ORDRSP_TEST
Dieser Funktionsbaustein dient zum Testen der gesamten Strecke:
IDoc-Verarbeitung mit der IDoc-Klasse
Durchführen des FP-Imports
Nachverarbeitung im Programm /WMD/FP_OCB
Der Funktionsbaustein dient der Fehlersuche innerhalb der gesamten Verarbeitungsstrecke. Die beteiligten Programme, Funktionsbausteine und Klassen werden im Normalfall im Hintergrund ausgeführt. Das macht die Suche nach einem Verarbeitungsfehler schwierig.
Mit diesem Funktionsbaustein kann die Verarbeitung hingegen im Dialogmodus erfolgen, sodass die Fehlersuche mit dem ABAP-Debugger möglich ist.
EDI-Customizing
Die im Folgenden beschriebenen Einstellungen sind exemplarisch und an die Projektsituation anzupassen. Insbesondere sollte der Namensraum /WMD/ durch einen geeigneten Kundennamensraum ersetzt werden.
Portdefinition
Transaktion WE21
Beispielhaft wird hier ein Port vom Typ "Datei" (File) verwendet. Dabei empfiehlt sich die Verwendung eines logischen Verzeichnisses, das zuvor mit der TA FILE eingerichtet worden ist. Der Dateiport ist beim ersten Einrichten der EDI-Strecke hilfreich, um die Verarbeitung eines einzelnen IDocs testen zu können. Für den Produktivbetrieb ist die Verwendung eines anderen Porttyps geeigneter, wie z. B. XML über HTTP.

Logische Nachrichtenart anlegen
Transaktion WE81

Zuordnung Nachrichtenart/IDoc-Typen
Transaktion WE82

Zuordnung Nachrichtenart/Anwendungsobjekt
Transaktion WE57

Vorgangscode Eingang
Transaktion WE42

Detailsicht:

Logische Nachricht:

Vorschläge Eingang
Transaktion WE27

Partnervereinbarung
Transaktion WE20
