Author |
Message
|
sanks |
Posted: Thu Jul 28, 2005 3:07 pm Post subject: XMLTransformation output problem |
|
|
Apprentice
Joined: 21 Mar 2005 Posts: 27
|
Hi,
I have developed a messageflow having the following sequnce of nodes
O-->MQInput --->XMLTransformation--->Compute--->MQOut-->O
I put the XML message to queue of MQInput.
In turn XMLTransformation node transforms that XML message using XSLT
to another XML message and passes to Compute node where ESQL execute on that message.
The problem is that when I see this in debug mode that output message of XMLTransformation is came as BLOB and eventually, the ESQL of next compute node is not getting executed properly and return FALSE.
I just wann to know what properties to need to set in the XMLTransformation node so that I can see the output message as XML message which in turn can be proceed in ESQL of compute node correctly.
Thanks in advance for helping me.
Paul |
|
Back to top |
|
 |
sanks |
Posted: Thu Jul 28, 2005 5:29 pm Post subject: |
|
|
Apprentice
Joined: 21 Mar 2005 Posts: 27
|
Actually I did not get the InputRoot.XML node from the message comming from XMLTransformation node.
I have tested the corresponding xslt. It generates the desired result i.e another valid XML message.
Then why is that XML message going to the next Compute node without having Inputroot.XML node?
Please can any body help me.
Some body can ask me to make it more clear.
It is urgent. |
|
Back to top |
|
 |
JT |
Posted: Thu Jul 28, 2005 6:44 pm Post subject: |
|
|
Padawan
Joined: 27 Mar 2003 Posts: 1564 Location: Hartford, CT.
|
Quote: |
Then why is that XML message going to the next Compute node without having Inputroot.XML node? |
I've haven't used this node since v2.1 so I could be mistaken, but if I understood your question correctly, I would bet that the newly generated XML message produced by the XMLTransformation node wouldn't be seen as InputRoot.XML in the Compute node, it would be seen as OutputRoot.XML. |
|
Back to top |
|
 |
sanks |
Posted: Fri Jul 29, 2005 7:48 am Post subject: |
|
|
Apprentice
Joined: 21 Mar 2005 Posts: 27
|
I have tried that one in Compute node but i could not get the OutputRoot.XML.
I have a doubt, if the out XML message of XMLTransformation node is the input message next to Compute node, how come OutputRoot.XML will be in Compute Node?
FYI the message flow looks :
XML msg msg with BLOB
--------------->XMLTransformation------------------------->Compute
(No InputRoo.XML)
Within ESQL of Compute message
the following statement
DECLARE J INTEGER CARDINALITY(InputRoot.XML.POSLog.Transaction[]);
returns J=0.
But if I connect flow from XMLTransformation to MQOut I can see the expected XML transformed message in the output queue.
It looks very starnge to me.
I am stuck in it. |
|
Back to top |
|
 |
jefflowrey |
Posted: Fri Jul 29, 2005 7:59 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
What do you get from
MQInput --> XMLTransformation --> Tracenode --> MQOutput
? _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
sanks |
Posted: Fri Jul 29, 2005 8:11 am Post subject: |
|
|
Apprentice
Joined: 21 Mar 2005 Posts: 27
|
I get the desired result i.e transformed XML message in Tracenode file. |
|
Back to top |
|
 |
jefflowrey |
Posted: Fri Jul 29, 2005 8:13 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
sanks wrote: |
I get the desired result i.e transformed XML message in Tracenode file. |
Yes... Where? at Root.XML? Or somewhere else? _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
sanks |
Posted: Fri Jul 29, 2005 8:14 am Post subject: |
|
|
Apprentice
Joined: 21 Mar 2005 Posts: 27
|
MQInput --> XMLTransformation -------O-----> MQOutput
But in the breakpoint 'O', the debug message shows MQMD and BLOB.
No the XML content. |
|
Back to top |
|
 |
