ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Parsing an EDI message which has non standard delimiters.

Post new topic  Reply to topic
 Parsing an EDI message which has non standard delimiters. « View previous topic :: View next topic » 
Author Message
mpriest
PostPosted: Fri Mar 19, 2004 3:21 am    Post subject: Parsing an EDI message which has non standard delimiters. Reply with quote

Newbie

Joined: 15 Jan 2003
Posts: 7

Hi,
Still working in MQSI v2.1. Looking at TDS messages.

We are receiving EDI messages from a third party who use "non standard" delimiters - namely
- x'1F' for : (EDIFACT_CS)
- x'1C' for ' (EDIFACT_GROUP_TERM)
- x'1D' for + (EDIFACT_DS)

I'm trying to develop a message set to parse these messages.
I started out by taking a copy of the message and changing the delimiter characters to the "default". Got to the point where I can parse the messages.

I then started trying to use the raw messages. First I changed the EDIFACT part of the message types to use alternate mnemomics as defined in the Working with Messages Appendix B.
Thus I'm trying :-
<FS> for x'1C' (')
<GS> for x'1D' (+)
<US> for x'1F' ( : )

This works fine for the + and : delimiters. However it does not work for the Group Separator '.

I only use this in the overall Type for the EDI message. The EDIFACT tag for this has had the following details set up by me :-
Tag Data Separator <GS>
Data Element Separation - Tagged Delimited
Delimiter <FS>

When I put a trace node on the message, it shows that the parser reads past the end of the UNH segment into the UNT segment - ignoring the x'1c' separator.

If I tweak the message to replace any instances of x'1c' with ' and adjust the message set to have Delimiter <EDIFACT_GROUP_TERM> on the overall Type then the message is parsed correctly.

I could of course search the message for all instances of x'1c' and replace it with ', but this is not a pretty or efficient solution.

Anyone got any ideas what I can do to persuade the parser to recognise x'1c' as the Edifact Group Terminator ??
Back to top
View user's profile Send private message
wooda
PostPosted: Fri Mar 19, 2004 5:28 am    Post subject: Reply with quote

Master

Joined: 21 Nov 2003
Posts: 265
Location: UK

Hi -

My undertanding is that EDIFACT use's a service string in the header to define the characters to be used for EDIFACT_CS, EDIFACT_DS and EDIFACT_GROUP_TERM for that particular message.

I believe this is supported by TDS.

If you set the service string field to type string and set the TDS property "Interpret Element Value" to "Edifact Service String". Then the service string should be interpretted correctly and the EDIFACT delimiters assigned dynamically.
Back to top
View user's profile Send private message
mpriest
PostPosted: Fri Mar 19, 2004 7:09 am    Post subject: Thanks for the suggestion - not sure it will work Reply with quote

Newbie

Joined: 15 Jan 2003
Posts: 7

Zanda,
Thanks for the suggestion. However I'm not sure whether this will work. Interepret Element Value is as the Element level. It also only seems to be available at the level off a simple element e.g. one of type STRING.

I don't want to have to define an extra element for the delimiter, I would have thought this should be defined at compund type level. Am I missing something ?

The manual seems to imply that you can override a Mnemonic with the service string, but doesn't specify how you do it ("Working with Messages"). I shall dig somemore. In the meantime, anyone out there done this

Also done a bit more digging - the supplier isn't adding the ServiceStringAdvice UNA. Strictly they shoud as they are using non standard characters for the EDIFACT delimiters. I shall have a whinge at them.

This still leaves the question, why doesn't the parser cope with my giving it <FS> as the equivalenet of x'1c' (it copes with <GS> for x'1d' and US for <1f>

I've proved that I'm on the correct lines by using a Compute Node to convert all instances of x'1c' to x'27' (ASCII '). The message is then parsed successfully.

Regards - Marc
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Parsing an EDI message which has non standard delimiters.
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.