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

Lesson 2 of 5

Splitting interchanges

10 min

Listen to this lesson

0:00 / 11:57

Partners rarely send one document per file. An X12 interchange (ISA to IEA) can hold several functional groups (GS to GE), and each group can hold many transaction sets (ST to SE). Lakeside Components, for example, sends one file each evening with all of the day's 856 ship notices. Cloud Integration's conversion steps work on one message at a time, so the first job in an inbound EDI flow is to validate the interchange, split it and acknowledge it. That is what the EDI Splitter does.

What the EDI Splitter does

You add it from the palette under Splitter > EDI Splitter. It splits inbound bulk EDI messages into individual messages, can validate them, and can create the functional acknowledgment for the interchange. It handles EDIFACT, ODETTE, EANCOM, TRADACOMS, VDA and ASC X12. A few documented limits shape your design:

  • It supports only one functional group per interchange, with multiple messages of the same type (homogeneous transaction sets).
  • It can't be combined with the Gather, Join or Aggregator steps in the same flow.
  • Version matters: for example, newer versions support more EDIFACT syntax versions and LS/LE loop segments, and from version 2.9 you can use the same X12 XSDs in your tenant as in Process Orchestration. Update the step version in old flows before you rely on newer behavior.
An inbound flow built around the EDI Splitter: acknowledgments, invalid messages and valid documents leave on separate routes.
The Sign-Off Table · thesignofftable.com/academy/sap-edi-302

Validation and transaction mode

For X12, Validate Message offers No Validation or Standard Validation against the structure defined in the XSD. For EDIFACT you switch validation on and choose Envelope or Envelope and Message. The Transaction Mode then decides what a failure costs:

Transaction ModeWhat happens when one of five 856s is invalidWhen to use it
InterchangeThe whole interchange is rejected; none of the five is processedThe partner requires all-or-nothing processing, or documents depend on each other
MessageOnly the invalid 856 is rejected; the four valid ones continueDocuments are independent, which is usual for orders, ship notices and invoices
The two transaction modes of the EDI Splitter and what one bad document costs in each.
The Sign-Off Table · thesignofftable.com/academy/sap-edi-302

In Message mode for EDIFACT you can also enable Process Invalid Messages. You then route split messages with a router after the splitter: the condition ${header.SAP_EDI_MESSAGE_STATUS} = 'failure' catches invalid messages and ${header.SAP_EDI_INTERCHANGE_STATUS} = 'failure' catches interchanges with errors, so they can go to an error-handling branch instead of disappearing.

Schemas

The splitter validates against XSD schemas you attach to the flow under EDI Schema Definition (Integration Flow), or names in a header at runtime (Header). File names must follow one of two conventions, and the content must match the name:

Source of the XSDNaming patternExample
SAP Process Integration / Process Orchestration, X12ASC_<type><version>.xsdASC_850004010.xsd
Integration Advisor, X12ASC-X12_<type>_<version>.xsdASC-X12_856_004010.xsd
SAP Process Integration / Process Orchestration, EDIFACT<type><release>.xsdDESADV96A.xsd
Integration Advisor, EDIFACTUN-EDIFACT_<type>_<version>.xsdUN-EDIFACT_ORDERS_D96A.xsd

XSD naming rules for the EDI Splitter and converters.

Functional acknowledgments

Create Acknowledgement has three options: Not Required, Check EDI Envelop (create one only if the envelope asks for it), and Required. For X12 the splitter creates a 997; for EDIFACT it creates a CONTRL message, and you can choose the CONTRL version and whether to include a UNA segment. You then route the acknowledgment with a router condition on the acknowledgment header documented for your standard, and send it back to the partner, usually over the same AS2 connection.

For X12 you also control the 997's envelope numbers. Interchange Number can be read from the incoming message or taken from a Number Range; with Unique Interchange Number set to Required, every acknowledgment gets a fresh number from the range. Group and transaction set numbers have similar options, including predefined values of 1 and 0001. If a unique number isn't required, SAP documents that a duplicate incoming message gets the same number for 30 days. Exclude AK3 and AK4 leaves out segment- and element-level error detail and keeps AK1, AK2, AK5 and AK9.

997 segmentError codeMeaning
AK3 (segment)3Mandatory segment missing
AK3 (segment)7Segment not in proper sequence
AK4 (element)1Mandatory data element missing
AK4 (element)5Data element too long
AK4 (element)7Invalid code value
AK4 (element)8Invalid date
AK5 (transaction set)3Transaction set control number in header and trailer do not match
AK5 (transaction set)4Number of included segments does not match actual count
AK9 (functional group)4Group control number in header and trailer do not match
AK9 (functional group)5Number of included transaction sets does not match actual count

A selection of the X12 error codes the EDI Splitter writes into 997s.

Two acknowledgment questions come up with almost every new X12 partner. Some partners, particularly in healthcare, expect the 999 implementation acknowledgment instead of the 997, and some also want a TA1 interchange acknowledgment that answers for the envelope alone. SAP's EDI Splitter documentation describes the 997 for X12, so if a partner insists on a 999 or TA1, confirm what your splitter version supports or produce it in your own mapping, and write the decision into the partner's specification. The second question is what the 997 proves: that the interchange was received and was, or wasn't, syntactically valid. It does not prove the order was accepted. A clean 997 followed by a missing 855 is a business problem, not an EDI one.

What would you do?

Theo's developer configured the EDI Splitter for Lakeside's 856 file with Transaction Mode Interchange. One bad DTM date now blocks the whole evening's ship notices, and the Detroit warehouse can't receive four good shipments. What should he change?

Key points
  • The EDI Splitter validates, splits and acknowledges inbound interchanges; it supports one functional group with homogeneous messages.
  • Transaction Mode Interchange rejects everything on one error; Message rejects only the faulty document.
  • XSD file names follow PO or Integration Advisor conventions and must match their content.
  • Create Acknowledgement produces a 997 (X12) or CONTRL (EDIFACT); route it with a router and control its numbers with number ranges.

Check your understanding · not graded

Lesson check

  1. 1. Why does an inbound EDI flow usually start with the EDI Splitter rather than the EDI to XML Converter?

  2. 2. Which Create Acknowledgement option sends an acknowledgment only when the interchange asks for one?

  3. 3. A 997 rejects a transaction set with AK5 code 4. What went wrong?

  4. 4. Which XSD file name follows the Integration Advisor convention for an X12 856 version 004010?