sanks |
Posted: Fri Jul 29, 2005 8:20 am Post subject: |
|
|
Apprentice
Joined: 21 Mar 2005 Posts: 27
|
If i specify the TraceNode file after XMLTranbsformation i get the exact transformed XML in the file.
if i specify the breakpoint after XMLTranbsformation node i get the BLOB content only (not the XML content) which in turn not get executed by the ESQL in Compute node.
I think i can make clear now. |
|
Back to top |
|
 |
jefflowrey |
Posted: Fri Jul 29, 2005 8:25 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
I meant, when the tracefile successfully shows the XML output, at what location in the message tree is the output written? _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
sanks |
Posted: Fri Jul 29, 2005 8:41 am Post subject: |
|
|
Apprentice
Joined: 21 Mar 2005 Posts: 27
|
Here is the input:
<?xml version="1.0" encoding="UTF-8"?>
<Log xmlns="http://www.nrf-arts.org/IXRetail/namespace/" xmlns:c360="http://www.360Commerce.com/POSLog2.1" xmlns:cc="http://www.circuitcity.com/POSLog2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.nrf-arts.org/IXRetail/namespace/ classpath://poslogv21/CCPOSLog.xsd">
<Transaction CancelFlag="false" OfflineFlag="false" TrainingModeFlag="false">
<RetailStoreID>00409</RetailStoreID>
<WorkstationID>129</WorkstationID>
</Transaction>
</Log>
Here is the output of XMLtransformation:
<?xml version="1.0" encoding="UTF-8"?>
<Log xmlns="http://www.nrf-arts.org/IXRetail/namespace/" xmlns:c360="http://www.360Commerce.com/POSLog2.1" xmlns:cc="http://www.circuitcity.com/POSLog2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.nrf-arts.org/IXRetail/namespace/ classpath://poslogv21/CCPOSLog.xsd">
<Transaction>
<LocationType xmlns=""></LocationType> <RetailStoreID>00409</RetailStoreID>
<WorkstationID>129</WorkstationID>
</Transaction>
</Log>
----XSLT add the BOLD element |
|
Back to top |
|
 |
jefflowrey |
Posted: Fri Jul 29, 2005 8:45 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
Okay.
What is your question? What is your problem?
I thought you weren't sure where to access the output from the XML Transformation node.
So that's why I keep asking what the trace shows for where the output is. And you keep not answering.
So what is your problem? _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
sanks |
Posted: Fri Jul 29, 2005 8:55 am Post subject: |
|
|
Apprentice
Joined: 21 Mar 2005 Posts: 27
|
I repetedly specify the problem in the message thred earlier.May be i was not clear.
Let me explain once again.
The msg flow contains the Compute node after XMLtransformation node.
When the ESQL of Compute node excute the following on the output XML msg of XMLtransformation node
DECLARE J INTEGER CARDINALITY(InputRoot.XML.Log[]);
it returns J=0;
And this is because (I guess) I have seen only the BLOB content in the message when I debug thru flowengine.
Why I am not getting the InputRoot.XML in the ESQL of Compute Node? That is the problem. |
|
Back to top |
|
 |
jefflowrey |
Posted: Fri Jul 29, 2005 9:01 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
Okay, that is the question I am trying to help you answer.
Post a section of the tracefile that contains the output from the XMLTransformation node. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
sanks |
Posted: Fri Jul 29, 2005 9:14 am Post subject: |
|
|
Apprentice
Joined: 21 Mar 2005 Posts: 27
|
This is the portion of output XML file in \WebSphere Business Integration Message Brokers\bin\XMLTTrace.log:
<?xml version="1.0" encoding="UTF-8"?>
<Log xmlns="http://www.nrf-arts.org/IXRetail/namespace/" xmlns:c360="http://www.360Commerce.com/POSLog2.1" xmlns:cc="http://www.circuitcity.com/POSLog2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.nrf-arts.org/IXRetail/namespace/ classpath://poslogv21/CCPOSLog.xsd">
<Transaction>
<LocationType xmlns=""></LocationType>
<RetailStoreID>00409</RetailStoreID>
<WorkstationID>129</WorkstationID>
</Transaction>
</Log> |
|
Back to top |
|
 |
|