How Data Is Stored for Outbound EDI Messages

BizTalk Server does the following to generate a status report entry for an outbound interchange:

  1. When outbound message XML is sent to the EDI send pipeline, the send pipeline creates an entry in the status reporting data store with the following values:

    • Interchange status entry is set to Processed

    • Interchange ACK status entry (one per interchange) is set to Expected

    • Functional ACK status entries (one per group in X12, one for all groups in EDIFACT) are set to Expected

  2. After the EDI message has been sent to the trading partner, and the acknowledgment has been returned from the trading partner, the EDI receive pipeline that receives the acknowledgment updates the Interchange status, the Interchange ACK status, and the Functional ACK status entries to Accepted/Partially Accepted/Rejected, as appropriate.

Data Stored by the Send Pipeline for Outbound Interchanges

The send pipeline creates a record in the status report data store for each interchange that it sends. Most data required for the entry is available from the interchange header/trailer segments (ISA/IEA or UNB/UNZ). Other data is available from send port properties. The data stored includes:

  • Record Type = Interchange Status

  • Interchange Direction = Update Data = Send

  • Interchange Receiver = Update Data

  • Interchange Sender = Update Data

  • Interchange Date = Update Data

  • Interchange Time = Update Data

  • Interchange Control ID = Update Data

  • Interchange Status: Processed/Sent. A status of Processed indicates that the send pipeline has successfully processed the interchange and handed it over to the send adapter for delivery.

  • Interchange Control Count (Groups/Messages in X12 respectively) = Data

  • Interchange Send Port ID = Data

Data Stored by the Receive Pipeline for Each Technical Acknowledgment Received in Response to an Outbound Interchange

The receive pipeline creates a record in the status report data store for each technical acknowledgment that it receives. The receive pipeline creates a record of each interchange received in the status report data store. creates one technical acknowledgment status report entry in the data store for each technical ACK received as a response to an interchange sent to a trading partner. The technical acknowledge is the TA1 for X12 and the CONTRL message with only the UCI Segment for EDIFACT. The data stored includes:

  • Record Type = Interchange ACK Status

  • Interchange ACK Direction = Send – Update Data

  • Interchange Receiver = Update Data (required for correlation)

  • Interchange Sender = Update Data (required for correlation)

  • Interchange Date = Update Data (required for X12 correlation)

  • Interchange Control ID = Update Data (required for correlation)

  • Interchange ACK Status = Generated or Not Applicable <Refer Note 0> - Update Data

  • Interchange ACK Control ID= Not valued – will be applied by send side

  • Interchange ACK Date = Not valued – will be applied by send side

  • Interchange ACK Time = Not valued – will be applied by send side

  • ACK/Action Code = Update Data <refer note 1> (from X12-TA104 or EDIFACT-UCI4)*

  • ACK Note Code = Update Data <Refer Note 2> (from X12-TA105, not applicable for EDIFACT)*

    The following ACK/Action Codes are used:

Data in ACK/Action Code Error description for Reporting Comment (applicability)
A Accepted X12
E Accepted, errors noted X12
P Partially Accepted X12
R Rejected X12
4 Rejected EDIFACT
8 Accepted/Partially Accepted EDIFACT

The following ACK Note Codes are used:

Data in ACK Note Code (in X12) Description
000 Success
001 Interchange Control Number mismatch
002 Standard not supported
003 Version of the Controls Not Supported
004 Segment Terminator is Invalid
005 Invalid Interchange ID Qualifier for Sender
006 Invalid Interchange Sender ID
007 Invalid Interchange ID Qualifier for Receiver
008 Invalid Interchange Receiver ID
009 Unknown Interchange Receiver ID
010 Invalid Authorization Information Qualifier Value
011 Invalid Authorization Information Value
012 Invalid Security Information Qualifier Value
013 Invalid Security Information Value
014 Invalid Interchange Date Value
015 Invalid Interchange Time Value
016 Invalid Interchange Standards Identifier Value
017 Invalid Interchange Version ID Value
018 Invalid Interchange Control Number Value
019 Invalid Acknowledgment Requested Value
020 Invalid Test Indicator Value
021 Invalid Number of Included Groups Value
022 Invalid Control Structure
023 Improper End-of-File
024 Invalid Interchange Content
025 Duplicate Interchange Control Number
026 Invalid Data Element Separator
027 Invalid Component Element Separator
028 Invalid Delivery Date in Deferred Delivery Request
029 Invalid Delivery Time in Deferred Delivery Request
030 Invalid Delivery Time Code in Deferred Delivery Request
031 Invalid Grade of Service

