Recently, we encountered an issue while sending out the EDI documents to one of our partners, and we received rejected 997 (Functional) Acknowledgments for all those messages we sent. The issue was that the segment count in the SE segment (field is D_96 in the XML representation) was being defaulted to zero. This made our partners’ system reject these messages.
To start with, the field D_96 in the SE (This is a common segment in all the EDI Messages) segment of EDI 856 (Advanced Ship Notice in our case) message contains a count of all the segments within the Transaction Set, i.e., starting from ST till SE segments. The value for this field was being generated correctly in the message mapping, but was getting defaulted to zero when it was being converted to EDI, i.e., at the time of execution of the XML-to-EDI (X2E) mapping which is deployed on the XI server( which is mentioned in the Seeburger AS2 Adapter module parameters).
To identify the cause of the issue, we tried checking if the correct version of the 856 message has been imported into the BIC Mapping Designer and if the mapping was generated using the correct 856 EDI Message. Everything looks fine. But still, the issue persisted.
This issue was fixed by modifying the XML version of the X2E mapping, by going through the following steps.
Firstly, export the X2E map in the BIC Mapping designer onto your local PC. This gets exported in the form of an XML file.
Now, open the XML file of the X2E mapping, whose name would be the same as that of the actual mapping in the BIC Mapping Designer and search for the logic to create the SE Segment, which would be at the end of the file.
The above screenshot shows the logic in the XML file to create the SE Segment. Now, we see that the logic exists here only for creating the D_329 field, which is the Transaction Set Control Number in the SE segment. Generally, as per what we saw with the other mappings as well, is that, the logic in the SE segment is present only for the D_329 field, but still, the D_96 field is populated with the correct segment count.
Now, to fix the issue, we have just added an extra piece of code for the creation of D_96 field (The logic here is that, if the D_96 field is present in the source payload, then, this value should be copied into the target payload), as stated below.
The logic is as below:
“<line type=”code”>if existsourceField(“ISA.GS.ST.SE:96”) && trim(ISA.GS.ST.SE:96) != “” </line><line type=”code”>copy ISA.GS.ST.SE:96 to LIST.S_ISA.S_GS.S_ST.S_SE.D_96:value;</line>
Save the changes and then re-import it into the BIC Mapping Designer. Then generate the “.sda” file and have it deployed in the XI System.
I hope this proves useful to you people. I will update this blog with more issues related to the X2E / E2X Conversion issues.