How Data Is Stored for Inbound EDI Messages
BizTalk Server does the following to generate a status report entry for an inbound interchange and the acknowledgment sent in response to it:
When inbound message XML is sent by the EDI receive pipeline to the MessageBox, the receive pipeline creates the following entries in the status reporting data store with the following values:
One status report entry for each interchange received, with Status set to Accepted/Partially Accepted/Rejected
One status report entry for each technical (interchange) acknowledgment, one per interchange, with Status set to Generated
One status report entry for each functional acknowledgment, one per group in X12 and one for all groups in EDIFACT, with Status set to Generated.
After the send pipeline has sent the acknowledgments to the trading partner, the EDI send pipeline updates the Interchange ACK status and Functional ACK status entries to Sent, as appropriate. No changes are made to the Interchange status entry.
Data Stored by the Receive Pipeline for Inbound Interchanges
The receive pipeline creates a record in the status report data store for each interchange that it receives. The data stored includes:
Record Type = Interchange Status
Interchange Direction = Receive
Interchange Receiver = Update Data
Interchange Sender = Update Data
Interchange Date = Update Data
Interchange Time = Update Data
Interchange Control ID = Update Data
Interchange Status: Update Data
Count of Groups in Interchange = Update Data (In EDIFACT Groups are optional and if not present, valued as ‘Not Applicable’)
Interchange Receive Port ID = Update Data
Data Stored by the Receive Pipeline for Each Technical Acknowledgment Generated in Response to an Inbound Interchange
The send pipeline creates a record in the status report data store for each technical acknowledgment that it sends. The technical acknowledgement is the TA1 for X12 and the CONTRL message with only the UCI Segment for EDIFACT. 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 ACK Status
Interchange ACK Direction = Receive
Interchange Receiver = Update Data (required for correlation)
Interchange Sender = Update Data (required for correlation)
Interchange Date = Update Data
Interchange Control ID = Update Data (required for correlation)
Interchange ACK Status = < Expected or Not Applicable>. If the technical ACK is configured or valued in the incoming interchange, status = Expected. Otherwise, status = Not Applicable.
Interchange ACK Control ID= <not valued>
Interchange ACK Date = <not valued>
Interchange ACK Time = <not valued>
ACK/Action Code = <not valued>
ACK Note Code = <not valued>
Data Updated by the Send Pipeline for Each Technical Acknowledgment Generated in Response to Inbound Interchanges
For each technical acknowledgment that the send pipeline sends, it updates the status report entry for the correlated received interchange. The source for the data will be the Interchange envelopes created by the Send Pipeline.
The EDI Assembler 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 = Receive | Required in preserved interchange scenario for uniqueness |
Record Type | Interchange ACK Status | - |
The data stored includes:
Record Type = Interchange ACK Status
Interchange ACK Direction = Send- Existing Data
Interchange ACK Status = Processed or Sent – Update Data
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 = Existing Data
ACK Note Code = Existing Data
Data Stored by the Receive Pipeline for Each Functional Acknowledgment Generated in Response to an Inbound Interchange
The send pipeline creates a record in the status report data store for each functional acknowledgment that it sends. The send pipeline creates a record of each functional acknowledgment sent (in response to an interchange received) in the status report data store. If no group is present in EDIFACT, one functional ACK will still be created. The functional ACK status report entry will be populated from the functional group header/trailer (GS/GE or UNG/UNE). The technical acknowledge is the 997 for X12 and the full CONTRL message for EDIFACT. The data stored includes:
Record Type = Functional ACK Status
Functional ACK Direction = Receive
Functional ACK Status = < Expected or Not Applicable>. If the functional acknowledgment tab in PAM is selected, status will set to Expected. Otherwise, status will be set to Not Applicable.
Interchange Receiver = Update Data (required for correlation)
Interchange Sender = Update Data (required for correlation)
Interchange Date = Update Data
Interchange Control ID = Update Data (required for correlation)
Group Control Number = Update Data (required for correlation. In EDIFACT if no group segments present this field is valued using UNH.1)
Functional ID Code = Update Data (not valued in EDIFACT if group is not present)
Count of Transaction Sets = Data (in EDIFACT this is mapped to UNE.1 while UNG/UNE are present or UNZ.1 if no group segments are present)
Functional ACK Interchange Control ID= <not valued>
Functional ACK Interchange Date = <not valued>
Functional ACK Interchange Time = <not valued>
Count of Transaction Sets Delivered = <not valued>
Count of Transaction Sets Accepted = <not valued>
ACK/Action Code = <not valued>
Error/Syntax Error Code = <not valued>
Additional X12 ACK Error Code 2 = <not valued>
Additional X12 ACK Error Code 3 = <not valued>
Additional X12 ACK Error Code 4 = <not valued>
Additional X12 ACK Error Code 5 = <not valued>
Data Updated by the Send Pipeline for Each Functional Acknowledgment Generated in Response to Inbound Interchanges
For each functional acknowledgment that the send pipeline sends, it updates the status report entry for the correlated received interchange. The source for the data will be the Interchange envelopes created by the Send Pipeline.
The EDI Assembler 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 | - |
Interchange Receiver ID | Interchange Sender | - |
Interchange Date | Interchange Date | - |
Interchange Control Number | Interchange Control ID | - |
Group Control Number | Group Control Number | Optional in EDIFACT |
- | Interchange Direction = Receive | Required in preserved interchange scenario for uniqueness |
Record Type | Functional ACK Status | - |
The data stored includes:
Record Type = Functional ACK Status
Functional ACK Direction = Send – Existing Data
Functional ACK Status = Sent/Processed – Update Data
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 Received = Existing Data
Count of Transaction Sets Accepted = Existing Data
ACK/Action Code = Existing Data
Error/Syntax Error Code = Existing Data
Additional X12 ACK Error Code 2 = Existing Data
Additional X12 ACK Error Code 3 = Existing Data
Additional X12 ACK Error Code 4 = Existing Data
Additional X12 ACK Error Code 5 = Existing Data
See Also
How Data Is Stored for EDI and AS2 Status Reports
How Data Is Stored for Outbound EDI Messages