Author |
Message
|
cloucas |
Posted: Thu Mar 16, 2006 11:48 pm Post subject: Hex Tag Delimiters |
|
|
Apprentice
Joined: 10 Mar 2006 Posts: 37
|
I have defined a tagged delimited format of fields. I am trying to define the fields (with each field's tag) and am faced with the following problem:
The delimiters themselves are composed of two bytes represented by two hex values (for example 5D01). How do I enter these values into the Toolkit's Field Identification Tag textbox? I have tried <U+005D><U+0001> but I get an error saying that the tag length should be two (as I have already configured the physical format to be).
Any ideas?
cloucas |
|
Back to top |
|
 |
elvis_gn |
Posted: Fri Mar 17, 2006 12:36 am Post subject: |
|
|
 Padawan
Joined: 08 Oct 2004 Posts: 1905 Location: Dubai
|
Hi cloucas,
Are you saying that your message is coming in Hex format ?
Or is the delimiter only coming in Hex...
Did you try the HexBinary option....now sure if it'll work ofcourse
Regards. |
|
Back to top |
|
 |
fjb_saper |
Posted: Fri Mar 17, 2006 12:45 am Post subject: Re: Hex Tag Delimiters |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
cloucas wrote: |
I have defined a tagged delimited format of fields. I am trying to define the fields (with each field's tag) and am faced with the following problem:
The delimiters themselves are composed of two bytes represented by two hex values (for example 5D01). How do I enter these values into the Toolkit's Field Identification Tag textbox? I have tried <U+005D><U+0001> but I get an error saying that the tag length should be two (as I have already configured the physical format to be).
Any ideas?
cloucas |
Have you tried something like U0x5D01 ? or assigning the hex value to an identifier first and then the identifier to the delimiter?
Have fun  _________________ MQ & Broker admin |
|
Back to top |
|
 |
cloucas |
Posted: Fri Mar 17, 2006 1:25 am Post subject: |
|
|
Apprentice
Joined: 10 Mar 2006 Posts: 37
|
I have tried U0x5D01 but I get the same error in the toolkit.
Initially I had designed the tag length to be 2 and entered the ASCII equivalent of the two bytes (e.g. A0 for C1C0). This worked. However for other delimiters that are non printable characters I need a means of entering their ASCII equivalent into the tag field of the element definition.
This is how this came up.
Regards
cloucas |
|
Back to top |
|
 |
kimbert |
Posted: Fri Mar 17, 2006 1:40 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Quote: |
I get an error saying that the tag length should be two |
Was the error issued by the message set editor or by the runtime? |
|
Back to top |
|
 |
kimbert |
Posted: Fri Mar 17, 2006 2:40 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
I've just realised what's going on. I should have spotted it before.
The error message is complaining about the tag, not the delimiter. Presumably, you have set 'Tag Length' to 2, and have not set a tag for the element in question.
At this point you need to ask yourself a very important question. Do you really need a tag ( and you just forgot to set it)? Or do you only need a delimiter in between your elements? If the latter, then you should change the Data Element Separation on the Complex Type to 'All Elements Delimited'. Let me know if you want me to explain this a bit more. |
|
Back to top |
|
 |
cloucas |
Posted: Fri Mar 17, 2006 3:35 am Post subject: |
|
|
Apprentice
Joined: 10 Mar 2006 Posts: 37
|
Let me try to explain how our messages look like:
For every field we have a field delimiter (tag) before the field data. We have no separator between the delimiter and the data. Furthermore, fields are separated by a field separator (Hex 11). As an example we may have:
A07056.1307399405.X3Y.BXY
The above example is a message with four fields, first with delimiter A0, second with delimiter 13, third with delimiter X3 and fourth with delimiter BX.
Now as you can see, delimiter length is 2. In our host application, delimiters are defined as two bytes represented by four hex values. So in this case the first delimiter above is translated to C1F0 on the mainframe.
I need now to define a number of these delimiters in my message set on the Broker. I have all the delimiter definitions in the host format (i.e. hex notation, or C1F0 above). For this particular instance C1F0 is translated to 13, but there are many other delimiters such as D501 that, when translated to ASCII cannot be 'typed in' into the Tag textbox in the Broker toolkit. What I am after is a way to enter those tags into the Broker.
I hope I haven't confused you more on this! Let me know if you need anything else.
thanks
cloucas |
|
Back to top |
|
 |
kimbert |
Posted: Fri Mar 17, 2006 5:25 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
No, I'm not confused. Your approach is fine, and you seem to understand all the issues. Unfortunately, you have hit a limitation in the TDS parser - you cannot specify tag with a binary value. If you enter <U+005D> in the Tag field, it will assume that you want a text tag '<U+005D>'. |
|
Back to top |
|
 |
dsriksha |
Posted: Fri Mar 17, 2006 5:59 am Post subject: |
|
|
 Voyager
Joined: 27 Feb 2005 Posts: 95
|
If that is the actual scenario
1. Define A0 as Tag
2. Define delimters as 'Actual delimiter+the tag appering before field "
eg. your delimiters .13 .X3 and so on.
Edit:
My Bad: You can try by creating extra field in Messageset and setting the delimiter (say second one) then set the options to donot suppress delimiters on absent fields
This may be some light on your shade. |
|
Back to top |
|
 |
kimbert |
Posted: Fri Mar 17, 2006 6:20 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
If A0 is really a single byte (0xA0) then that may not be possible (unless 0xA0 maps to a printable character).
Making the tags part of the delimiter will only work if
a) the tagged fields always occur in the same order
b) none of the tagged fields are ever missing.
Usually, this is not true of tagged data - that's why it is tagged. |
|
Back to top |
|
 |
