|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
TDS problem |
« View previous topic :: View next topic » |
Author |
Message
|
Ward |
Posted: Fri Mar 23, 2007 11:01 am Post subject: TDS problem |
|
|
 Voyager
Joined: 27 Jun 2001 Posts: 98 Location: Europe
|
Hi,
I'm having a complex type with Delimiter = Group Terminator = ;
Only one repeating element in this complex type (Fieldx = a string).
This complex type in itself is encapsulated in another complex type with Delimiter = <CR><LF> and no Group Terminator.
In this complex type again one repeating element (Row_out = multiple Fieldx elements)
The idea is to output multiple rows with each row containing a series of Fieldx fields separated by a semi-column.
Both delimiters have Suppress Absent Element Delimiters = End of Type.
In the trace I can see the following structure:
Code: |
(0x01000021):MRM = (
(0x01000000):Row_out = (
(0x03000000):Fieldx = '01012001'
(0x03000000):Fieldx = 'SUB(UNK)'
(0x03000000):Fieldx = 'UNK'
...
(0x03000000):Fieldx = 'H'
(0x03000000):Fieldx = '4'
(0x03000000):Fieldx = ''
(0x03000000):Fieldx = 'AMO 01'
(0x03000000):Fieldx = ''
)
|
I would therefore expect to see this row end with:
Code: |
;H;4;;AMO 01;;<CR><LF>
|
Or at least that's the outcome I would like to see...
Instead I get the following:
Code: |
;H;4;;AMO 01;;<CR><LF>;
|
And I have absolutely no clue where that last ; comes from.
In an attempt to better understand things, I changed the Group Terminater of the Complex type around Fieldx from ; to =
This time I got the following result:
Code: |
;H;4;;AMO 01=<CR><LF>=
|
This got me even more confused...
Can anyone shed a light ?
Ward.
PS: using MBv5 CSD 4 on AIX |
|
Back to top |
|
 |
elvis_gn |
Posted: Fri Mar 23, 2007 11:22 am Post subject: |
|
|
 Padawan
Joined: 08 Oct 2004 Posts: 1905 Location: Dubai
|
Hi Ward,
Are you sure you do not have an extra 'Row_out' with no child elements ?
When you changed the Terminator to '=' I think the output you got should have been
Code: |
;H;4;;AMO 01;=<CR><LF>= |
I think you should not be using the terminator at all, then you would get
Code: |
;H;4;;AMO 01;<CR><LF> |
Regards. |
|
Back to top |
|
 |
kimbert |
Posted: Fri Mar 23, 2007 12:43 pm Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
This is the best problem description I have seen for many a long day. Thank you!
Not sure whether it was a typo on your part, but if fieldx is repeating, I would expect you to be setting the Repeating Element Delimiter to ; ( not the ordinary Delimiter). You do not need to set the Group Terminator to ; unless you want the final field on each line to end with a ;.
In other words, I'm agreeing with Elvis here. Remove the Group Terminator and check that you don't have an extra instance of the inner element in the message tree. |
|
Back to top |
|
 |
Ward |
Posted: Sat Mar 24, 2007 2:20 am Post subject: |
|
|
 Voyager
Joined: 27 Jun 2001 Posts: 98 Location: Europe
|
Elvis, Kimbert,
thanks for the replies...
1) am I sure not having an extra "Row_out" with no child elements ?
Yes and no:
Yes, I'm sure it's not there in the Root tree that I saw in the trace node just before writing to the queue.
No, I'm not sure the parser doesn't want to add one... changing the Suppress Absent Element Delimiters to Never in the complex type around Fieldx resulted in a load more semi-colums being output... like an extra Row_out with all empty Fieldx elements... but where does it come from ????
2) When you changed the Terminater to "=" the output should have been....
This would indeed have been a bit more consistant, but I tried it multiple times changing the Terminator back and forward... the outcome was consistantly like in my first message... Understand who can...
3) Not using the terminator at all
This gave me the following result:
Unfortunately we do want both semi-colomns and the <CR><LF> after this...
4) settingth Repeating Element Delimiter, not the ordinary delimiter...
For both types I have defined the Repeating Element Delimiter and the ordinary delimiter (with the same value, although I found out when using different values the Repeating Element Delimiter seems to win). The ordinary delimiter I have to fill in as I specify All Elements Delimited.
Cheers,
Ward. |
|
Back to top |
|
 |
|
|
 |
|
Page 1 of 1 |
|
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
|
|
|
|