Problem with Edifact Interchange and loopback adapter Receive Pipeline – Transation Set Errors – Data element too long

In a previous project, I worked with EDI message to interchange with partners, but before I send the message to the partner I have the need to pass then to the loopback adaptor, that was configured with EDISend pipeline and EDIReceive Pipeline.

The objective is to get some proprieties, configured in the Party, that I need to precede the orchestration.

The send work well and create a correct EDI message, but on the receive, I expect an Edifact Interchange Message but when I receive back the message it gives the following error:

“Transation Set Errors
Sequence No: 1
TS Id code: INVOIC
Control Number: 1

Error: 1 (Field level error)
SegmentID: NAD
Position in TS: 13
Data Element ID: C08001
Position in Segment: 5
Position in Field: 1
Data Value: XXXXXXXXX X�X DE X�XXXX XX XXXXX
39: Data element too long
For more information, see Help and Support Center at”

Cause

  • The value “C08001” is too long for the defined length of the element.

This error is simple and it occurs because the total of characters, including spaces, is greatest that what is allowed in element C08001, “XXXXXXXXX X�X DE X�XXXX XX XXXXX” contains 36 chars and the element allows 35.

But, if you look carefully, the string has encoding problem:

  • The first sequence of these 3 characters “�” represents the char “Ô
  • And the second sequence represents the char “Ç”

In my case, the problem is not the size of the string but the character set configured in the party, which causes that the string length is greatest than it really is.

Solution

  • Check the max length of the UNB9 element and correct your data. If you and your trading partner agree, both may increase the max length, in which case you would modify your schema.

To resolved encoding problems (my situation)

  • In the party, select EDI Properties and change the character set for a party by setting the UNB1.1 party property in the UNB Segment Definition property page for the party as interchange receiver.
    • Under “Party as Interchange Receiver” -> “EDIFACT Interchange Envelope Generation” -> “UNB Segment Definition” –> “Syntax (UNB1)” -> “UNB1.1 (Identifier)”
    • In my case, I used UNOD, more tolerant encoding (As defined in ISO 8859-2 : Information processing – Part 2: Latin alphabet No. 2.)
Author: Sandro Pereira

Sandro Pereira lives in Portugal and works as a consultant at DevScope. In the past years, he has been working on implementing Integration scenarios both on-premises and cloud for various clients, each with different scenarios from a technical point of view, size, and criticality, using Microsoft Azure, Microsoft BizTalk Server and different technologies like AS2, EDI, RosettaNet, SAP, TIBCO etc. He is a regular blogger, international speaker, and technical reviewer of several BizTalk books all focused on Integration. He is also the author of the book “BizTalk Mapping Patterns & Best Practices”. He has been awarded MVP since 2011 for his contributions to the integration community.

Leave a Reply

Your email address will not be published. Required fields are marked *

turbo360

Back to Top