dsriksha |
Posted: Fri Mar 17, 2006 6:50 am Post subject: |
|
|
 Voyager
Joined: 27 Feb 2005 Posts: 95
|
Or,
Create a separate complextype for each field and set "Group terminator "and "Delimiter".
This will work. |
|
Back to top |
|
 |
dsriksha |
Posted: Fri Mar 17, 2006 7:27 am Post subject: |
|
|
 Voyager
Joined: 27 Feb 2005 Posts: 95
|
One more suggestion: You need play around with Group terminator or indicator.
I just tested above method ( not exactly as your data) , but method is working. Let me know if you need anything. |
|
Back to top |
|
 |
kimbert |
Posted: Fri Mar 17, 2006 8:28 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Quote: |
method is working. |
drishka: I'd like to know how you did this. Does your method cope with messages where the tagged fields are in random order, and some of them are missing? |
|
Back to top |
|
 |
dsriksha |
Posted: Fri Mar 17, 2006 9:27 am Post subject: |
|
|
 Voyager
Joined: 27 Feb 2005 Posts: 95
|
kimbert wrote: |
Quote: |
method is working. |
drishka: Does your method cope with messages where the tagged fields are in random order, and some of them are missing? |
This I donot know, since I didnt tested( I believe it may work).
What I did is.
Ina MessageDefinition file
1. created message type "TEST1"
2. In TEST1 created a localgroup sequence
and created 2 local elements XX1, YY1
3. for this local group I set delimiters to <U+0011>
4. Created 2 complextypes t_X, t_Y.
5.created local element XX for t_X and YY for t_Y
6. set group indicatorsfor t_X, t_Y as I needed.
7. Local elements in Localgroup(sequence) XX1, YY1 are set to complex types to t_X, t_Y respectively. |
|
Back to top |
|
 |
dsriksha |
Posted: Fri Mar 17, 2006 10:10 am Post subject: |
|
|
 Voyager
Joined: 27 Feb 2005 Posts: 95
|
kimbert wrote: |
Quote: |
method is working. |
drishka: Does your method cope with messages where the tagged fields are in random order, and some of them are missing? |
This I donot know, since I didnt tested( I believe it may work).
What I did is.
Ina MessageDefinition file
1. created message type "TEST1"
2. In TEST1 created a localgroup sequence
and created 2 local elements XX1, YY1
3. for this local group I set delimiters to <U+0011>
4. Created 2 complextypes t_X, t_Y.
5.created local element XX for t_X and YY for t_Y
6. set group indicatorsfor t_X, t_Y as I needed.
7. Local elements in Localgroup(sequence) XX1, YY1 are set to complex types to t_X, t_Y respectively. |
|
Back to top |
|
 |
|