Modifikationskonzepte:
IDoc-Eingang
Es stehen Ihnen die folgenden Modifikationsszenarien zur Verfügung:
· Sie verwenden das Standard-IDoc, wollen aber die Verarbeitung des IDocs selbst realisieren.
Sie erzeugen einen eigenen Verarbeitungsbaustein, den Sie aus dem Standardfunktionsbaustein des jeweiligen Nachrichtentyps kopieren und anpassen.
· Sie verwenden das Standard-IDoc, wollen aber die Standard-IDoc-Verarbeitung beeinflussen, d. h., Sie wollen die Fehlerbearbeitung modifizieren oder den Inhalt der IDocs kundenindividuell interpretieren.
Sie implementieren das Business Add-In (BAdI) im Standardfunktionsbaustein:
¡ Wenn Sie die Fehlerbearbeitung beeinflussen wollen, implementieren Sie das BAdI /SCWM/WMIDOC mit der Methode Error_Inbound.
¡ Wenn Sie die IDoc-Verarbeitung beeinflussen wollen, implementieren Sie das BAdI /SCWM/WMIDOC mit den folgenden Methoden
§ WMTORD_INBOUND
§ WMTOCO_INBOUND
§ WMCATO_INBOUND
§ WMSUMO_INBOUND
§ WMBBIN_INBOUND
Weitere Informationen zu den BAdI-Methoden finden Sie unter BAdI-Methoden der Schnittstelle.
· Sie verwenden ein modifiziertes IDoc mit eigenen Segmenten, und Sie wollen für die Daten aus diesen Segmenten eine bestimmte Verarbeitung durchführen.
Sie definieren im Standard-IDoc eigene IDoc-Segmente und verwenden das BAdI /SCWM/WMIDOC mit der Methode Error_Inbound., um die Daten aus den eigenen Segmenten zu verarbeiten.
· Sie verwenden ein modifiziertes IDoc mit eigenen Segmenten und wollen die Verarbeitung des IDocs selbst realisieren.
Sie definieren im Standard-IDoc eigene IDoc-Segmente und erzeugen einen eigenen Verarbeitungsfunktionsbaustein.
· Sie benutzen ein eigenes IDoc mit einem neuen Nachrichtentyp und müssen die Verarbeitung des IDocs in eigener Regie realisieren.
Sie definieren ein eigenes IDoc und erzeugen einen eigenen Verarbeitungsfunktionsbaustein. Wenn Sie den Funktionsbaustein erstellen, können Sie die Standard-Hilfsfunktionsbausteine verwenden.
Sobald das SAP-System das IDoc empfangen und gesichert hat, ruft das System einen Rahmenfunktionsbaustein der Anwendung auf, der die Verarbeitung des IDocs übernimmt.
An diesem Punkt haben Sie die erste Möglichkeit, in die IDoc-Verarbeitung einzugreifen, indem Sie einen eigenen Verarbeitungsfunktionsbaustein erzeugen.
Sie tragen diesen Funktionsbaustein im Bild SAP Easy Access unter Werkzeuge → ALE → ALE-Entwicklung → IDoc → Eingangsverarbeitung → Funktionsbaustein → IDoc- und Nachrichtentyp zuordnen ein.
Sie können dort auch eine zusätzliche Partnervereinbarung für eine bestimmte Nachrichtenvariante oder –funktion aus dem Fremdsystem treffen, um die Verarbeitung im SAP-System zu differenzieren.
Rahmenfunktionsbausteine für IDoc-Eingang
Nachrichtentyp |
Funktionsbaustein |
Verwendung |
/SCWM/WMBBIN |
/SCWM/IDOC_INPUT_WMBBIN |
Lagerplätze sperren |
/SCWM/WMCATO |
/SCWM/IDOC_INPUT_WMCATO |
Storno LB |
/SCWM/WMSUMO |
/SCWM/IDOC_INPUT_WMSUMO |
Handling Unit bewegen |
/SCWM/WMTOCO |
/SCWM/IDOC_INPUT_WMTOCO |
Quittieren LB |
/SCWM/WMTORD |
/SCWM/IDOC_INPUT_WMTORD_MULTIPLE |
Lageraufgaben (LB) |
Der Rahmenfunktionsbaustein filtert die Nutzdaten pro IDoc heraus und ruft seinerseits in einer Schleife den eigentlichen Verarbeitungsfunktionsbaustein der Anwendung auf.
Jeweils vor dem Aufruf dieses Funktionsbausteins als auch danach ist eine BAdI-Methode implementiert:
· Die BAdI-Methode nach dem Aufruf des Funktionsbausteins können Sie nutzen, um eigene Fehlerstatus fortzuschreiben oder die gesetzten Fehlerstatus zu ändern.
· Die BAdI-Methode vor dem Aufruf des Funktionsbausteins können Sie nutzen, um z. B. eigene Fortschreibungen durchzuführen oder um eigene Segmente (die Sie in der IDoc-Definition angehängt haben) auszuwerten.

