Bei der Verarbeitung von eingehenden EDI-Bestellungen in einem SAP-System steht man oft vor der Herausforderung, dass statt der internen SAP-Nummern externe IDs, wie Global Location Number (GLN), DUNS-Nummern und ähnliche verwendet werden. Damit eine automatische Verarbeitung im SAP möglich ist, muss eine Umschlüsselung der externen Nummern zu den internen Debitorennummern erfolgen. Wir zeigen die technischen Möglichkeiten auf, die ein SAP ERP-System in diesem Fall bietet.
SAP SD-Beispielprozess
Die folgende Abbildung zeigt einen Bestellprozess zwischen einem Käufer und einem Verkäufer. Auf Seiten des Verkäufers wird der Bestellprozess im SAP SD-Modul abgewickelt. Im internen Debitorenstamm sind die entsprechenden Sold-To, Ship-To und Bill-To Adressen gepflegt. Jede der Adressen wird über eine eigene, im SAP-System eindeutige, Debitorennummer identifiziert.
In der Bestellung des Käufers sind jedoch keine SAP-internen Nummern enthalten. Stattdessen werden die einzelnen Rollen des Käufers, Verkäufers, etc. mit Hilfe von DUNS-Nummern identifiziert.
Die Herausforderung besteht nun darin, dass die externen DUNS-Nummern den korrekten internen Debitorennummern zugeordnet werden.
Beispiel ORDERS-IDoc
Damit die Bestellung automatisiert in das SAP-System übernommen werden kann, muss diese als ORDERS-IDoc an das SAP-System übergeben werden. Die einzelnen Rollen im IDoc sind als Element E1EDKA1 abgebildet. Die Warenempfänger-Rolle könnte wie folgt aussehen:
<E1EDKA1 SEGMENT="1">
<PARVW>WE</PARVW>
<PARTN>70010</PARTN>
<NAME1>Mustermann GmbH</NAME1>
<NAME2>Zentrallager Nord</NAME2>
<STRAS>Lange Gasse 47</STRAS>
<ORT01>Berlin</ORT01>
<PSTLZ>10114</PSTLZ>
</E1EDKA1>
Das Problem hier ist nun, dass die Sold-To Nummer 70010
auf Seiten des Käufers nicht bekannt ist. Stattdessen verwendet dieser zur Identifikation seines Zentrallagers, an welches die Ware geliefert werden soll, die DUNS-Nummer 341301622
. Um dieses Problem zu umgehen, stehen prinzipiell zwei Möglichkeiten zur Verfügung.
Die erste Möglichkeit ist die Umschlüsselung der externen Nummer zur korrekten internen Nummer im Rahmen eines EDI-Mappings. Dabei wird eine Zuordnungstabelle im Mapping hinterlegt. Obwohl technisch möglich, hat diese Option einen wesentlichen Nachteil, denn es werden Zuordnungsdaten entkoppelt vom ERP-System im Dokumentenmapping gehalten. Sobald ein neuer Ship-To hinzukommt, muss die Zuordnungstabelle im Mapping aktualisiert werden. Dieser Prozess ist fehleranfällig, da auf die entsprechende Wartung der Tabelle oft vergessen wird.
Die technisch elegantere Option ist daher das Anlegen der Zuordnungstabelle im SAP-System. Das ERP-System übernimmt in diesem Fall automatisch die Umschlüsselung der externen Nummern zu den korrekten internen Debitoren. Hierzu muss das IDoc wie folgt geändert werden. Als Beispiel wird wieder die Warenempfänger-Rolle herangezogen.
<E1EDKA1 SEGMENT="1">
<PARVW>WE</PARVW>
<LIFNR>341301622</LIFNR>
<NAME1>Mustermann GmbH</NAME1>
<NAME2>Zentrallager Nord</NAME2>
<STRAS>Lange Gasse 47</STRAS>
<ORT01>Berlin</ORT01>
<PSTLZ>10114</PSTLZ>
</E1EDKA1>
Anstatt der internen Debitorennummer, die dem Verkäufer nicht bekannt ist, wird die DUNS-Nummer im LIFNR-Element übergeben. Diese Anpassung ist auch für die anderen Rollen wie AG (Sold-To), RG (Bill-To) und LF (Lieferant) entsprechend umzusetzen, sodass auch hier die externen DUNS-Nummern gesetzt werden können.
Bei der Verarbeitung des eingehenden IDocs sucht das SAP nun automatisch nach den richtigen Debitorennummern. Die Lookup-Logik bei eingehenden SD-Orders passiert dabei in folgendem Baustein:
- Package: VED (Standard EDI)
- Function Group: VEDA
- Function Module: IDOC_ INPUT_ ORDERS
- Form: LVEDAF5T (ZUORDNEN_ ORDERS_ E1EDKA1)
Auslesen der Zuordnungstabelle
Die zentrale Zuordnungstabelle heißt EDPAR. Die dazugehörige Transaktion zur Wartung von EDPAR lautet VOE4. Die folgende Abbildung zeigt die Struktur der Tabelle in Transaktion SE11.
© 2020. SAP SE oder ein SAP-Konzernunternehmen. Alle Rechte vorbehalten. Mit Genehmigung der SAP SE verwendet.
Um eine Zuordnung der externen Nummer 341301622
zur internen SAP-Debitorennummer 70010
für die Ship-To-Rolle zu ermöglichen, ist daher folgender Eintrag in der Tabelle EDPAR notwendig.
© 2020. SAP SE oder ein SAP-Konzernunternehmen. Alle Rechte vorbehalten. Mit Genehmigung der SAP SE verwendet.
Je nachdem ob im EDI_DC40 als SNDPRT ein logisches System (LS) gesetzt ist oder ein Kunde (KU), erfolgt der Lookup leicht abgewandelt. Der folgende SQL-Pseudocode zeigt die Lookup-Logik im Baustein IDOC_ INPUT_ ORDERS für die Rolle SH (Ship-To).
Im Falle von LS:
Da im Falle eines logischen Systems im EDI_DC40 keine Kundennummer gesetzt ist, wird stattdessen die Debitorennummer aus der internen Struktur XVBAK gezogen.
SELECT FROM EDPAR WHERE KUNNR = <KUNNR aus interner Tabelle XVBAK>
AND PARVW = 'SH'
AND EXPNR = '341301622'`
Im Falle von KU:
Wenn im EDI_DC40 ein KU gesetzt ist, wird die Debitorennummer aus dem Feld SNDPRN genommen und der Lookup auf dieser Basis vorgenommen.
SELECT FROM EDPAR WHERE KUNNR = <SNDPRN aus dem EDI_DC40>
AND PARVW = 'SH'
AND EXPNR = '341301622'
Zu beachten ist, dass die Einträge für alle Rollen korrekt gesetzt werden müssen. Wenn zB neue Ship-Tos hinzukommen, müssen auch die Einträge in EDPAR nachgezogen werden. Standardmässig werden im Modul IDOC_ INPUT_ ORDERS die folgenden Rollen aus EDPAR ausgelesen:
- Auftraggeber (AG)
- Lieferant (LF)
- Warenempfänger (WE)
- Spediteur (SP)
- Rechnungsempfänger (RE)
- Regulierer (RG)
- Werk des Kunden (WK)
Für ausgehende SD-Dokumente, wie beispielsweise ORDRSP (Order Response), ist die Lookup-Logik ähnlich und basiert auch auf Tabelle EDPAR. Das genaue Prinzip werden wir in einem der nächsten Beiträge beleuchten.
Sie haben noch Fragen zum Thema SAP und EDI?
Sie haben noch Fragen zum Thema SAP SD und den dazugehörigen EDI-Prozessen? Nehmen Sie mit uns Kontakt auf oder benutzen Sie unseren Chat — wir helfen Ihnen gerne weiter!
SAP ERP und SAP S/4HANA sind die Marken oder eingetragenen Marken der SAP SE oder ihrer verbundenen Unternehmen in Deutschland und mehreren anderen Ländern.