Author |
Message
|
KittieKat |
Posted: Fri Mar 08, 2002 3:16 pm Post subject: |
|
|
Apprentice
Joined: 17 Dec 2001 Posts: 31
|
Hi,
My input message consists of 2 string fields of unknow length with a pipe delimiter, here is what it looks like:
Field1|Field2
Now in MQSI, I created a message with 2 elements (Field1 and Field2). Can someone please tell me where can I specify the pipe delimiter so the MRM parser knows where Field1 ends and Field2 starts?
Thanks,
Alison |
|
Back to top |
|
 |
mverh |
Posted: Fri Mar 08, 2002 3:24 pm Post subject: |
|
|
Voyager
Joined: 06 Mar 2002 Posts: 97
|
Alison, this can be done easily with Neon. I don't believe this can be done using the MRM. By jumping through a whole bunch of hoops in WMQI you could do it by manipulating a BLOB. Refer to the V2.1 ESQL reference, the section that covers how to manipulate a varying length BLOB. |
|
Back to top |
|
 |
KittieKat |
Posted: Fri Mar 08, 2002 3:36 pm Post subject: |
|
|
Apprentice
Joined: 17 Dec 2001 Posts: 31
|
Hi, thanks for that speedy response. Currently we are using NEON formatter to parse the message, but we would like to move away from NEON at this point. Is there any way this can be done in MQSI 2.0.2 without using NEON? Thanks.
|
|
Back to top |
|
 |
kirani |
Posted: Fri Mar 08, 2002 4:56 pm Post subject: |
|
|
Jedi Knight
Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA
|
What is your input message format?
Since the incoming string field length is unknown, what element length have you specified in MRM for Field1 and Field2?
|
|
Back to top |
|
 |
KittieKat |
Posted: Mon Mar 11, 2002 11:08 am Post subject: |
|
|
Apprentice
Joined: 17 Dec 2001 Posts: 31
|
Hi Kirani,
I did not specify a field length when I created the fields, because the field length are unknown to me. In the past, I have been using NEON format to parse this kind of input message, and Field1 has an input control called "DelimitedByPipe" that detects the pipe at the end of Field1. Now I want to migrate/recreate these input formats in MRM, is there a way to create something similar to the input control "DelimitedByPipe" in MQSI 2.0.2? |
|
Back to top |
|
 |
KittieKat |
Posted: Mon Mar 11, 2002 11:08 am Post subject: |
|
|
Apprentice
Joined: 17 Dec 2001 Posts: 31
|
Hi Kirani,
I did not specify a field length when I created the fields, because the field length are unknown to me. In the past, I have been using NEON format to parse this kind of input message, and Field1 has an input control called "DelimitedByPipe" that detects the pipe at the end of Field1. Now I want to migrate/recreate these input formats in MRM, is there a way to create something similar to the input control "DelimitedByPipe" in MQSI 2.0.2? |
|
Back to top |
|
 |
philipaby |
Posted: Mon Mar 11, 2002 11:45 am Post subject: |
|
|
Novice
Joined: 09 Mar 2002 Posts: 13
|
Hi Kittiekat,
You can do this using the MRM. First when you create a message set. You add the physical format 'Tagged/Delimited Format'(right click on the message set and Add...Physical...). Once you do that define two elements Field1 and Field2 of say type STRING. Create a compound type in the 'Types' folder let's say name 'KittieType'. When you create the compund type select it and then you will see a 'tagged/delimited format' tab..Click on that and in the 'Data Element Separation' field select 'All Elements Delimited'..Once that is done type in the delimiter '|'. Once all this is done and checked in. Create a message of type the compound type you created i.e. KittieKat and that's it. You can use the MRM message which will parse an input stream Field1|Field2 without any length specified. Please note that when you create the fields specify the length to be 0.
I am assuming that you had just two fields.
Regards
Aby |
|
Back to top |
|
 |
philipaby |
Posted: Mon Mar 11, 2002 11:46 am Post subject: |
|
|
Novice
Joined: 09 Mar 2002 Posts: 13
|
Hi Allison,
The methods I had specified for were for MQSI 2.1. I am not sure which version you are using.
Aby |
|
Back to top |
|
 |
