Show TOC

Aufbau eines IDocs: Technische RealisierungLocate this document in the navigation structure

Verwendung

IDocs sind SAP-intern in drei Datenbanktabellen abgelegt: Einer Tabelle für den Kontrollsatz, einer für die Datensätze, und einer für die Statussätze.

  • Der Kontrollsatz ist für alle IDocs gleich und enthält die Verwaltungsinformationen, etwa Absender, Empfänger und Nachricht. Beachten Sie auch, dass der Kontrollsatz den letzten Verarbeitungsstatus (Feld STATUS) enthält!

  • Die Datensätze enthalten die Segmente und Verwaltungsinformationen zu den Segmenten (z.B., an welchem Elternsegment es eventuell hängt).

  • Die Statussätze enthalten alle bislang durchlaufenen Verarbeitungsstatus sowie wiederum Verwaltungsinformationen. Diese Information wird nicht als Teil des IDocs von einem ins folgende System übermittelt, sondern als separates Datenpaket.

In der IDoc-Schnittstelle nach außen (d.h. wie sie an das Folgesystem übergeben werden) befinden sich die IDocs in drei Strukturen, die den Datenbanktabellen entsprechen: Dort gibt es also genauso Kontroll- Daten- und Statussatz. Die Beschreibung der einzelnen Felder ist im System über die Dokumentationswerkzeuge zugänglich.

Die folgende Abbildung zeigt den Grundaufbau der IDocs im SAP-System (IDoc-Schnittstelle nach außen, d.h. die "externen Strukturen"), mit einigen Beispielfeldern.

Die Eltern-Kind-Struktur der Segmente wird durch das Feld PSGNUM ermöglicht, das die Nummer des Elternsegmentes (falls vorhanden) trägt. Das Feld HLEVEL enthält zudem noch die Hierarchieebene. Die eigentlichen Anwendungsdaten, d.h. das eigentliche Segment, finden sich im Feld SDATA. Dieses Feld wird wiederum in einzelne Anwendungsfelder unterteilt. Die Maximallänge von SDATA beträgt 1000 Bytes.

Das Feld SEGNUM im Statussatz dient dazu, Segmente zu identifizieren, bei denen es zu Syntaxfehlern gekommen ist. SEGFLD erfüllt die gleiche Funktion auf der untersten Ebene der Segmentfelder.

Beispiel

Ein Segment ist als Musssegment im IDoc-Typ definiert, wurde aber beim Erzeugen des konkreten IDocs nicht gefüllt. Daher gibt es dieses Musssegment im betreffenden IDoc nicht - die Syntaxprüfung meldet einen Fehler, im Feld SEGNUM wird das fehlende Segment vermerkt.