SAP IDocs: Statusübersicht und Statusänderung

Wie bekommt man eine Übersicht über den Status der IDocs im SAP-System? Wie kann man den Status eines IDocs ändern? Und wann sollte man das tun?

Die Übersicht über die Statuswerte der IDocs bekommst Du über die Transaktion BD87. Für das Ändern des Status gibt es keine Transaktion, aber einen von SAP bereitgestellten Report. Dieser sollte nur mit viel Umsicht eingesetzt werden.

Übersicht über den IDoc-Status: die Transaktion BD87

Die Transaktion BD87 bietet im Einstiegsdialog einige Suchkriterien, insbesondere

  • das Erstellungsdatum, die Erstellungszeit und
  • den IDoc-Typ (den Nachrichtentyp). 

Du kannst aber auch Statuswerte zum Filtern vorgeben.

Als Datum ist nur der heutige Tag voreingestellt. Hier wirst du üblicherweise einen größeren Zeitraum sehen wollen. Wenn Du beispielsweise regelmäßig die IDocs der letzten zwei Wochen untersuchen willst, dann bietet es sich an eine Variante zu speichern, die diesen Zeitbereich voreinstellt. 

BD87 die Anzeige der gefundenen IDocs

Nach dem Suchen bekommst du folgende Übersicht.

Die IDocs werden nach eingehenden und ausgehenden IDocs gruppiert und innerhalb diese beiden Kategorien nach dem aktuellen Status des IDocs. Du kannst diese Knoten aufklappen. Auf oberster Ebene erhältst du dann den Typen des IDocs wenn du noch weiter aufklappst, bekommst du eine Übersicht über die Statusmeldungen mit denen die IDocs diesen Status erreicht haben. Das sieht dann so aus:

Meistens wirst du nicht alle Statuswerte sehen wollen. Es macht Sinn die Statuswerte 03 (Datenübergabe an Port OK) bei ausgehenden IDocs auszublenden, sowie den Status 53 (Anwendungsbeleg gebucht) bei eingehenden IDocs. 

Es ist wichtig diese Statuswerte regelmäßig, am besten täglich, zu prüfen. Es kommt immer wieder einmal vor, dass IDocs nicht korrekt verarbeitet werden konnten und jetzt in einem Fehlerstatus warten. Hier ist dann technisch oder sogar fachlich zu prüfen, was mit dem IDoc geschehen muss. Hier kommt dann auch die Statusänderung ins Spiel.

Verarbeitung anstoßen

Manchmal verarbeiten sich IDocs nicht von selbst. Vielleicht fehlt ein regelmäßiger Anstoß der Verarbeitung. (Wie Du dies automatisieren kannst, steht demnächst in einem anderen Artikel.) Vielleicht arbeitet der Versandprozess aber nur stündlich und du willst einen Testfall schneller bearbeitet bekommen.

In solchen Fällen kannst du aus BD87 heraus die unmittelbare Verarbeitung anstoßen. Das gilt sowohl für ausgehende IDocs (den Versand) als auch für eingehende IDocs (Verbuchen). Hierzu selektierst du den Knoten der nicht verarbeiteten IDocs und klickst oben rechts in BD87 auf den Button „verarbeiten“. Das Ergebnis kann dann z.B. so aussehen:

Änderung des IDoc-Status

Der Status eines SAP IDocs kann manuell geändert werden. Hierzu stellt SAP den Report RC1_IDOC_SET_STATUS zur Verfügung. Dieser Report sollte nur umsichtig eingesetzt werden und nur ausgewählten Anwendern zur Verfügung gestellt werden. Andernfalls kann man doch manches kaputt machen und Unordnung stiften.

Der Auswahldialog sieht folgendermaßen aus: 

Der Dialog verlangt, ohne dies ausdrücklich im Vorwege zu sagen, mindestens

  • die Eingabe des Nachrichtentyps Typs oder
  • die Eingabe von IDoc-Nummern.

Wenn beide Eingaben leer bleiben passiert nichts. Außerdem ist der alte und der neue Status der IDocs anzugeben. Das heißt: IDocs, die sich in einem anderen Status befinden, werden nicht angefasst.