KittieKat |
Posted: Mon Mar 11, 2002 1:26 pm Post subject: |
|
|
Apprentice
Joined: 17 Dec 2001 Posts: 31
|
Hi Aby,
We are using MQSI 2.0.2, I couldn't find the physical format 'Tagged/Delimited Format', I guess version 2.0.2 doesn't have that option. Any ideas on how to implement the pipe delimiter in 2.0.2? Does WMQI 2.1 have all the parsing capabilies as NEON formatter? Thanks.
-Alison |
|
Back to top |
|
 |
kirani |
Posted: Mon Mar 11, 2002 1:26 pm Post subject: |
|
|
Jedi Knight
Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA
|
Alison,
I don't think you can define a string element in MQSI 2.0.2 (MRM) without specifying it's Length. As Aby said, you can use Tagged/Delimited Format in WMQI 2.1 version.
If you could state your Transformation requiremetn here (your input and output message layout), we can explore further to see if it can be done using other message format(BLOB) or not.
Kiran
|
|
Back to top |
|
 |
KittieKat |
Posted: Mon Mar 11, 2002 1:39 pm Post subject: |
|
|
Apprentice
Joined: 17 Dec 2001 Posts: 31
|
Hi Kirani,
Here's my situation, the input message consists of 9 fields of strings (of unknown length) separated by the pipe delimiter. so it looks something like this:
Field1|Field2|Field3|... |Field9|
In the past, we've been using NEON input format to separate each field in the message using the pipe delimiter. The NEON output format simply attaches a Prefix and a Sufix to each field in the input format.
Now I would like to recreate this NEON input format in MRM. I started by creating 9 elements for the 9 fields (without specifying the field length). But I don't know how to create the pipe delimiter in MRM (in MQSI 2.0.2). Would it be easier to accomplish this if I just migrated to WMQI 2.1? Thanks.
-Alison |
|
Back to top |
|
 |
kirani |
Posted: Mon Mar 11, 2002 2:36 pm Post subject: |
|
|
Jedi Knight
Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA
|
Alison,
After looking at your requirement, following options come to my mind:
1. Write a plug-in, which does this transformation (Attributes could be Prefix String, Sufix String, Field Delimiter).
2. Write a complex ESQL code to do this. (This code may not be generic)
3. Migrate to ver WMQI 2.1 which provides you this functionality. (Migration to higher version should be planned properly).
Kiran
|
|
Back to top |
|
 |
Nick Lethbridge |
Posted: Tue Mar 12, 2002 4:48 am Post subject: |
|
|
 Voyager
Joined: 13 Aug 2001 Posts: 88 Location: Santander, UK
|
Alison,
Like Kiran, I think you are going to struggle to implement a 'non-NEON' approach for pipe-delimited messages with v2.0.2.
You could write a parser plugin, but there will be a development/maintenance overhead.
An ESQl solution would be extremely time-consuming and complicated.
I would suggest using the MQSIRules node (together with your existing Formats/Rules) with MQSI v2.0.2, then plan for an upgrade to WMQI v2.1.
Regards,
Nick. |
|
Back to top |
|
 |
philipaby |
Posted: Tue Mar 12, 2002 6:20 am Post subject: |
|
|
Novice
Joined: 09 Mar 2002 Posts: 13
|
Hi Allison,
I am not sure on whether this pipe delimited can be done in 2.0 because I went from 1.1 to 2.1 straight. Looking at the replies on this question I think you have a few replies on that. Sorry I could not be of much help. I also think that once you migrate to MQSI 2.1 you should be safe in doing this easily.
Regards
Aby
[ This Message was edited by: philipaby on 2002-03-12 06:22 ] |
|
Back to top |
|
 |
KittieKat |
Posted: Tue Mar 12, 2002 7:39 am Post subject: |
|
|
Apprentice
Joined: 17 Dec 2001 Posts: 31
|
Hi,
Thanks for everyone's help. I will try the ESQL approach and see how it turns out. One more thing, if I do migrate to WMQI 2.1 would that completely eliminate the need for NEON Formatter and NEON Rules? Does WMQI have the all the parsing capabilities in NEON? We really would like to move away from NEON at this point. Thanks.
-Alison |
|
Back to top |
|
 |
|