Author |
Message
|
chirayu |
Posted: Thu Feb 16, 2012 4:16 am Post subject: |
|
|
Apprentice
Joined: 04 May 2011 Posts: 30
|
resolved the issue and it is working fine as expected..
thanks all for your help..
issue was because we were using OutputRoot = InputRoot , hence by default DFDL parser was being attached to my outputroot tree
and i was populating only one field out of all, leaving others contact admin.
I have removed that line and just used OutputRoot.BLOB.TEST=make_TLV(InputRoot.DFDL.Test) |
|
Back to top |
|
 |
kimbert |
Posted: Thu Feb 16, 2012 1:25 pm Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
I have just worked out what you were trying to do, and why you had a problem.
Here is what I thought you were trying to do:
1. Parse the input format
2. Copy the resulting message tree to OutputRoot.DFDL
3. Write OutputRoot using the DFDL parser with a different DFDL schema
I now realise that you were not trying to use DFDL to produce your output format. I just automatically assumed that you would do that. Your mistake in the message flow caused an exception to be reported from the DFDL parser. That just confirmed my ( wrong ) assumption.
So...why did you not try to use DFDL to write the TLV output format? I can think of three possible reasons:
a) you just assumed that DFDL would not be able to do it
b) you already had some ESQL code lying around, and decided to reuse it
c) you tried it, and couldn't make it work with DFDL
I would be very interested to know which one is the real reason.
btw, the DFDL specification is well able to support TLV for both parsing and writing. The implementation of DFDL shipped with the GA version of message broker v8.0 is able to parse TLV, but not write it. It is quite possible that a future version will support writing of TLV data. |
|
Back to top |
|
 |
chirayu |
Posted: Tue Mar 06, 2012 6:19 am Post subject: |
|
|
Apprentice
Joined: 04 May 2011 Posts: 30
|
give problem has been resolved and now able to make proper TLV as well.
Now i am trying to incorparate this independant bit in bigger flow, in which i am changing messaging domain with RCD (TDS - DFDL)
I have used following statements in compute node which is just before RCD node:
Code: |
SET OutputRoot.Properties.Encoding = 273;
SET OutputRoot.Properties.CodedCharSetId = 437;
SET OutputRoot.Properties.MessageSet = NULL;
SET OutputRoot.Properties.MessageType = '{}:Test';
SET OutputRoot.Properties.MessageFormat = NULL; |
and set DFDL as message domain and message type as {}:Test with reset both on RCD node.
But it after RCD, it gives me that DFDL tree but with error saying DFDL parser error -
Quote: |
Text:CHARACTER:CTDP3053E: Zoned text to number conversion error for element '#xscd(/schemaElement::Test/type::0/model::sequence/schemaElement::TOT_ORDLINE_SIZE)': (unknown) |
if i test this DFDL independatly giving same input, it runs fine.
could you please let me know if you see any issue here? |
|
Back to top |
|
 |
mqjeff |
Posted: Tue Mar 06, 2012 6:27 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
when you run the test it's likely not the same input.
The RCD might be trying convert the logical message tree rather than the flattened bitstream. |
|
Back to top |
|
 |
chirayu |
Posted: Tue Mar 06, 2012 7:02 am Post subject: |
|
|
Apprentice
Joined: 04 May 2011 Posts: 30
|
i have put trace node just before RCD and i am using the same input to test DFDL independantly.
is there any other way by which I can see out what exaclty is the problem? |
|
Back to top |
|
 |
kimbert |
Posted: Tue Mar 06, 2012 7:19 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Quote: |
problem has been resolved and now able to make proper TLV as well. |
What's 'proper TLV'. What was not 'proper' before? What did you do to make it work?
Quote: |
i am changing messaging domain with RCD (TDS - DFDL) |
Why not use TDS instead of DFDL in the entire flow? Surely DFDL can do anything that TDS can do?
Quote: |
is there any other way by which I can see out what exaclty is the problem? |
DFDL writes a *lot* of useful information into the WMB user trace. Take a debug-level user trace. |
|
Back to top |
|
 |
Vitor |
Posted: Tue Mar 06, 2012 7:25 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
kimbert wrote: |
DFDL writes a *lot* of useful information into the WMB user trace. Take a debug-level user trace. |
Which, just for increased clarity, is not the same thing as putting a trace node in the flow.
You probably know that; I'm just sayin'... _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
chirayu |
Posted: Tue Mar 06, 2012 10:19 pm Post subject: |
|
|
Apprentice
Joined: 04 May 2011 Posts: 30
|
Quote: |
Why not use TDS instead of DFDL in the entire flow? Surely DFDL can do anything that TDS can do?
|
DFLD can do expression occur count with arithmatic expression, which TDS can not do. |
|
Back to top |
|
 |
kimbert |
Posted: Wed Mar 07, 2012 2:15 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
What I meant to say was "Why not use DFDL instead of TDS in the entire flow? Surely DFDL can do anything that TDS can do? "
Sorry for the confusion. Looking forward to hearing your answer... |
|
Back to top |
|
 |
|