A recent friend asked me why he would be getting this error, and while debugging a splitting process, I came across this same error: hence this blog entry.
(not all of the time, but most of the time) What is going on is that the EDI data is being parsed by the EDI pipeline and resolving to a party, and I wanted to take a copy of that message and drop it to a folder so I can look at the claim to see what is really going on.
However when I assigned the data to the new message I simply sent it to the EDI assembler and assumed that it would create the EDI document and I could pass it along to the BA and they could tell me what needs to happen, yada yada yada.
All of the sudden I started getting these messages: Invalid character in data element.
What is actually going on is that when data is coming in, it is resolving to a particular party, but when going out, it does not have a party associated with it, so it defaults to the global party. The global party does not have a lot of the configuration options that are available to a defined party. One of those options are to allow decimals in EDI documents.
Here is what is in a defined party to get decimals to go in:
However, for the global party, the setting is not available.
This means that all data for a global party must be implicit decimal.
Change the following property to allow outbound decimals:
And in the orchestration, when you create the new message, make sure your code looks like this:
NewEDIMsg.MessagePart=EDIMsg.MessagePart; NewEDIMsg(EDI.DestinationPartyName)=EDIMsg(MessageTracking.PartyName);