Einfacher geht es nicht: IDoc-Beleg-Verlinkung per SE16 ermitteln

Eigentlich hatte sich Pierre für heute Abend zum Fußballspiel mit den Kollegen verabredet, als er die Mail seines Teamleiters las. „Musste das kurz vor Feierabend passieren“, dachte sich Pierre ärgerlich. Es war jetzt 17:17 Uhr und der EDI-Dienstleister hatte sich gemeldet. Seit 12:35 Uhr waren die ORDERS-IDocs von verschiedenen Kunden falsch geroutet worden, wodurch Daten der IDocs fehlerhaft waren. Der Teamleiter bat Pierre alle Aufträge zu den 2.786 ORDERS-IDocs abzusagen, die im Anhang der Mail aufgelistet waren – 2.786 IDocs! Wenn Pierre eine Liste mit Aufträgen gehabt hätte, wäre es ein Klacks die Aufträge mit der Transaktion MASS abzusagen. Doch mit der IDoc-Liste müsste er per WE02 jedes IDoc aufrufen und über die Verlinkung (Dienste zum Objekt -> Verknüpfungen anzeigen) den Kundenauftrag ermitteln – Pierre hätte wirkliche eine lange Nacht vor dem Rechner gehabt, wenn er sich nicht an folgende Zusammenhänge erinnert hätte:

# Die IDoc-Verlinkung zu den zugehörigen Belegen ist in den Tabellen SRRELROLES und IDOCREL abgelegt.

Wie oben erwähnt, kann man zu einem IDoc oder einer Liste von IDocs (normalerweise) die zugehörigen Belege über die Tabellen SRRELROLES und IDOCREL ermitteln.

# Liste ORDERS-IDocs –> Liste Aufträge
# Liste DESADV-IDocs –> Liste Lieferungen
# Liste INVOIC-IDocs –> Liste Fakturen

Die Zusammenhänge sind in den folgenden Abbildungen dargestellt.

 

Entscheidend ist hierbei, dass für Eingangs-IDocs (bspw. ORDERS) und Ausgangs-IDocs (bspw. INVOIC) der Zugriff auf die IDOCREL-Tabelle unterschiedlich ist. Im folgenden zunächst die Beschreibung für Eingangs-IDocs:

Eingangs-IDocs

# Dir liegt eine Liste von Eingangs-IDoc-Nummern vor (bspw. ORDERS) – wichtig ist, dass die IDoc-Nummern 16-stellig mit führenden Nullen aufgefüllt sein müssen.

# Ruf die Tabelle SRRELROLES auf (SE16) und gib die Nummern der IDocs in das Feld OBJKEY ein -> Ausführen (F8)

# Aus dem Selektionsergebnis kopierst du nun alle Einträge der Spalte ROLEID

# Nun öffnest du am besten in einem neuen Modus die Tabelle IDOCREL (SE16)

# Hier gibst du die kopierten Daten (ROLEID) aus der ersten Tabelle in das Selektionsfeld ROLE_A ein -> Ausführen (F8)

# Nun musst du aus der Ergebnis-Liste die Werte der Spalte ROLE_B herauskopieren.

# Jetzt öffnest du erneut die Tabelle SRRELROLES (SE16) und gibst die kopierten Werte (ROLE_B) aus der Tabelle IDOCREL in das Selektionsfeld ROLEID ein -> Ausführen (F8)

# Nun kannst du einfach aus dem Feld OBJKEY die Beleg (bspw. Aufträge) ermitteln bzw. herauskopieren.

# Da im letzten Schritt neben dem konkreten Belegen noch weitere Verlinkungsdaten ermittelt werden, kann man per Filter auf die Spalte OBJTYPE die Ergebnisse auf die Belege beschränken – für Aufträge gilt der OBJTYPE = BUS2032

Ausgangs-IDocs

Die Ermittlung der Belege für Ausgangs-IDocs unterscheidet sich in zwei entscheidenden Punkten gegenüber der oben aufgeführten Beschreibung (dieser Unterschied ist in den Abbildung dargestellt).

# Bei Ausgangs-IDoc steigt man mit den Ergebnissen aus der SRRELROLES-Tabelle in die IDOCREL-Tabelle im Feld ROLE_B ein.

# Anschließend kopiert man die Ergebnisse aus der Spalte ROLE_A steigt damit in die Tabelle SRRELROLES ein.

Übrigens mit diesen Erkenntnissen hat es Pierre keine 5 Minuten gekostet, die Aufträge zu der Liste der IDocs zu ermitteln und anschließend abzusagen …  damit konnte er sich auf das anstehende Fussballspiel freuen 😉

Wie immer: Es wäre toll, wenn du ein kleines Feedback hinterlassen könntest, Isa.

12 Gedanken zu „Einfacher geht es nicht: IDoc-Beleg-Verlinkung per SE16 ermitteln“

  1. Oder die IDoc’s in die WE02 einfüllen, ausführen, danach das Icon „Liste spezielles Segment“ wählen, unter Segment in diesem Fall „E1EDK01“ eintragen und schon werden zu allen IDoc’s die Belegnummern gelistet.

    1. Hi Erwin,

      vielen Dank für dein Kommentar …

      Du hast recht – bei Ausgangs-IDoc kann man diese Möglichkeit nutzen. Bei Eingangs-IDoc (bspw. ORDERS oder SHPMNT), bei denen die Belegdaten nicht im IDoc enthalten sind, kann man diesen Weg leider nicht gehen.

      cu, Isa.

Bitte hinterlasse ein kurzes Feedback, Isa.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.