Data Updated by the Receive Pipeline for Each Technical Acknowledgment Received in Response to an Outbound Interchange

For each technical acknowledgment that the receive pipeline receives, it updates the status report entry for the correlated sent interchange.

The EDI Disassembler locates records in the data store using data in the UCI and TA1 Segments of the incoming acknowledgment, as follows:

Fields in ACK Fields in Data store Comment
Interchange Sender ID Interchange Receiver -
Interchange Receiver ID Interchange Sender -
- Interchange Date -
Interchange Control Number Interchange Control ID -
- Interchange Direction = Send Required in preserved batch scenario for uniqueness
Record Type Interchange Status and Interchange ACK Status -

The data stored includes:

  • Interchange ACK Direction = Receive – Existing Data

  • Interchange ACK Status = Received

  • Interchange Receiver = Existing Data

  • Interchange Sender = Existing Data

  • Interchange Date = Existing Data

  • Interchange Control ID = Existing Data

  • Interchange ACK Control ID= Update Data

  • Interchange ACK Date = Update Data

  • Interchange ACK Time = Update Data

  • ACK/Action Code = Update Data (from X12-TA104 or EDIFACT-UCI4)* <Refer Note 1>

  • ACK Note Code 2 = Update Data (from X12-TA105 and not valued for EDIFACT)* <Refer Note 2>

    The data from the ACK X12:TA1-104 or EDIFACT UCI4 is to be mapped as follows:

Data in ACK/Action Code Mapped for Status Reporting Comment
A Accepted X12
P Partially Accepted X12
R, M, W, X Rejected X12
E Accepted with errors X12
4 Rejected EDIFACT
7, 8 Accepted/Partially Accepted EDIFACT

The following ACK Note Codes are used:

Data in ACK Note Code (in X12) Mapped for Status Reporting
000 Success
001 Interchange Control Number mismatch
002 Standard not supported
003 Version of the Controls Not Supported
004 Segment Terminator is Invalid
005 Invalid Interchange ID Qualifier for Sender
006 Invalid Interchange Sender ID
007 Invalid Interchange ID Qualifier for Receiver
008 Invalid Interchange Receiver ID
009 Unknown Interchange Receiver ID
010 Invalid Authorization Information Qualifier Value
011 Invalid Authorization Information Value
012 Invalid Security Information Qualifier Value
013 Invalid Security Information Value
014 Invalid Interchange Date Value
015 Invalid Interchange Time Value
016 Invalid Interchange Standards Identifier Value
017 Invalid Interchange Version ID Value
018 Invalid Interchange Control Number Value
019 Invalid Acknowledgment Requested Value
020 Invalid Test Indicator Value
021 Invalid Number of Included Groups Value
022 Invalid Control Structure
023 Improper End-of-File
024 Invalid Interchange Content
025 Duplicate Interchange Control Number
026 Invalid Data Element Separator
027 Invalid Component Element Separator
028 Invalid Delivery Date in Deferred Delivery Request
029 Invalid Delivery Time in Deferred Delivery Request
030 Invalid Delivery Time Code in Deferred Delivery Request
031 Invalid Grade of Service

Data Stored by the Receive Pipeline for Each Functional Acknowledgment Received in Response to Outbound Interchanges

