Menu

SAP-IDoc-Tutorial - Teil 1: IDoc Grundlagen und Begriffe

2020-11-22       

Dies ist der Beginn einer weiteren Serie auf diesem Blog: Eine vollständige Einführung in IDocs in SAP. Wir beginnen in diesem Beitrag mit der Erläuterung der IDoc-Grundlagen und der Verwendung von IDocs in SAP-ERP-Umgebungen.

Unsere Literaturempfehlung

IDoc-Entwicklung für SAP: Customizing, Erweiterung, Eigenentwicklung

Wenn der Standard nicht ausreicht: Mit diesem Buch lernen Sie, IDocs selbstständig zu programmieren und zu erweitern. Die Autorin beschreibt Customizing-Techniken, die Erweiterung der Standardbausteine und komplette Eigenentwicklungen. Ob Rückmeldungen von Statuswerten, E-Mail-Workflows oder Serialisierung – für alle Aufgaben finden Sie Anleitungen und Tipps aus der Programmierpraxis. Neu in dieser Auflage: Überwachung und Fehlerbehandlung mit dem SAP Application Interface Framework.

Bei amazon.de ansehen →

Was ist ein IDoc in SAP ERP?

Ein IDoc ("Intermediate Document") ist ein Behälter für den standardisierten Datenaustausch. IDocs können verwendet werden, um Daten zwischen zwei Prozessen, zwischen SAP-Systemen oder zwischen SAP- und Nicht-SAP-Systemen auszutauschen.

Diese Definition für SAP-IDocs sollte alle Anwendungsfälle abdecken. Die korrekte Groß-/Kleinschreibung ist übrigens IDoc - nicht IDOC oder Idoc.

IDocs werden verwendet, um Daten zwischen zwei Stellen auszutauschen, die diese benötigen. Beide Systeme müssen in der Lage sein, die Semantik und Syntax des IDocs zu verstehen. Sie können sich IDocs einfach als ein standardisiertes Schnittstellenformat vorstellen, genau wie eine REST-API-Antwort, die von einem Frontend gelesen wird. IDocs werden bei der Ausführung eines ausgehenden ALE- oder EDI-Prozesses erzeugt.

IDocs werden durch eine IDoc-ID oder -Nummer identifiziert, die innerhalb eines Mandanten eindeutig ist. Dies ist wichtig - die IDoc-Nummer auf einem System identifiziert nicht dasselbe IDoc auf einem anderen System eindeutig! Einige andere wichtige Fakten über IDocs:

Aufbau von IDocs in SAP ERP

Idocs gibt es in zwei Varianten. Traditionell sind sie ein Format mit fester Länge (1000 Bytes), aber in neueren Versionen gibt es auch ein XML-basiertes Format. Dies hat den Vorteil, dass es flexibler in der Anwendung ist, da es auf dem XML-Standard des W3C basiert. Über die SAP-Transaktion WE60 kann die Dokumentation zu allen IDocs eingesehen werden.

Beispielstruktur eines IDocs

In SAP-Systemen bestehen IDocs immer aus den folgenden drei Teilen.

Diese Struktur ist natürlich auch in SAP-Systemen über die Transaktionen WE02 oder WE05 sichtbar.

Struktur desselben IDocs, zu sehen in der SAP-Transaktion WE02 (IDoc anzeigen)

IDoc-Typen

Ein IDoc-Typ definiert, welche Art von Daten im IDoc enthalten sind. Sie können sich ein IDoc als eine Instanz eines IDoc-Typs vorstellen, so wie ein Objekt in der objektorientierten Programmierung eine Instanz einer Klasse ist. Der IDoc-Typ steuert unter anderem:

IDoc-Typen können mit der SAP-Transaktio WE30 (IDoc-Typ-Entwicklung) definiert werden.

Sehen wir uns einige detailliertere Informationen über die in jedem IDoc vorhandenen Sätze an.

Kontrollsatz (Control Record)

Kontrollsätze werden in der Tabelle EDIDC mit der IDoc-Nummer als Primärschlüssel gespeichert. Dies sind einige der wichtigsten Informationen, die im IDoc-Kontrollsatz gespeichert sind:

Datensatz (Data Record)

Der Datensatz enthält Anwendungsdaten - wie z.B. Rechnungs-, Bestell- oder Lieferdaten. Die Datensätze für jedes IDoc sind in den SAP-Tabellen EDID2, EDID3 und EDID4 gespeichert. Die tatsächliche Nutzlast wird als Klartextstring im Feld SDATA gespeichert, das ein 1000 Zeichen langes Feld ist (daher die feste Länge für IDocs). Die Datensätze sind weiter in Segmente strukturiert. Segmente sind wiederverwendbare Datenstrukturen, die das Format von Datensätzen in IDocs definieren. Für jedes Segment gibt es einen Segmenttyp, eine Segmentdefinition und eine Segmentdokumentation, die mit der Transaktion WE31 eingesehen werden können. Die letzten drei Zeichen in einem Segmentnamen sind die Version, die bei jeder Änderung in einem neuen SAP-ERP-Release inkrementiert wird.

Statussatz (Status Record)

