Author |
Message
|
dsriksha |
Posted: Mon Jan 09, 2006 6:37 am Post subject: TDS Fixedlength record delimiters problem[Solved] |
|
|
 Voyager
Joined: 27 Feb 2005 Posts: 95
|
Hi all,
I have a problem in assigning <BEL> <ETX> characters in Compute node.
Am converting XML to fixed length record. This converted fixed length record contains delimiters 'BEL' and end of the record as ETX.
I created a message set (TDS) and assigning the values to the fields say "Delimiter" in compute node. The whole thing am converting to EBCDIC format.
I tried For BEL
SET OutputRoot.MRM.RequestMessageBody.Delimiter2=Cast(x'2F 'as BLOB ccsid 37);
SET OutputRoot.MRM.RequestMessageBody.Delimiter2= ('<U+002F>);
Am using RFHUTILC to put the messages. so, in output queue am not seeing the correct hexvalue for the BEL and ETX in EBCIDIC format.
AM ON: WBIMB5.0.6
Broker on Windows NT.
My toolkit is on WINXP
Itried a lot but in vain.
Last edited by dsriksha on Mon Jan 09, 2006 1:33 pm; edited 1 time in total |
|
Back to top |
|
 |
kimbert |
Posted: Mon Jan 09, 2006 7:39 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Quote: |
Itried a lot but in vain. |
I'm not surprised. Your approach is completely wrong.
You should:
- Delete the element called 'Delimiter2' from your message model (and any other elements which are supposed to represent delimiters).
- Go to the TDS properties of the parent complex type.
- Set 'Data Element Separation to 'All Elements Delimited'
- Set 'Delimiter' to <BEL> or <ETX> or whatever.
If you need any more help, first read the docs, then post some more details about your input and output messages. |
|
Back to top |
|
 |
dsriksha |
Posted: Mon Jan 09, 2006 8:14 am Post subject: |
|
|
 Voyager
Joined: 27 Feb 2005 Posts: 95
|
THX Kimbert:
I have a XML Data as input message to be converted as a Flatfile record.
This record is of 2 sections MessageHeader which is of Fixed Length and
MessageBody- with delimiters <BEL> and end of the delimiter is <ETX>, Say for example in MessageBody: data1<BEL>data2<BEL>space<ETX>
My queston is how can i set <ETX> as a end of record.
I created Parent Message contains 2 elements MessageHeader and MessageBody. when I set parent Type to allelements delimited am getting delimters befor the message body.
Can u please help me on this. |
|
Back to top |
|
 |
jefflowrey |
Posted: Mon Jan 09, 2006 8:27 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
The <ETX> is probably what TDS knows as a Group Terminator.
The <BEL> is definitely a delimiter.
As kimbert said, if you need more help FIRST read the documentation. Then post specific examples of what you've tried and what the results are. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
dsriksha |
Posted: Mon Jan 09, 2006 8:50 am Post subject: |
|
|
 Voyager
Joined: 27 Feb 2005 Posts: 95
|
Hi Jeff Thanx. Please dont get me wrong. I studied the documentation about TDS message sets. And see some examples too.
to structure my message format
What I did is.
Modeled a TDS wire format.
Created a Parent message type as MYMESSAGE with local elements Mesaage Header and MessageBody.
Parent CoplexType set all elements delimited. created 2 other complex types and set to Fixed length and all elements delimited.
as my Out put message h1h2h3d1<bel>d2<bel>space<ETX>
h1h2h3 ---Message Header
<bel>d2<bel>space<ETX> ---Message Body
It s like my problem is figuring out the structure. since I cannot set the Parent complex type to Either fixed length and all elements delimited.
how do I jump start on this? |
|
Back to top |
|
 |
dsriksha |
Posted: Mon Jan 09, 2006 9:10 am Post subject: |
|
|
 Voyager
Joined: 27 Feb 2005 Posts: 95
|
Thanx Jeff
I solved the <ETX> thing . However, unable to solve the Parent message Type declaration. |
|
Back to top |
|
 |
jefflowrey |
Posted: Mon Jan 09, 2006 9:23 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
There's a difference between properties set on types and properties set on elements of types.
Your MYMESSAGE type should hold two elements.
One is the element of the Header type and one is the element of the Body type.
Then you create an element of the MYMESSAGE type that is your message.
Then on the Body element of the message, you can set the Group Terminator to <ETX>. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
dsriksha |
Posted: Mon Jan 09, 2006 9:50 am Post subject: |
|
|
 Voyager
Joined: 27 Feb 2005 Posts: 95
|
I did the same way. However, where I stuck is when I try to set the MessageBody type to allelements delimited it is looking at the parent type to set all
elements delimited. but my parent type also contains a FixedeLength MessageBody Type.
as a tricky part I set the Perent type to allelements delimited and set the delimiter to SPACE. Where i have a flexibility in reducing the length. But a problem is am seeing the spaces before the MessageHeader starts.
as my output message format is
h1h2h3d1<bel>d2<bel>space<ETX>
Thanks for any help. |
|
Back to top |
|
 |
dsriksha |
Posted: Mon Jan 09, 2006 10:54 am Post subject: |
|
|
 Voyager
Joined: 27 Feb 2005 Posts: 95
|
Jeff and Kimbert any help.....  |
|
Back to top |
|
 |
jefflowrey |
Posted: Mon Jan 09, 2006 11:02 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
You previously didn't indicate that there was a fixed length header in the mix - so Kimbert said (properly) that you should use 'All Elements Delimited'.
Since it is actually not the case that all of your elements are delimited, you need to use a differnt D.E.S. (Data Element Separation) property for the message type.
From the list of choices here, what seems like it best fits your message - where some elements are fixed length and some elements are delimited? _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
dsriksha |
Posted: Mon Jan 09, 2006 12:09 pm Post subject: |
|
|
 Voyager
Joined: 27 Feb 2005 Posts: 95
|
I tried all the types. Because I set the MessageBody to all elements delimited , when I changed the Parent complex type its showing error.
am treating MessageBody and MessageHeader 2 different element types.
Am trying to create new output message. |
|
Back to top |
|
 |
jefflowrey |
Posted: Mon Jan 09, 2006 12:16 pm Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
You need to set one Data Element Separation value on the Message type.
You need to set a different Data Element Separation value on the Header type.
You need to set a third Data Element Separation value on the Body type.
The Header type is fixed length.
The body type is delimited.
The Message type needs to be set to indicate that there are both fixed length elements and delimited elements.
There is only one possible choice for the Message type Data Element Separation. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
dsriksha |
Posted: Mon Jan 09, 2006 12:44 pm Post subject: |
|
|
 Voyager
Joined: 27 Feb 2005 Posts: 95
|
If you are talking about Tagged Encoded Length then my header length is more than 400 bytes. Believe me am trying hard. |
|
Back to top |
|
 |
jefflowrey |
Posted: Mon Jan 09, 2006 1:26 pm Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
dsriksha wrote: |
If you are talking about Tagged Encoded Length then my header length is more than 400 bytes. Believe me am trying hard. |
No, I'm not talking about Tagged Encoding Length.
I'm talking about Variable Elements Delimited. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
dsriksha |
Posted: Mon Jan 09, 2006 1:32 pm Post subject: |
|
|
 Voyager
Joined: 27 Feb 2005 Posts: 95
|
I would like to Thank Kimbert and Jeff. It solved. |
|
Back to top |
|
 |
|