The receive pipeline creates a record in the status report data store for each functional acknowledgment that it receives. The technical acknowledge is the 997 for X12 and the full CONTRL message for EDIFACT. One entry per group will to be created. Data from the interchange and group headers is used while making this entry. The data stored includes:

  • Record Type = Functional ACK Status

  • Functional ACK Direction = Send

  • Functional ACK Status = <Generated or Not Applicable, refer note 1>

  • Interchange Receiver = Update Data (required for correlation)

  • Interchange Sender = Update Data (required for correlation)

  • Interchange Date = Update Data (required for X12 correlation)

  • Interchange Control ID = Update Data (required for correlation)

  • Group Control Number = Update Data (‘optional for EDIFACT’ and required for X12 correlation)

  • Functional ID Code = Update Data (GS01/UNG01)

  • Count of Transaction Sets = Update Data (UNE1/UNZ1)

  • Functional ACK Interchange Control ID= Not value – will be applied by send side

  • Functional ACK Interchange Date = Not valued – will be applied by send side

  • Functional ACK Interchange Time = Not valued – will be applied by send side

  • Count of Transaction Sets Received = Update Data (X12-AK903 and computed by Engine for EDIFACT encoding)

  • Count of Transaction Sets Accepted = Update Data (X12-AK904 and computed by Engine for EDIFACT engine)

  • ACK/Action Code = Update Data <refer note 2> (from X12-AK901 or EDIFACT-UCI4)*

  • Error/Syntax Error Code = Update Data (X12-AK905, EDIFACT UCI5) Note 3

  • Additional X12 ACK Error Code 2 = Update Data (X12-AK906)

  • Additional X12 ACK Error Code 3 = Update Data (X12-AK907)

  • Additional X12 ACK Error Code 4 = Update Data (X12-AK908)

  • Additional X12 ACK Error Code 5 = Update Data (X12-AK909)

    The following ACK/Action Codes will be used:

Data in ACK/Action Code Error description for Reporting Comment (applicability)
A Accepted X12
E Accepted with errors X12
P Partially Accepted X12
R Rejected X12
4 Rejected EDIFACT
7 Accepted/Partially Accepted EDIFACT

The following Error/Syntax Error Codes will be used for EDIFACT:

Data in Error/Syntax Error Code

(applicable to EDIFACT)
Error Description for reporting
2 Syntax version or level not supported
7 Interchange recipient not actual recipient
12 Invalid value
13 Missing
14 Value not supported in this position
15 Not supported in this position
16 Too many constituents
17 No agreement
18 Unspecified error
19 Invalid decimal notation
20 Character invalid as service character
21 Invalid character(s)
22 Invalid service character(s)
23 Unknown Interchange sender
24 Too old
25 Test indicator not supported
26 Duplicate detected
27 Security function not supported
28 References do not match
29 Control count does not match number of instances received
30 Groups and messages/packages mixed
31 More than one message type in group
32 Lower level empty
33 Invalid occurrence outside message, package, or group
34 Nesting indicator not allowed
35 Too many data element or segment repetitions
36 Too many segment group repetitions
37 Invalid type of character(s)
38 Missing digit in front of decimal sign
39 Data element too long
40 Data element too short
41 Permanent communication network error
42 Temporary communication network error
43 Unknown interchange recipient
45 Trailing separator
46 Character set not supported
47 Envelope functionality not supported
48 Dependency condition violated
70 Transaction set is missing or invalid transaction set Identifier
71 Transaction set or group control number mismatch
72 Unrecognized segment ID
73 XML not at correct position
74 Too few segment group repetitions
75 Too few segment repetitions
76 Too few data elements found

The following Error/Syntax Error Codes will be used for X12:

Data in Error/Syntax Error Code

(applicable to X12)
Error Description for reporting
1 Functional group not supported
2 Functional group version not supported
3 Functional group trailer missing
4 Group control number in the functional group header and trailer do not agree
5 Number of included transaction sets does not match actual count
6-26 Other unsupported validation errors

Data Updated by the Receive Pipeline for Each Functional Acknowledgment Received in Response to Outgoing Interchanges

For each functional acknowledgment that the receive pipeline receives, it updates the status report entry for the correlated sent interchange.

The EDI Disassembler locates records in the data store using data in the Interchange and Group Header Segments of the incoming acknowledgment, as follows:

