Intermediate Document (IDoc)
IDoc (Intermediate Document) ist eine Standard-Datenstruktur, die in SAP-Anwendungen verwendet wird, um Daten sowohl zwischen SAP-Anwendungen als auch zwischen SAP- und externen Systemen auszutauschen. Mit IDoc können zum Beispiel Unternehmen die SAP-ERP-Systeme einsetzten, ihre Daten an externe Unternehmen, wie Partner oder Kunden übertragen.
Der Transfer zwischen den SAP-Systemen erfolgt über das SAP-System Application Link Enabling (ALE), wogegen der Transfer von einem SAP-System zu einem externen System mittels Electronic Data Interchange (EDI) erfolgt. Auf diesem Weg können die Daten zwischen den verschiedenen Systemen ausgetauscht werden, ohne dass die Daten von einem Format in ein anderes konvertiert werden müssen.
IDoc-Struktur
Für asynchrone Transaktionen werden IDocs folgendermaßen verwendet: Jedes generierte IDoc wird als eigenständige Textdatei ohne Verbindung zur zentralen Datenbank an die anfordernde Workstation übertragen. Im Gegensatz dazu wird bei synchronen Transaktionen eine weiterer SAP-Funktion, nämlich das Business Application Programming Interface (BAPI), verwendet.
Ein SAP IDoc besteht aus drei Teilen:
- Control Record enthält administrative Informationen wie IDoc-Typ, Nachrichtentyp, aktueller Status, Sender und Empfänger.
- Data Record enthält alle IDoc-Daten, die in Gruppen, den sogenannten Segmenten, abgelegt sind. Jedes IDoc kann Standard-Segmente und kundenspezifische Segmente enthalten.
- Status Record informiert über die verschiedenen Phasen, die das IDoc durchlaufen hat.
IDoc-Typen
IDocs können innerhalb eines SAP-Systems oder im EDI-Subsystem ausgelöst werden. Ein IDoc, das von einem SAP-System empfangen wird heißt Inbound IDoc, wogegen ein aus einem System heraus verschicktes IDoc mit Outbound IDoc bezeichnet wird.
Ein Outbound IDoc wird über Document Message Control an das EDI-Subsystem angestoßen. EDI konvertiert die IDoc-Daten in XML oder ein gleichwertiges Format und sendet die Daten über das Internet an das externe System. Für eingehende IDocs konvertiert EDI die externen Daten. Anschließend wird das empfangene IDoc im SAP-System generiert. Nach der Verarbeitung des IDocs wird ein Beleg innerhalb des SAP-Systems gebucht.
IDoc-Typen definieren verschiedene Datentypen, wie zum Beispiel Bestellungen oder Rechnungen, die dann in spezifischere Kategorien, sogenannte Nachrichtentypen, zerlegt werden können. Höhere Spezifität bedeutet, dass ein IDoc-Typ nur die für eine bestimmte Transaktion benötigten Daten speichern kann, was die Effizienz erhöht und den Ressourcenbedarf verringert.
Wie wird IDoc im SAP-System genutzt?
Ein IDoc kann an jeder beliebigen Stelle eines Transaktionsprozesses erzeugt werden. Zum Beispiel kann während eines Versandvorgangs ein IDoc erzeugt werden, das die für den Druck einer Versandliste erforderlichen Datenfelder enthält.
Nachdem ein Benutzer eine SAP-Transaktion ausgeführt hat, werden ein oder mehrere IDocs in der sendenden Datenbank erzeugt und an die ALE-Kommunikationsschicht übergeben. Die Kommunikationsschicht führt einen Remote Function Call (RFC) über die vom Kundenmodell vorgegebene Port-Definition und RFC-Destination durch. Das IDoc wird an den Empfänger gesendet, der ein S/4HANA-, R/3- oder anderes externes System sein kann.