Tom hielt in geübter Haltung das 1er Holz in den Händen und spürte auf seinen Unterarmen die leichte Brise, die aus südwestlicher Richtung über den hügeligen Platz wehte. Er konzentrierte sich auf den bevorstehenden Schlag, den er schon tausende Male ausgeführt hatte. Er musste an diesem Loch 3 unter Par liegen, wenn er gegen Jacques noch eine Chance haben wollte. In einer harmonischen Bewegung schwang er den Driver zunächst zurück und traf dann im Vorwärtsschwung den Golfball satt in Richtung des 18. Lochs. Als Tom der Flugbahn seines Balls nachschaute, dachte er sich nur: „Nein, die Partie ist verloren.“ Der Schlag war vollkommen verzogen und der Ball landete weit weg vom Grün.
Tom und Jacques trafen sich seit einem Jahrzehnt regelmäßig auf dem „The Royal Golf Club of Belgium“ südlich von Brüssel. Was zunächst als informelles Geschäftsmeeting begann, hatte sich über die Jahre zu einem regelmäßigen Ritual zwischen den beiden Männern etabliert. Hier konnten beide einmal im Jahr einige Tage Auszeit vom hektischen Tagesgeschäft nehmen und strategische Entwicklungen ihrer Unternehmen diskutieren. Toms und Jacques‘ Unternehmen hatten über die Zeit ein enges Verhältnis entwickelt. Tom war mit Abstand der größte und wichtigste Lieferant für Jacques‘ Unternehmen und im Gegenzug machte Tom einen nicht unerheblichen Anteil seines Umsatzes mit Jacques.
Nachdem Jacques im 18.Loch eingelocht hatte und wie abzusehen war, die Partie für sich entscheiden konnte, machten sich die beiden Männer auf den Rückweg zum Clubhaus. Hier würden sie gemeinsam den Abend ausklingen lassen, um am nächsten Morgen frühzeitig abzureisen. Tom wusste, dass er mit Jacques am Abend noch eine volle Agenda vor sich hatte. So erinnerte er sich an den „elektronischer Bestelleingang“, den ihn Hr. Philippsburg von der Orga-Abteilung mitgegeben hatte. Hr. Philippsburg hatte ihn gebeten, Jacques darauf anzusprechen, ob es für Jacques‘ Unternehmen möglich sei, die Bestellung auf elektronischem Wege zu übermitteln. Der Rückweg zum Clubhaus und die Hochstimmung Jacques‘ wäre ein gute Gelegenheit, um dieses Thema anzusprechen.
„Über die Jahre ist die Auftragsabwicklung immer komplexer geworden“, fing Tom an und fuhr fort: „Habt ihr bei euch auch den Effekt, dass dieser Posten zu einem großen Kostenfaktor geworden ist?“
„Ja, du hast recht; die gesetzlichen Regularien erfordern einen immer höheren Dokumentationszwang“, erwidert Jacques.
„Unsere Orga hat zu diesem Thema einen Ansatz“, sagte Tom. „Sie bittet euch, eure Bestellungen uns auf elektronischem Weg zu übermitteln. Meinst du, das ist machbar?“
Jacques überlegte kurz und antwortete dann: „Ich denke das sollte kein Thema sein. Soweit ich mich erinnere, liegen unsere Bestellungen in einer übersichtlichen Excel-Datei vor. Es sollte möglich sein diese Datei auf eine Diskette zu ziehen und euch einmal die Woche per Post zuschicken.“
Excel – Diskette – Post? Nein das ist bestimmt nicht State-of-the-Art, für den elektronischen Datenaustausch im Geschäftsverkehr. Heutzutage werden die Mehrzahl der Geschäftstransaktionen elektronisch ausgetauscht; und es ist das strategische Ziel vieler Unternehmen diesen Wert nahe an die 100% zu bringen. Der Austausch von Daten per Diskette, den es vielfach tatsächlich gab, sollte heutzutage kein Thema mehr sein.
Aktuell verläuft der elektronische Datenaustausch nach folgendem Prinzip ab:
# Aus dem ERP-System des sendenden Partners wird ein Datensatz generiert und an das Konverter-System übergeben
## Bestellung wird als ORDERS01-IDoc an den Konverter übergeben
# Der Konverter übernimmt die Daten und konvertiert sie in ein abgestimmtes Format und leitet die Daten an den Empfänger weiter
## ORDERS01-IDoc wird in das EDIFACT-Format ORDERS konvertiert
# Der Empfänger übernimmt die Daten in seinem Konverter-System und wandelt die Daten in ein Format um, dass das ERP-System verarbeiten kann
## EDIFACT-Format wird in ein ORDERS01-IDoc konvertiert
# Das empfangende ERP-System übernimmt die Daten verarbeitet sie anschließend.
## Mit der Verarbeitung des ORDERS01-IDocs wird ein Kundenauftrag angelegt
Für einen erfahrenen SAP-Berater erzähl ich hier natürlich nichts Neues. Egal in welchem Bereich man arbeitet, ob Finanzen, Controlling, Vertrieb, Einkauf, Produktion oder Qualitätsmanagement in allen Themengebieten werden elektronisch Daten ausgetauscht. Damit sollte jeder SAP-Berater mehr oder weniger mit IDocs in Verbindung gekommen sein. An dieser Stelle will ich ein paar Tricks vorstellen, die ich über die Jahre im Umgang mit IDocs gesammelt habe. Bei dieser Auflistung gehe ich davon aus, dass ihr prinzipiell IDocs kennt, d.h. die allgemeinen Zusammenhänge, wie Partnervereinbarung, Nachrichtenfindung, WE02, BD87 setze ich voraus.
1. IDoc-Daten verändern (WE02 / WE19)
Egal ob man ein Test-IDoc anpassen will, oder sogar im Produktivsystem ein IDoc anpassen muss, gibt es prinzipiell 2 Möglichkeiten:
# Die Daten eines IDocs direkt verändern
# Oder ein bestehendes IDoc verändern und eine Kopie des IDocs erstellen
Bei der ersten Option ruft man das zu verändernde IDoc mit der Transaktion WE02 auf. Anschließend springt man in die Detailebene eines IDoc-Segments, in dem man auf das Blatt-Icon neben dem Segment-Namen doppelklickt, das man ändern will. Von hier aus ruft man den Editiermodus auf, in dem man oben in der Menüleiste „Datensatz“ von Anzeigen auf Ändern wechselt. ZU BEACHTEN: Nur wenn es der aktuelle Status es zulässt, können die Daten eines IDoc-Segments geändert werden. Wenn man das veränderte IDoc erneut verarbeiten will, geht man einfach mit der IDoc-Nummer in die Transaktion BD87.
Bei der zweiten Option ruft man ein bestimmtes IDoc per Transaktion WE19 auf; hierzu muss man vorher die IDoc-Nummer ermittelt haben. Anschließend wird das komplette IDoc mit allen Segmenten und Daten dargestellt. Wenn man nun hier auf ein Segment doppelklickt bzw. Einfach-Klick auf die Daten des Segments durchführt, öffnet sich ein Editierfenster, in dem die Felder des Segments mit Inhalten dargestellt werden. In diesem Fester kann man die Daten verändern und anschließend bestätigen. Nachdem die Daten geändert wurden, wird das IDoc prozessiert: Wenn es sich um ein Eingangs-IDoc handelt, dann klickt man auf den Button „Standard Eingang“. Wenn das IDoc, das man verändert hat, ein Ausgangs-IDoc ist, dann muss der Button „Standard Ausgang“ betätigt werden. Nachdem man das Zwischenfenster mit Enter bestätigt hat, wird ein neues IDoc erzeugt, das gemäß Partnervereinbarung entweder direkt verarbeitet wird oder auf die Verarbeitung wartet (BD87) – Voila, jetzt hat man eine veränderte Kopie des ursprünglichen IDocs. Der Vorteil dieser Option gegenüber der erst vorgestellten Option (WE02) ist, dass man hier komplette Segment löschen bzw. hinzufügen kann.
2. Liste spezielles Segment (WE02)
Stell dir vor, du kommst Montag morgens ins Büro – etwas verschlafen – und die erste Mail, die du liest, kommt von deinem Boss: „Vertriebsinnendienst hat sich gemeldet; übers Wochenende sind keine Kundenaufträge reingekommen, weil die ORDERS-IDocs auf ein Fehler gelaufen sind, bitte bis 9 Uhr Liste der betroffenen Kunden mit Mailadresse des Ansprechpartners erstellen und mir zu mailen.“ – du schaust auf die Uhr: 8:45 Uhr!
Du startest die Transaktion WE02 und selektierst alle fehlerhaften ORDERS-IDocs – Ergebnis der Selektion: 9.672 IDocs. Du klickst in ein IDoc rein und siehst, dass der Ansprechpartner des Kunden mit Kontaktdaten in einem bestimmten Segment enthalten ist. Wenn du in jedes IDoc einzeln reinklickst und die Kontaktdaten rauskopierst, dauert es ca. 8 Stunden – du bist geliefert!
Nicht ganz, denn du kennst du Funktion „Liste spezielles Segment“: Nachdem man die Liste der IDocs per WE02 selektiert hat, gibt es in der oberen Menüleiste einen unscheinbaren Button „Liste spezielles Segment“ – das Icon sieht wie ein liniertes Blatt mit Rand aus. Du markierst im linken Bildschirmbereich einen IDoc-typ (in unserem Beispiel ORDERS), dann klickst du den oben erwähnten Button. Jetzt gibst du das Segment an, dessen Inhalte per Liste dargestellt werden soll – in unserem Beispiel das Segment, in dem die Kontaktdaten der Kunden stehen. Jetzt hast du alle Kontaktdaten der betroffenen Kunden als Liste vorliegen. Du lädst die Liste in Excel, bereinigst die doppelten Einträge und sendest sie an deinen Boss – es ist 8:54 Uhr.
3. Übersicht alle Daten eines IDocs (WE02 / WE19)
Du kennst bestimmt auch die Situation: Du sitzt vor dem Rechner und analysierst ein fehlerhaftes IDoc. Die Fehlermeldung des IDoc ist kryptisch und nicht wirklich hilfreich; zusätzlich kommt hinzu, dass das fehlerhafte IDoc aus hunderten von Segmenten besteht, d.h. du müsstest in jedes einzelne Segment reinklicken, um einen Überblick zu bekommen, ob du an den Inhalt oder der Struktur etwas fehlerhaftes erkennen kannst. Hier gibt es 2 hilfreiche Wege, mit denen man einen guten Überblick über das gesamte IDoc und dessen Daten bekommt:
# In der Transaktion WE02 das IDoc anzeigen lassen und in der oberen Menüleiste auf IDoc -> Drucken IDoc gehen. Nun wird der komplette Inhalt des IDocs mit den einzelnen Segmenten und Feldern in einer Liste dargestellt.
# Die zweite Möglichkeit, die ich persönlich übersichtlicher finde, ist die Transaktion WE19. Hier gibst du die IDoc-Nummer eines bestimmten IDocs vor und startest die Transaktion. Anschließend werden alle Segmente des IDocs (in ihrer jeweiligen Hierarchie) mit Inhalten dargestellt.
4. Leere Segment- Felder eines IDocs anzeigen (WE02)
Die Segmente eines IDocs bestehen aus unterschiedlichen Feldern, die per Offset definiert sind – dies kann man sich im Detail per WE30 anschauen. Wenn man sich nun mit der WE02 ein konkretes IDoc anzeigen lässt, gelangt man mit Doppelklick auf das Blatt-Icon links neben dem Segmentnamen zur Anzeige der einzelnen Felder dieses Segments – SAP nennt diesen Bereich „Anzeige eines Datensatzes des IDocs“. Wenn nun einzelne Felder dieses Segments nicht gefüllt sind bzw. keinen Wert enthalten, dann werden im Anzeige-Modus diese leeren Felder nicht dargestellt. Will man sich auch die leeren Felder anzeigen lassen, muss man über die Menüleiste zu „Datensatz -> Anzeigen -> Ändern“ wechseln – nun werden auch die leeren Felder dargestellt.
5. Dokumentation der IDocs (WE60)
Gerade wenn man zum ersten Mal ein IDoc einsetzen / nutzen will, finde ich folgende Transaktion sehr hilfreich: WE60 – Dokumentation für IDoc-Typen. Wie der Name schon sagt, kann man sich mit dieser Transaktion für alle IDoc-Typen eine sehr ausführliche, sowohl technische als auch betriebswirtschaftliche Dokumentation anzeigen lassen.
Bei der WE60 ist folgende (etwas versteckte) Option besonders hervorzuheben: Nachdem man die WE60 aufgerufen hat, kann man über die Menüleiste „Springen -> Benutzereinstellungen …“ zu den Benutzereinstellungen IDoc-Dokumentation wechseln. Hier kann man für seinen User – nachdem man in den Änderungsmodus gewechselt ist – die beiden Option „Ausgabe der Dokumentation“ und „Ausgabe der Feldwerte“ aktivieren und die Einstellungen speichern. Wenn man nun zurückgeht und sich die Dokumentation zu einem IDoc anzeigen lässt, dann werden auch betriebswirtschaftliche Informationen und Feldwerte zu den einzelnen Feldern mit Beschreibung dargestellt.
6. IDocs nach Inhalten suchen (WE09)
Stell Dir vor, du arbeitest in einem Pharma-Unternehmen und ein kleiner GAU ist aufgetreten: Eine Produktionscharge ist verunreinigt. Nun willst du dir einen Überblick verschaffen, wo überall die Charge verwendet wurde – natürlich bietet SAP umfangreiche Funktionen, um die Verwendung einer bestimmten Charge zu ermitteln. Aber dich interessiert besonders in welchen IDocs diese verunreinigte Charge genutzt wurde: Rückmeldung von der Produktion, Lieferung zu Kunden, Umlagerung zwischen Werken oder in Speditionsaufträgen. Um diese IDocs zu ermitteln ist die Transaktion WE09 die erste Wahl. Mit dieser Transaktion kann IDoc nach betriebswirtschaftlichen Inhalten suchen. Bezogen zur oben dargestellten Szene würde man die Transaktion WE09 aufrufen und die betroffene Chargennummer in das „nach Wert …“ eintragen und ausführen, nun werden alle IDocs aufgelistet, in denen die gesuchte Charge vorkommt.
7. Fehlerhafte IDocs auf erledigt setzen
Es ist Freitag 14:54 Uhr – du hast dich zurückgelehnt, deine Beine ausgestreckt und genießt deinen frischen Cappuccino aus einer großen Tasse. Doch so entspannt wie der Tag ausklingt, hatte der Freitag nicht begonnen. Morgens als du ankamst, gab es mehrere Hiobsbotschaften: Eine davon hieß, dass keine Aufträge mehr erfassbar waren, weil hunderte Materialstamm-Update-IDocs nicht verarbeitet wurden. Nachdem du den Fehler analysiert hattest, hattest du gemeinsam mit dem Lager einen Lösungsweg erarbeitet. Anschließend wurden vom Lagerverwaltungssystem neue IDocs versandt, die die Materialbestände wieder sauber aufgebaut hatten – dies hatte den ganzen Vormittag in Anspruch genommen und die letzten Stunden hattest du damit verbracht, zu analysieren, ob die Bestände nun korrekt waren – das waren sie. Doch bevor du dich in das wohlverdiente Wochenende verabschieden kannst, steht noch eine abschließende Aufgabe aus.
Die fehlerhaften IDocs, die morgens reingelaufen sind, müssen auf erledigt gesetzt werden. Hier gibt es folgenden Report, der die erste Wahl zum Umsetzen von IDoc-Status ist: RC1_IDOC_SET_STATUS. Diesen Report kann man per SE38 aufrufen. Im Selektionsbild gibt man die IDoc ein, deren Status man umsetzen will. Zusätzlich gibt man den aktuellen Status der IDocs an und den Status auf den die IDocs gesetzt werden sollen. Hier macht es Sinn, fehlerhafte IDocs, die nicht mehr weiter verarbeitet werden sollen, auf den Status „68 – Fehler, keine weitere Bearbeitung“ zu setzen.
8. Eingangs-IDocs per Job verarbeiten
In der Partnervereinbarung zu den IDocs (WE20) kann man unter anderem einstellen, dass die IDocs nicht direkt verarbeitet werden. Bspw. kann man Eingangs-IDocs zunächst nicht direkt beim Eingang verarbeiten, sondern paketweise und parallel per Job.
Der Job für die Eingangsverarbeitung der IDoc s wird mit dem Report (SE38) RBDAPP01 eingeplant.
9. Fehlerhafte IDocs per Job nachverarbeiten
Wie bei der oben beschriebenen Eingangsverarbeitung kann man auch fehlerhafte IDoc per Job nach verarbeiten lassen; hier muss der Report (SE38) RBDMANI2 mit entsprechender Variante als Job eingeplant werden.
10. IDoc-Tabelle (EDID4 / EDIDC / EDIDS)
Nicht nur für Entwickler, sondern auch für Berater kann es nützlich sein, die Tabellen zu kennen, in den die IDoc-Daten abgelegt sind. Folgende 3 Tabellen sind im Bereich IDocs essentiell:
# EDID4 – IDoc-Datensätze ab 4.0
In dieser Tabelle sind die Daten (Inhalte) eines bestimmten IDocs abgelegt; dabei wird pro Segment eines IDocs genau ein Satz (Zeile) in dieser Tabelle geschrieben. Die einzelnen Felder innerhalb eines Segments werden in dieser Tabelle nicht strukturiert abgelegt. Die einzelnen Felder können nur per Offset ermittelt werden.
# EDIDC – Kontrollsatz (IDoc)
In der Tabelle EDIDC ist der Kopfsatz eines IDocs abgelegt – pro IDoc wird in dieser Tabelle genau ein Eintrag erzeugt. In der EDIDC werden Daten wie IDoc-Nummer, Erstellungsdatum, IDoc-Typ abgelegt.
# EDIDS – Statussatz (IDoc)
Ein IDoc durchläuft während seines Lebenszyklus mehrere Status: „Erstellt“, „Zur Verarbeitung übergeben“, „Erfolgreich verarbeitet“ oder „Fehlerhaft verarbeitet“. Alle diese Status zu einem IDoc werden in der Tabelle EDID4 je IDoc abgelegt.
11. Bereichsmenü – WEDI
Auch wenn ich hier einige Funktion und Transaktion im Bereich IDoc vorstelle, gibt es doch eine große Menge von anderen hilfreichen Funktionen / Transaktionen zur Anzeige, Administration oder Test von IDocs. Zum Thema IDoc hat SAP ein Bereichsmenü spendiert in dem alle wichtigen IDoc-Transaktionen zusammen gefasst sind. In dieses Bereichsmenü gelangst du einfach aus dem Startbild des SAP-GUI mit der Transaktion WEDI.
12. Umsetzregel für IDocs
Das Aufsetzen einer neuen IDoc-Kommunikation ist im Grunde innerhalb von Stunden möglich. Doch die große Kunst bei diesem Thema ist es, das Mapping der Daten zwischen den Partnern abzustimmen – d.h. du musst übergreifend abstimmen, welche Daten, in welchem Format, in welchen Feldern enthalten sind. Selten wird man als Berater so viel Glück haben, dass genau die Daten im IDoc enthalten sind, die benötigt werden. Damit das IDoc trotzdem sauber verarbeitet werden kann, wird man an einer Entwicklung nicht drum herum kommen.
Doch vielfach muss es nicht soweit kommen. Hier bietet SAP die Funktion „Datenumsetzung zwischen Sender und Empfänger einstellen“. Mit dieser Funktion können die Inhalte eines IDoc mittels Customizing manipuliert werden:
# Bspw. kann man in ein bestimmtes Feld eines Segments immer eine Konstante eintragen
# Oder abhängig von einer Variable ein Wert in einem Segment setzen
Ich kann hier jedem den Tipp geben: Bevor man anfängt zu entwickeln, sollte man sich unbedingt diese Funktion mal genauer anschauen.
Übrigens: Die Umsetzregeln habe ich im folgenden Beitrag detailliert erklärt: Details zu den Umsetzregeln
*** Es wäre super, wenn du ein kleines Feedback hinterlassen würdest, Isa.
P.S.: In den letzten Jahren habe ich mich mit SAP-IDocs in verschiedenen Projekten intensiv beschäftigt, weshalb zu diesem Thema einige Beiträge zusammengekommen sind:
# Die wichtigsten SAP IDoc-Transaktionen: Lass dir diese Liste nicht entgehen.
# SAP-Idoc-Tabellen – erfahrene Berater kennen diese Tabellen.
# FUBA: Welcher Beleg gehört zu einem IDoc.
# WLF_IDOC: Die Zauber-IDoc-Transaktion, die die WE02, WE09 und BD87 altaussehen lässt.
# Einfacher geht es nicht: IDoc-Beleg-Verlinkung per SE16 ermitteln
Super, vielen Dank für die Tips. Ich bin Anwender und wenn ich in der WE19 alles expandiere schneidet er mir ab Bildschirmende rechts quasi alles ab. es gibt unten keinen Scrollbalken. Klicke ich eine Zeile an sehe ich alle Inhalte zum editieren. Leider findet er über die Suche STRG+F auch nur die Inhalte die ich visuell auf dem Bildschirm sehe. Alles was abgeschnitten ist kann ich nicht durchsuchen.
Kann man das Customizen bzw. anpassen?
VG Mario
Hallo Isa
Ganz toll deine Beiträge. Aktuell mühe ich mich mit IDOC in S/4HANA ab. Hast du hier auch schon Erfahrung sammeln können?
Mich würde interessieren, welche Möglichkeiten es mit Version 2020 für das Anbinden eines Drittsystems (Non-SAP) gibt.
Freue mich von dir zu hören / lesen.
Viele Grüsse
Corinne
Hallo Isa,
wie immer gleichermaßen unterhaltsam und informativ!
Die WE05 hat noch ein Gimmik, das ich lange unterschätzt habe: wenn ich ein IDoc anzeige (Programm(Dynpro) IDOC_TREE_CONTROL, Dynpronummer 100), kann ich über „Bearbeiten->Datenliste anzeigen“ das gesamte IDoc sehen; für mein Empfinden besser, als in der WE19. Wenn der Cursor auf „Datensätze“ steht und ich 1) „alle Feldwerte einblenden“ und 2) Teilbaum expandieren wähle, sehe ich alle Segmente und alle Feldwerte. Insbesondere kann ich dann über den „Suchen“ Button alle möglichen Feldwerte finden und es ist mir egal, in welchem Seqmenttyp sie eigentlich zu finden wären.
Beste Grüße
Christof
Vielen Dank für diese wertvollen Tipps und Erfahrungen. 🙂
Vielen Dank Isa,
wirklich erschöpfend erklärt
Vielen Dank Isa,
Kurz, prägnant und vor allem seeeehr hilfreich!
Sehr gut, vielen Dank für Deine Hilfen.
Hallo Isa,
Danke, dass du deine Erfahrungen Anderen zukommen lässt. Auch ich konnte anhand deiner Tipps mein aktuelles Problem lösen…
Viele Grüße,
Cord
Hallo ISA,
super beschrieben.
Nach kurzer suche meines Problems, hat mir Deine Beschreibung zum Analyse nach Idoc-Inhalten genau das gezeigt was ich brauchte.
Vielen Dank!
TOP mit Sternchen
VG
Michael
Hallo Isa,
danke für deine Beschreibung auch zu anderen Themen. ich nutze schon seit langem den Idoc Monitor. Heute bin ich allerdings auf eine Sache gestoßen die mich etwas verwundert. Wollte mal fragen, ob du da auch schon Erfahrungen hast.
Ich habe ein Idoc vom Typ WMMBXY das auf die Nase gefallen ist. Letztendlich nach debuggen ist der Fehler, das eine Falsche EAN Nummer im idoc steht. Das komische ist, das dieses Feld mit der EAN (kein Z Feld) MATNR_EXTERNAL im idoc Monitor nicht sichtbar ist, rufe ich es mit dem „alten“ BD87 Monitor auf, dann sehe ich es.
Vielleicht eine Idee?
Danke und Grüße
Stephan
Hallo Isa,
gut erklärt, aber # EDID4 – Statussatz (IDoc) dürfte falsch sein, oder?
Das müsste eher # EDIDS – Statussatz (IDoc) heißen?
Hi Olaf,
Danke für den Hinweis … und natürlich hast du recht.
Den Fehler habe ich korrigiert.
cu
Isa
Hallo Isa,
vielen Dank für die vielen sehr hilfreichen Infos!
Gruß
Georgios
Bitte sehr Georgios …
Es ist super erklärt. Das ist genau was ich suchte .
Danke vielmals 🙂
Hi Vladimir,
freut mich, wenn ich helfen konnte.
cu, Isa