Now accepting guest editorial from SAP, Oracle, Workday and ServiceNow practitioners.Pitch a guide
The Sign-Off Table

Lesson 1 of 6

The building blocks of an SAP EDI setup

9 min

Listen to this lesson

0:00 / 8:51

When Great Lakes Fleet Services sends an 850 and SAP S/4HANA creates sales order 1000457, five pieces of configuration did their job without anyone noticing. When one of them is wrong, the IDoc stops with a status code and someone asks the EDI consultant why. This course teaches those five pieces in the order the system uses them, with Contoso Motor Co.'s real setup as the example: the conversion landscape CMD, CMQ and CMP, and SAP Process Orchestration 7.5 in XD1, XQ1 and XP1, which carries the EDI flows until after hypercare.

Logical system (BD54)The name an SAP client uses for itself and for other systems in IDoc control records, such as CMPCLNT100
RFC destination (SM59)How to reach another system technically: host or registered program, logon or certificate
Port (WE21)Which channel IDocs use to leave: transactional RFC, file, XML file or XML HTTP; points to a destination or directory
Partner profile (WE20)Who the partner is and, per message type, which port, basic type, output mode and process code apply
Process code (WE41 / WE42)Which program builds an outbound IDoc or posts an inbound one
Five layers of EDI configuration, from the system's identity down to the program that does the work.
The Sign-Off Table · thesignofftable.com/academy/sap-edi-201

How they fit together

On the way out, an application such as sales decides to send output (course sap-edi-202 covers how). The IDoc interface reads the partner profile for the receiving partner and message type, uses its process code to call the function module that fills the IDoc, and hands the IDoc to the port named in the profile. The port uses an RFC destination to reach the middleware. On the way in, the middleware calls SAP, the IDoc is saved, and the IDoc interface looks up the inbound partner profile for the sender and message type to find the process code that posts it.

Outbound, the partner profile picks the process code that builds the IDoc and the port whose destination reaches Process Orchestration.
The Sign-Off Table · thesignofftable.com/academy/sap-edi-201

Logical systems

A logical system is a name for a client of a system, maintained in transaction BD54 and assigned to the client in SCC4. SAP uses it as the system's own identity in IDoc control records (sender or receiver partner of type LS) and in documents created by distributed processes. Contoso follows the common convention of system ID, "CLNT" and client: CMDCLNT300, CMQCLNT100 and CMPCLNT100. Logical system definitions are client-independent, so every client in the system sees the same list; the assignment to a client is per client.

Do EDI partners need logical systems? Usually not. Great Lakes is not an SAP system; it is a customer, so it appears in partner profiles as partner type KU with its customer number. Lakeside Components is a supplier, partner type LI. You define a logical system for a partner only when you exchange IDocs with another system as a system, partner type LS, which is typical for ALE scenarios such as master data distribution between SAP systems. But your own client always needs one, and after every system copy the logical system name inside the copied data must be converted with BDLS so CMQ stops calling itself CMP.

RFC destinations

An RFC destination (SM59) is the technical address. For SAP Process Orchestration 7.5, which is a Java-only system at Contoso, the IDoc adapter (the Advanced Adapter Engine version, IDoc_AAE) listens as a registered server program at a gateway, so the S/4HANA side uses a TCP/IP destination (type T) with the registered program ID that the PO team configured. To another ABAP system you would use an ABAP connection (type 3). For XML over HTTP you use an HTTP destination (type G or H). Contoso names its destinations after their target: XQ1_IDOC_AAE from CMQ and XP1_IDOC_AAE from CMP.

ObjectTransactionContoso CMQ client 100Contoso CMP client 100
Own logical systemBD54, SCC4CMQCLNT100CMPCLNT100
Destination to POSM59 (type T)XQ1_IDOC_AAEXP1_IDOC_AAE
tRFC portWE21XQ1_POXP1_PO
Customer partnerWE20, type KU17100001 Great Lakes Fleet Services17100001 Great Lakes Fleet Services
Supplier partnerWE20, type LILakeside ComponentsLakeside Components

Contoso's EDI configuration objects in the quality and production systems.

The development-side objects

Configuration consultants rarely create message types or basic types, but they must know where they live, because an error often points to them. WE81 lists message types; WE82 assigns basic types (and extensions) to message types per release; WE30 and WE31 develop IDoc types and segments; WE57 links inbound function modules to message and basic types; WE41 and WE42 maintain outbound and inbound process codes; WE60 shows IDoc type documentation. For daily operations you use WE02 and WE05 to display IDocs, BD87 to monitor and reprocess, and WE19 to test.

What would you do?

A new consultant on Theo's team proposes creating a logical system called GLFS in BD54 so that Great Lakes Fleet Services can be set up in WE20 as partner type LS. What should Theo say?

Key points
  • Five layers: logical system (BD54), RFC destination (SM59), port (WE21), partner profile (WE20), process code (WE41/WE42).
  • Your own client needs a logical system; EDI partners are set up by role: KU for customers, LI for suppliers, LS only for systems.
  • PO 7.5's IDoc adapter is reached through a TCP/IP destination with a registered program; ABAP systems use type 3.
  • Logical systems, destinations and ports are client-independent; partner profiles are per client.

Check your understanding · not graded

Lesson check

  1. 1. Which transaction maintains logical systems?

  2. 2. Under which partner type should a customer that sends EDI orders be maintained in WE20?

  3. 3. Which RFC destination type does SAP S/4HANA typically use to reach PO 7.5's IDoc adapter (AAE)?

  4. 4. After CMQ is refreshed from production, which transaction converts the copied logical system names?