Der Nachrichtentyp des IDocs muss ausdrücklich angegeben werden. Wildcards (*)  werden hier nicht unterstützt.

Wichtig an diesem Dialog ist auch das Testflag: im Testmodus wird die Anzahl der betroffenen IDocs ermittelt und ausgegeben. Es werden aber keine Daten geändert.   

Bei dieser Arbeitsweise sollte man auch bleiben: erst die IDocs im Testmodus aufrufen, dann schauen ob die Anzahl der betroffenen IDocs Sinn macht, und erst dann den Echtlauf durchführen. 

Die Erfolgsmeldung könnte dann so aussehen:

Wann sollte ein IDoc-Status manuell geändert werden?

In besonderen Fällen macht es Sinn, den Status eines IDocs manuell zu ändern. Ein Beispiel:

Der Import eines Auftrags vom Webshop schlug fehl. Die Daten ließen sich nicht automatisch verarbeiten. Das IDoc ließ sich auch inhaltlich nicht korrigieren. Der Fachbereich musste den Auftrag im SAP-System manuell buchen. Das zugehörige IDoc steht immer noch in einem Fehlerstatus. Es wäre jetzt auch falsch, dieses noch zu verarbeiten, weil der Auftrag ja schon gebucht wurde.

Nun wäre es gut, dieses fehlerhafte IDoc nicht weiter im Monitoring zu sehen, um für das Monitoring des Folgetags deutlich zu machen, dass der Fehler bearbeitet wurde.

Das IDoc wäre also von dem Status 51 (Anwendungsbeleg nicht gebucht) auf den Status 68 (keine weitere Verarbeitung) zu setzen.

Ein anderes Szenario Ist dieses: das IDoc ist auf einen inhaltlichen Fehler gelaufen und ließ sich zunächst nicht automatisch umbuchen. Vielleicht fehlte eine Preiskondition im Materialstamm? Nach der Korrektur der fehlenden Daten wäre das Verbuchen des IDocs aber möglich. Manchmal geht dies direkt aus BD87 durch erneuten Druck auf den Button „Verarbeiten“. In anderen Fällen ist dies aber nicht möglich. In diesem Falle bietet es sich an den Status des IDocs auf nicht verarbeitet zurückzusetzen und die Verarbeitung neu anzustoßen. 

Protokollierung der Änderung

Das IDoc selbst merkt sich die Statusänderung in der Tabelle EDIDS. Wenn ich beispielsweise den Status mehrmals hin- und her ändere, ergibt sich dieses Bild. 

Die Wechsel des Status wurden protokolliert. Dies erklärt aber nicht das Warum. Es gibt auch in der Statusänderung keine Möglichkeit, einen Grund festzuhalten.

Für manuelle Eingriffe in die IDoc-Verarbeitung dürfte sich aber der Wirtschaftsprüfer interessieren, da solche Änderungen auch Geschäftsvorfälle ändern können. Man stelle sich z.B. vor ein über IDoc eingespielter Auftrag behauptet von sich laut IDoc gebucht zu sein. In Wirklichkeit wurde der Auftrag aber nicht gebucht.

Ein weiteres Beispiel: eine ausgehende Bestellung wurde laut IDoc übertragen. In Wirklichkeit wurde sie aber doppelt übertragen. es wurde die doppelte Ware bestellt. im SAP-System ist dies aber nicht zu sehen.

Das heißt: das Ändern des IDoc Status ist eine sehr sensible Operation. Hier ist weitere Dokumentation nötig.

Bei einem meiner Kunden besteht deshalb beispielsweise vom Wirtschaftsprüfer die Auflage, alle manuellen IDoc-Statusänderungen in einer Exceldatei zu protokollieren. Aufgeführt werden Nummer des IDocs, Typ des IDocs, Datum der Änderung, alter und neuer Status sowie einer textuellen Begründung der Änderung.

Diese Datei wird dann vom Wirtschaftsprüfer einmal im Jahr geprüft.

Achtung: bitte über die SAP-Berechtigungen nachdenken

