Chat with us, powered by LiveChat
5 min Lesezeit

"SAP SD Sales-Order: Zuordnung von externen IDs zu internen Debitoren­nummern"

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.


SAP SD Bestellprozess
SAP SD Bestellprozess

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 Dokumenten­mapping 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.


Aufbau der EDPAR-Tabelle
Aufbau der EDPAR-Tabelle

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.


Neuer Eintrag in EDPAR-Tabelle
Neuer Eintrag in EDPAR-Tabelle

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!

Themen

Meistgelesen

Weiterlesen

Cookie Einstellungen

Hier sind alle Cookies aufgelistet die für Marketing Zwecke eingesetzt werden
LinkedIn (cn_LinkedINActive)
LinkedIn verwendet Cookies unter anderem um Ihre Einstellungen zu nutzen, Ihnen eine personalisierte Nutzererfahrung bieten zu können, und Ihnen auf Sie zugeschnittene Werbung anzeigen zu können.
Google Analytics (cn_AnalyticsActive)
Wird verwendet um Daten über das Nutzerverhalten und das Gerät des Nutzers an Google Analytics zu senden. Trackt den Besucher über verschiedene Geräte und Marketing Kanäle
Facebook (cn_FacebookActive)
Wird von Facebook genutzt, um eine Reihe von Werbeprodukten anzuzeigen, zum Beispiel Echtzeitgebote dritter Werbetreibender.
Google Adwords (cn_AddWordsActive)
Wird verwendet um Benutzer zu identifizieren, die die Website via Google Werbeanzeigen besuchen.
Pardot (cn_PardotActive)
Pardot verwendet Cookies, um Ihre Interaktion mit unserer Website sinnvoller zu gestalten. Sie helfen uns, die Nutzung unserer Websites besser zu verstehen, damit wir die Inhalte für Sie maßschneidern können.