In last couple of months quite often we were been reported by one of our EDI trading partner that they have not received the 997 acknowledgement message for the 850 PO message they sent us. They did not even receive MDN.
When we check the particular PO in our logging system, BizTalk admin console and SAP ERP we didn’t find it and hence we ask them to resend that particular PO. When they re-sent the same PO it got processed successfully and they received the 997 also.
But the frequency of this incident started increasing which forced us to dig deeper to get the root cause of the issue.
The issue was caused only for the files which have multiple interchanges with different delimiters “ | ” and “ * ”. When they resent the PO it had only one delimiter “ * ” .
There is a custom pipeline component EDICleaner in the solution which is used in the AS2 receive pipeline.
This custom component is in place to remove any garbage characters before the start of the EDI interchange. But the logic included only for the delimiter “ * ” and hence the PO with delimiter ” | ” was getting stripped off.
It was really interesting one to crack. Here is how my team mate, Arindam nailed down the issue using the BAM tables for AS2/MDN.
So basically we asked out trading partner to provide the 850 PO file name which they had sent us. And when we queried the BAM table with the file name we got the record.
Using the time stamp from the above record, we queried the completed instances in tracking database and we got that the message have been received by the pipelines.
After debugging the same message in development environment we found the issue which was in the custom pipeline component.