In my last two posts I showed two possible errors, and their respective solutions, that can happen when we are validating dummy EDI message, provided by our partners, against the schema using Visual Studio, but these errors could also happen in runtime.
In this post I will show you one common error when we are validating an EDI solution.
After I deploy and correctly configured the solution, I was trying to receive an EDI document from a Receive Port, in order to convert it to XML format using the generic EDI pipeline: “Microsoft.BizTalk.Edi.DefaultPipelines.EdiReceive”, but I was always getting this error:
“There was a failure executing the receive pipeline:
“Microsoft.BizTalk.Edi.DefaultPipelines.EdiReceive,
Microsoft.BizTalk.Edi.EdiPipelines, Version=3.0.1.0, Culture=neutral,
PublicKeyToken1bf3856ad364e35″ Source: “EDI disassembler” Receive Port: “IN_ORDER_PORT” URI: “E:\PORTS\EDI\IN_ORDER\*.*” Reason: No Disassemble stage components can recognize the data.“.
The message provided by our partner was this:
01 | UNH+1000100+ORDERS:D:93A:UN:EAN007' |
09 | NAD+BY+8000000001164::9' |
10 | NAD+DP+8000000009463::9' |
11 | NAD+IV+8000000013002::9' |
12 | NAD+SU+8000001459008::9' |
13 | NAD+PR+8000000016003::9' |
14 | LIN+1++4001518722937:EN' |
15 | PIA+1+00:PV+14001518722937:EN' |
16 | IMD+F+M+:::SOME DESCRIPTION' |
18 | LIN+2++5000014010034:EN' |
19 | PIA+1+00:PV+15701014010031:EN' |
20 | IMD+F+M+:::SOME DESCRIPTION' |
22 | LIN+3++5000014016142:EN' |
23 | PIA+1+00:PV+15701014016149:EN' |
24 | IMD+F+M+:::SOME DESCRIPTION' |
26 | LIN+4++5006879009752:EN' |
27 | PIA+1+00:PV+15776879009759:EN' |
28 | IMD+F+M+:::SOME DESCRIPTION' |
CAUSE
After some time trying to understand the reason of this problem, I realize that’s nothing wrong with my project, the problem is actually in the message that I’m using.
This error occurs because the message does not contain the EDIFACT interchange envelope segments (UNB and UNZ). An EDIFACT interchange begins with a UNB. It contains version release information, syntax information, and partner information. An interchange ends with a UNZ.
UNA Segment: The UNA segment is optional in an EDIFACT interchange. The specifications in the UNA segment define the characters used as separators and indicators for the interchange. Use this segment only if the interchange contains non-standard separator characters. (More information here)
UNB Segment: The UNB segment is compulsory to an EDIFACT interchange. This segment acts as the interchange header for a set of EDIFACT documents. The UNB segment elements identify the sender and recipient of the interchange, together with the date and time that the interchange was prepared and the agency controlling the syntax of the interchange. (More information here)
UNZ Segment: This segment is the Interchange Trailer segment of an EDIFACT document. This segment indicates the end of an interchange and checks the interchange reference and number of documents in the interchange. (More information here)
SOLUTION
Add this segment to your message: UNA (optional), UNB and UNZ and the message will be processed correctly.
Correct message:
02 | UNB+UNOB:1+UNB2.1+UNB3.1+012301:0123+UNB5' |
03 | UNH+1000100+ORDERS:D:93A:UN:EAN007' |
11 | NAD+BY+8000000001164::9' |
12 | NAD+DP+8000000009463::9' |
13 | NAD+IV+8000000013002::9' |
14 | NAD+SU+8000001459008::9' |
15 | NAD+PR+8000000016003::9' |
16 | LIN+1++4001518722937:EN' |
17 | PIA+1+00:PV+14001518722937:EN' |
18 | IMD+F+M+:::SOME DESCRIPTION' |
20 | LIN+2++5000014010034:EN' |
21 | PIA+1+00:PV+15701014010031:EN' |
22 | IMD+F+M+:::SOME DESCRIPTION' |
24 | LIN+3++5000014016142:EN' |
25 | PIA+1+00:PV+15701014016149:EN' |
26 | IMD+F+M+:::SOME DESCRIPTION' |
28 | LIN+4++5006879009752:EN' |
29 | PIA+1+00:PV+15776879009759:EN' |
30 | IMD+F+M+:::SOME DESCRIPTION' |
No comments:
Post a Comment
Post Your Comment...