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 » Need help in parsing a message

Post new topic  Reply to topic
 Need help in parsing a message « View previous topic :: View next topic » 
Author Message
edd
PostPosted: Thu Dec 01, 2016 10:41 am    Post subject: Need help in parsing a message Reply with quote

Novice

Joined: 18 Aug 2016
Posts: 14

Hi All,

Can't get my head around a requirement I have. I have to parse a message which comes in chunks of same length of groups of data having "unique tag" preceding it. The problem is these groups of data are optional and if so, then I have to populate the exact length of spaces in between preceding and the succeeding group of data. Please note that each group of data has a "unique tag".

I do not have any experience with TDS format and am really struggling with it to understand and apply. Is there any way I could parse it in a TDS format and remove the tag as well from the output message?

The Message would look like :

[/b]ABCD<DATA>PQRS<DATA>

Back to top
View user's profile Send private message
mqjeff
PostPosted: Thu Dec 01, 2016 11:21 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

You should be using DFDL.

You can remove tags when you map from one format to another...

You can tell DFDL to use spaces if the field is null. This might be a bit difficult for numeric values. If you don't need to break out the individual fields inside the DATA, then you can just treat it as a single string.

You should consider your model to be a repeating sequence of a choice. Each member of the choice is be indicated by one of your tags.
_________________
chmod -R ugo-wx /
Back to top
View user's profile Send private message
timber
PostPosted: Fri Dec 02, 2016 2:17 am    Post subject: Reply with quote

Grand Master

Joined: 25 Aug 2015
Posts: 1280

Quote:
You should be using DFDL.
I agree; this is a no-contest. DFDL provides a full list of what it did and why. MRM TDS does not.
Quote:
The problem is these groups of data are optional and if so, then I have to populate the exact length of spaces in between preceding and the succeeding group of data. Please note that each group of data has a "unique tag".
That leaves a few questions unanswered. You need to supply some examples, (within in [c o d e] tags, please).
Quote:
Is there any way I could parse it in a TDS format and remove the tag as well from the output message?
Parsing is something that is done to the input bitstream. But you are now asking about the output message. Do you need to parse this format, or write it? Or both?
Back to top
View user's profile Send private message
edd
PostPosted: Fri Dec 02, 2016 8:29 am    Post subject: Reply with quote

Novice

Joined: 18 Aug 2016
Posts: 14

Quote:
You need to supply some examples


Code:
00ABC000000002     1234567  951QWERTYUI                                      0944602    001                                                                                                                                                                     00DEF123      ZXCVBNMK                           10Q5737                              9                                                                                                                                                                         00GHI09820101A10                           102                                                                                                                                                                                                                  01JKLMN 1367/WK51/181619                                                                                                                                                                                                                                        11POIUY 0876602                                                                                                                                                                                                                                                 41HYUJI 397250                                                                                                                                                                                                                                                  05YYYCT S1606001                                                                                                                                                                                                                                               


The Tags here are:
1. 00ABC
2. 00DEF
3. 00GHI
4. 01JKLMN
5. 11POIUY
6. 41HYUJI
7. 05YYYCT

Actually I'm trying to convert the old Neon formats into now supported MRM or DFDL parsers.

And yes, after parsing, I need to transform it into an xml.
Back to top
View user's profile Send private message
mqjeff
PostPosted: Fri Dec 02, 2016 8:34 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

So
Code:
<message><sequence><sequence repeats until end of file>
<choice>
<record tag=00ABC> <record fields> </record>
<record tag=00DEF> <record fields> </record>
....
..
</choice>
</sequence>
</sequence>
</message>


Or something similar.
_________________
chmod -R ugo-wx /
Back to top
View user's profile Send private message
edd
PostPosted: Sun Dec 11, 2016 12:57 pm    Post subject: Reply with quote

Novice

Joined: 18 Aug 2016
Posts: 14

Thanks mqjeff and timber, I have installed IIB v10 developer edition and created a DFDL schema for the message structure. I have created a few complex types and then added them to the main message in a sequential order. The DFDL parse test is successful , but when I try the flow exerciser and when I deploy the application and try to pass a message, it goes to the backout failure queue.

I have used a compute node which turns the Flat file into an XML and the following error is being shown. Any suggestions?

Code:
( <Integration_node>.<Integration server> ) The element with name ''QQQ_LineItem'' and field type ''folderType'' is not valid as the child of Root.XML or Root.XMLNSC.   

Each child of Root.XMLNSC must represent a valid XML construct for the top level of an XML document. The only field types that are valid in this position are XMLNSC.Comment or XMLNSC.ProcessingInstruction.   

Ensure that the message tree is structured correctly, and that each syntax element has a valid field type.


Please Note: "QQQ_LineItem" - this complex type contains a few more complex types within itself.[/quote]
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Mon Dec 12, 2016 5:25 am    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20696
Location: LI,NY

The error suggests that you trying to do something like
Code:
Root.XMLNSC.tag1
Root.XMLNSC.tag2
Root.XMLNSC.tag3

This would result in an invalid XML because it is missing it's XML root tag
You need something like
Code:
Root.XMLNSC.xmlroottag.tag1
Root.XMLNSC.xmlroottag.tag2
Root.XMLNSC.xmlroottag.tag3


Hope it helps
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
edd
PostPosted: Mon Dec 12, 2016 8:15 am    Post subject: Reply with quote

Novice

Joined: 18 Aug 2016
Posts: 14

Quote:
This would result in an invalid XML because it is missing it's XML root tag


Thanks fjb_saper, Fixed it with just adding a root tag in the "OutputRoot.XMLNSC.---".
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 » Need help in parsing a message
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.