In jedem Schritt der IDoc-Verarbeitung wird ein Statussatz an ein IDoc angehängt. Dies geschieht sowohl bei erfolgreicher Verarbeitung als auch im Fehlerfall. Statussätze werden in der Tabelle EDIDS gespeichert. Die Status 1-42 gelten für die Ausgangsverarbeitung, während die Status 50-75 für die Eingangsverarbeitung gelten.

IDoc-Tabellen in SAP ERP

IDocs werden in der Datenbank gespeichert, genau wie jedes andere SAP-Objekt. Dies sind die relevanten Tabellen für IDocs in SAP:

IDocs mit Erweiterungssegmenten erweitern

Wie (fast) alles in SAP ERP können IDocs erweitert werden. Das Instrument dafür sind Erweiterungssegmente. Sie können nicht für jeden IDoc-Typ die Grundstruktur der Segmente ändern, da dies die Standards, auf denen IDocs basieren, und damit die Kompatibilität mit anderen Systemen verletzen würde. Was Sie jedoch tun können, ist das Hinzufügen von Erweiterungssegmenten, d.h. Sie fügen kundenspezifische Daten am Ende des IDocs hinzu.

Ich werde in einem weiteren Blogbeitrag beschreiben, wie man dies im Detail macht.

IDoc-Typendokumentation in SAP ERP

Jeder IDoc-Typ verfügt über eine sehr detaillierte Dokumentation, die direkt in SAP ERP über die Transaktion WE60 eingesehen werden kann. Ein Beispiel:

Weitere IDoc-bezogene Definitionen

Um den Kontext zu verstehen, in dem IDocs arbeiten, ist es nützlich, einige Begriffe erklären zu lassen, bevor wir uns die Arbeit mit IDocs genauer ansehen.

Nachrichtenarten und IDoc Views

Nachrichtenarten repräsentieren bestimmte Arten von Geschäftsdokumenten im EDI - wie z.B. Bestellungen, Auftragsbestätigungen, Rechnungen. IDoc-Typen können mit Transaktion WE81 in einer Many-to-Many-Beziehung auf Nachrichtenarten abgebildet werden.

Da IDocs für mehrere Nachrichtentypen verwendet werden können, enthalten sie oft mehr Felder als für eine bestimmte Nachricht erforderlich. Daher können IDoc-Sichten verwendet werden, um Projektionen von IDoc-Typen zu erstellen, die nur einige der verfügbaren Segmente des IDoc-Typs verwenden. Sie gelten nur für die Ausgangsverarbeitung, da bei der Eingangsverarbeitung dieser Overhead unproblematisch ist. IDoc-Sichten können mit der Transaktion WE32 gepflegt werden.

Partnerprofile

Partnervereinbarungen im Kontext von EDI/ALE/IDoc sind Geschäftspartner, mit denen ein SAP-System Dokumente austauschen kann. Mit der Transaktion WE20 können Sie die für den Datenaustausch notwendigen Parameter pflegen.

Port

Ports sind der Ort, an dem die technischen Eigenschaften einer Verbindung zwischen einem SAP-System und einem angeschlossenen System ("Subsystem") gepflegt werden. Sie definieren, was mit IDocs nach dem Versenden geschieht. Einige der gebräuchlichsten Ports sind der HTTP-Port für den direkten IDoc-Austausch im XML-Format, der von EDI verwendete Datei-Port oder der von ALE verwendete TRFC-Port.

Der Dateiport eignet sich hervorragend für das Debugging, da er das erstellte IDoc in einer Datei innerhalb eines Dateisystems ausgibt. Er ist auch die grundlegendste Art, Schnittstellen zum Lesen von Daten aus SAP aufzubauen, da so ziemlich jedes andere System so konfiguriert werden kann, daß es Dateien in bestimmten Formaten liest.

Ein vollständiger IDoc-Prozessfluss

Hier ist ein Beispiel auf hoher Ebene für die Schritte bei der Verarbeitung eines IDocs. Nehmen wir an, wir möchten eine Bestellung an einen mit uns verbundenen Lieferanten über EDI senden. Nehmen wir an, der Lieferant hat auch SAP ERP.

Das Senden von Daten aus dem eigenen SAP-System wird als Ausgangsverarbeitung, das Empfangen von Daten aus anderen Systemen als Eingangsverarbeitung bezeichnet. SAP-Entwickler oder Berater werden häufig damit beauftragt, diese Kommunikationswege einzurichten. Hier sind die erforderlichen Schritte aufgeführt:

Wie Sie die Ausgangsverarbeitung für IDocs einrichten

Dies sind die übergeordneten Schritte, die zum Einrichten der ausgehenden IDoc-Verarbeitung erforderlich sind.

So richten Sie die Eingangsverarbeitung für IDocs ein

Dies sind die übergeordneten Schritte, die zum Einrichten der eingehenden IDoc-Verarbeitung erforderlich sind.

IDoc-Transaktionen in SAP ERP

Diese hilfreiche Liste enthält eine Auswahl von IDoc-Transaktionen, die bei der Entwicklung oder Arbeit mit IDocs nützlich sind.

IDoc-Such- und Anzeigetransaktionen

IDoc-Verwaltung und Dokumentationstransaktionen

IDoc-Entwicklungstransaktionen

IDoc Testtransaktionen

Ich wünsche erfolgreiche IDoc-Entwicklung!!