Fields in ACK Fields in Data store Comment
Interchange Sender ID Interchange Receiver Applicable to both X12 and EDIFACT
Interchange Receiver ID Interchange Sender Applicable to both X12 and EDIFACT
- Interchange Date -
Interchange Control Number Interchange Control ID Applicable only to EDIFACT
Group Control Number Group Control Number Applicable only to X12
- Interchange Direction = Send Required since in BIBO Scenario for uniqueness
Record Type Functional ACK Status Applicable to both X12 and EDIFACT

The data stored includes:

  • Record Type = Functional ACK Status

  • Functional ACK Direction = Receive

  • Functional ACK Status =Update Data as Received

  • Interchange Receiver = Existing Data

  • Interchange Sender = Existing Data

  • Interchange Date = Existing Data

  • Interchange Control ID = Existing Data

  • Group Control Number = Existing Data

  • Functional ID Code = Existing Data

  • Count of Transaction Sets = Existing Data

  • Functional ACK Interchange Control ID= Update Data

  • Functional ACK Interchange Date = Update Data

  • Functional ACK Interchange Time = Update Data

  • Count of Transaction Sets Delivered = Update Data (X12 AK903 and not applicable for EDIFACT)

  • Count of Transaction Sets Accepted = Update Data (X12 AK904 and not applicable for EDIFACT)

  • ACK/Action Code = Update Data (X12 AK901 and UCI4) Refer Note 1

  • Error/Syntax Error Code = (X12 AK905 and UCI5) Refer Note 2

  • Additional X12 ACK Error Code 2 = Update Data (X12-AK906)

  • Additional X12 ACK Error Code 3 = Update Data (X12-AK907)

  • Additional X12 ACK Error Code 4 = Update Data (X12-AK908)

  • Additional X12 ACK Error Code 5 = Update Data (X12-AK909)

    The following ACK/Action Codes will be used:

Data in ACK/Action Code Mapped for Status Reporting Comment
A Accepted X12
P Partially Accepted X12
R, M, W, X Rejected X12
E Accepted with errors X12
4 Rejected EDIFACT
7, 8 Accepted/Partially Accepted EDIFACT

The following Error/Syntax Error Codes will be used for EDIFACT:

Data in Error/Syntax Error Cod

(applicable to EDIFACT)
Error Description for reporting
2 Syntax version or level not supported
7 Interchange recipient not actual recipient
12 Invalid value
13 Missing
14 Value not supported in this position
15 Not supported in this position
16 Too many constituents
17 No agreement
18 Unspecified error
19 Invalid decimal notation
20 Character invalid as service character
21 Invalid character(s)
22 Invalid service character(s)
23 Unknown Interchange sender
24 Too old
25 Test indicator not supported
26 Duplicate detected
27 Security function not supported
28 References do not match
29 Control count does not match number of instances received
30 Groups and messages/packages mixed
31 More than one message type in group
32 Lower level empty
33 Invalid occurrence outside message, package, or group
34 Nesting indicator not allowed
35 Too many data element or segment repetitions
36 Too many segment group repetitions
37 Invalid type of character(s)
38 Missing digit in front of decimal sign
39 Data element too long
40 Data element too short
41 Permanent communication network error
42 Temporary communication network error
43 Unknown interchange recipient
45 Trailing separator
46 Character set not supported
47 Envelope functionality not supported
48 Dependency condition violated
70 Transaction set is missing or invalid transaction set Identifier
71 Transaction set or group control number mismatch
72 Unrecognized segment ID
73 XML not at correct position
74 Too few segment group repetitions
75 Too few segment repetitions
76 Too few data elements found

The following Error/Syntax Error Codes will be used for X12:

Data in Error/Syntax Error Code

(applicable to X12)
Error Description for reporting
1 Functional group not supported
2 Functional group version not supported
3 Functional group trailer missing
4 Group control number in the functional group header and trailer do not agree
5 Number of included transaction sets does not match actual count
6-26 Other unsupported validation errors

See Also

How Data Is Stored for EDI and AS2 Status Reports
How Data Is Stored for Inbound EDI Messages