Aus dem Gesagten ergibt sich auch unmittelbar: Das Ändern von IDoc-Statuswerten darf nur ausgewählten Mitarbeitern zugänglich gemacht werden. Das werden in der Regel Mitarbeiter sein, die ohnehin weitreichende administrative Rechte haben.

Liste aller möglichen Statuswerte

Die Liste aller möglichen Statuswerte findet sich in der Tabelle TEDS1. Sie lauten:

  • 01 IDoc erzeugt
  • 02 Fehler bei Datenübergabe an Port
  • 03 Datenübergabe an Port OK
  • 04 Fehler in den Steuerinformationen des EDI-Subsystems
  • 05 Fehler bei der Konvertierung
  • 06 Konvertierung OK
  • 07 Syntaxfehler in EDI-Nachricht
  • 08 Syntaxprüfung OK
  • 09 Fehler beim Interchange Handling
  • 10 Interchange Handling OK
  • 11 Fehler beim Versand
  • 12 Versand OK
  • 13 Versand wiederholen OK (Retransmission)
  • 14 Interchange Acknowledgement positiv
  • 15 Interchange Acknowledgement negativ
  • 16 Functional Acknowledgement positiv
  • 17 Functional Acknowledgement negativ
  • 18 Anstoß des EDI-Subsystems OK
  • 19 Datenübergabe an Port für Test OK
  • 20 Fehler beim Anstoß des EDI-Subsystems
  • 21 Fehler bei Datenübergabe an Port für Test
  • 22 Versand OK, Acknowledgement steht aus
  • 23 Fehler beim Versand wiederholen (Retransmission)
  • 24 Steuerinformationen des EDI-Subsystems OK
  • 25 Weiterverarbeitung trotz Syntaxfehler (Ausgang)
  • 26 Syntaxfehler im IDoc (Ausgang)
  • 27 Fehler in der Versandschicht (ALE-Dienst)
  • 28 IDoc nachträglich in ALE-Verteileinheit verschickt
  • 29 Fehler im ALE-Dienst
  • 30 IDoc ist versandfertig (ALE-Dienst)
  • 31 Fehler, keine weitere Bearbeitung
  • 32 IDoc wurde editiert
  • 33 Original eines IDocs, welches editiert wurde
  • 34 Fehler im Kontrollsatz des IDocs
  • 35 IDoc aus Archiv zurückgeladen
  • 36 Elektronische Unterschrift nicht geleistet (Timeout)
  • 37 IDoc fehlerhaft hinzugefügt
  • 38 IDoc archiviert
  • 39 IDoc im Zielsystem (ALE-Dienst)
  • 40 Anwendungsbeleg im Zielsystem nicht erzeugt
  • 41 Anwendungsbeleg im Zielsystem erzeugt
  • 42 IDoc aus Testtransaktion erzeugt
  • 50 IDoc hinzugefügt
  • 51 Anwendungsbeleg nicht gebucht
  • 52 Anwendungsbeleg unvollständig gebucht
  • 53 Anwendungsbeleg gebucht
  • 54 Fehler bei der formalen Anwendungsprüfung
  • 55 Formale Anwendungsprüfung OK
  • 56 Fehlerhaftes IDoc hinzugefügt
  • 57 Test-IDoc: Fehler bei der Anwendungsprüfung
  • 58 IDoc-Duplikat aus R/2-Verbindung
  • 60 Syntaxfehler im IDoc (Eingang)
  • 61 Weiterverarbeitung trotz Syntaxfehler (Eingang)
  • 62 IDoc an Anwendung übergeben
  • 63 Fehler bei IDoc-Übergabe an die Anwendung
  • 64 IDoc ist übergabebereit an die Anwendung
  • 65 Fehler im ALE-Dienst
  • 66 IDoc wartet auf Vorgänger-IDoc (Serialisierung)
  • 68 Fehler, keine weitere Bearbeitung
  • 69 IDoc wurde editiert
  • 70 Original eines IDocs, welches editiert wurde
  • 71 IDoc aus Archiv zurückgeladen
  • 73 IDoc archiviert
  • 74 IDoc aus Testtransaktion erzeugt
  • 75 IDoc ist in Eingangsqueue

heiko

Dipl.-Ing. Heiko Evermann

Vorheriger Artikel