Die Namen der BAdI-Methode entnehmen Sie dem Quellcode der Rahmenfunktionsbausteine.
Wenn Sie einen eigenen Funktionsbaustein erstellen oder BAdIs nutzen, achten Sie darauf, dass Sie keinen COMMIT-WORK-Befehl absetzen, da es sonst zu Fehlern bei der IDoc-Verarbeitung und zu Inkonsistenzen in der Fehlerbearbeitung kommen kann. Das System kehrt nach der Bearbeitung zurück in die ALE-Schicht, wo das System auftretende Anwendungsfehler fortschreibt, die IDoc-Status setzt und eventuell sogar Datenbank-Rollbacks ausführt.

Beachten Sie, dass weitere I/Os in den BAdIs die Performance beeinträchtigen können.
Eigene IDoc-Segmente definieren Sie,
indem Sie im Bild SAP Easy Access Werkzeuge → ALE → ALE-Entwicklung → IDoc → IDoctyp-Entwicklung → IDoctypen wählen.
Weitere Informationen finden Sie unter
Segmenteditor.
Das SAP-System bietet allgemein verwendbare Funktionsbausteine zu den folgenden Aufgaben an für die Nutzung eigener Rahmenfunktionsbausteine:
Hilfsfunktionsbausteine für den IDoc-Eingang
Funktionsbaustein |
Aufgabe |
/SCWM/IDOC_CREATED_OBJECTS_SAVE |
Die aus einem IDoc erstellten Belege zwischensichern |
/SCWM/IDOC_ERROR_SAVE |
Fehlerhafte IDocs zwischensichern |
/SCWM/IDOC_INPUT_REFRESH |
Initialisierung für die IDoc-Verarbeitung (Tabellen-Refresh) |
/SCWM/IDOC_OK_SAVE |
Verarbeitete IDocs zwischensichern |
/SCWM/IDOC_RETURN_CREATE |
Statussatz des IDocs ermitteln und aufbauen |
/SCWM/IDOC_ROLLBACK_SAVE |
IDoc-Tabellen nach notwendigem Rollback aktualisieren |
/SCWM/IDOC_STATUS_CREATE |
Statussatz des IDocs ermitteln und aufbauen |
/SCWM/IDOC_TIDOC_FETCH |
Holen der internen Tabelle zwecks Statusfortschreibung |
Wenn Sie eigene IDocs (Zwischenstruktur)
definieren, ordnen Sie dieses IDoc einem
neuen Nachrichtentyp zu. Wählen Sie dazu im Bild SAP Easy Access Werkzeuge
→ ALE → ALE-Entwicklung → IDoc → IDoctyp-Entwicklung → IDoctypen. Weitere Informationen
finden Sie unter
Neue IDoc-Typen
definieren.
Sie treffen eine Partnervereinbarung für diesen Nachrichtentyp.
Sie definieren für dieses IDoc die Tabellen für die Eingangsverarbeitung unter Werkzeuge → ALE → ALE-Entwicklung → IDoc → Eingangsverarbeitung.
Für die Fehlerbearbeitung steht Ihnen die Standardaufgabe TS00008099 zur Verfügung.