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

Lesson 5 of 6

Partner variations

7 min

Listen to this lesson

0:00 / 7:12

Every EDI partner is slightly different: another X12 version, an extra reference segment, a different qualifier for the ship-to, its own unit codes. The tempting answer is a copy of the mapping per partner. Twelve customers later, a fix has to be made twelve times and retested twelve times, and the copies have drifted so far that nobody knows which differences are intended. Contoso's rule for the migration is one mapping per message type and direction, with partner differences held as data.

Where partner differences go

DifferenceWhere it livesContoso example
Partner-specific settingsPartner Directory string parametersX12 version, ISA qualifier and ID, SFTP directory
Partner-specific schemas or XSLTPartner Directory binary parametersAn XSD for a partner's 850 variant
External partner IDsPartner Directory alternative partnersISA06 sender ID → partner GLFS
Partner-specific code listsValue mapping with the partner as agencyGLFS / LOCATION: DET ↔ 1710
Genuinely different structureA separate mapping chosen dynamicallyA partner whose 810 needs a different layout

Partner differences held as data, from simplest to most structural.

The Partner Directory

The Partner Directory is tenant-specific storage for partner information. SAP's point is that flows read partner-specific parameters at runtime, so you can add a partner without editing or redeploying any flow. It holds string parameters, binary parameters (such as XSLT mappings and XSD files), alternative partners and authorized users. You maintain it in the Monitor or through the OData API, and SAP lists overall limits, for example 3,000,000 string parameters across all partners.

A flow needs a partner ID first. Inbound, Contoso resolves it from the EDI sender ID with alternative partners: getPartnerId(agency, scheme, alternativePartnerId) on PartnerDirectoryService, obtained in a script with ITApiFactory.getApi(PartnerDirectoryService.class, null). Outbound, it uses the IDoc's RCVPRT and RCVPRN the same way. With the partner ID in a property, the flow reads that partner's parameters.

One flow serves every partner: the partner ID is resolved once, and everything partner-specific is read from data.
The Sign-Off Table · thesignofftable.com/academy/sap-pim-205

Choosing a mapping per partner, when you must

Sometimes a partner's structure really is different. Then don't copy the flow; select the mapping. A Message Mapping step with Reference Type Dynamic can read its mapping from the Partner Directory with the expression format pd:<Partner ID>:<Parameter ID>, where the parameter's value is ref:<message mapping ID> of a deployed Message Mapping artifact (sap-pim-201, lesson 1). The flow stays the same; one partner entry points to a different, deployed mapping artifact.

Parameter in the Partner DirectoryOne partner, small difference: a value, a qualifier, a version
Value mapping or parameter shared by manyMany partners, small differences: code lists and settings
Dynamic mapping for this partnerOne partner, real structural difference: its own deployed artifact
New standard mapping versionMany partners moving to a new structure: revise the shared mapping
How to absorb a partner difference without copying flows: the bigger and more shared the difference, the more it belongs in the standard.
The Sign-Off Table · thesignofftable.com/academy/sap-pim-205

SAP's model-based option

SAP Integration Suite also offers Trading Partner Management with Integration Advisor, where partner agreements, message implementation guidelines (MIGs) and mapping guidelines (MAGs) are modeled and runtime artifacts are generated. It is designed for exactly this partner-variation problem at scale. sap-pim-206 covers it. Contoso's migration keeps hand-built mappings with Partner Directory parameters for most partners and moves Great Lakes into TPM with Integration Advisor guidelines. Lakeside, a single SFTP partner, stays outside TPM: in integration wave 1 (December 2026 to January 2027) its 850 flow is rebuilt on SAP's EDI integration templates with a mapping guideline (MAG) from Integration Advisor (sap-pim-206). The Lakeside mapping in this course is the hand-built version of that flow, used to teach the mechanics.

Contoso's partner entries

Parameter IDTypeGreat Lakes value (illustrative)Used by
X12_VERSIONString004010Mapping and converter schema selection
ISA_QUALIFIER / ISA_IDStringThe partner's ISA qualifier and IDEnvelope fields in outbound mappings
DELIVERY_DIRStringPartner directory on the SFTP serverSFTP receiver adapter
MM_810Stringref:<ID of the standard 810 mapping artifact>Dynamic Message Mapping step
Alternative partnerAgency, scheme, IDISA sender ID → partner GLFSInbound partner resolution

Contoso's naming for partner entries. Parameter IDs are a convention the team agreed; values come from each partner's implementation guide.

Onboarding a partner

  1. Get the partner's implementation guide and sample files, and compare them with the standard mapping's guide.
  2. Create the partner and its alternative partner in the Partner Directory of CMC_TEST, then its parameters.
  3. Add partner code lists to value mappings, with the partner as agency.
  4. Run the standard regression pack plus the partner's own samples (lesson 6).
  5. Connect and test with the partner; repeat the entries in CMC_PROD and run the checks below.
Key points
  • One mapping per message type and direction; partner differences live in data.
  • Partner Directory: string and binary parameters, alternative partners and authorized users; add partners without redeploying flows.
  • Resolve the partner ID first (getPartnerId for external IDs), then read its parameters.
  • For real structural differences, select a deployed mapping artifact dynamically with pd:<Partner ID>:<Parameter ID>.

Check your understanding · not graded

Lesson check

  1. 1. Twelve customers need the same 810 with small differences. What is the most maintainable design?

  2. 2. Which method resolves a partner ID from an external sender ID?

  3. 3. A mapping step reads its mapping from the Partner Directory. Which expression format does it use?

  4. 4. What does the Partner Directory let Contoso do when it adds a new customer?