ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » WBIMB "CAST" question

Post new topic  Reply to topic
 WBIMB "CAST" question « View previous topic :: View next topic » 
Author Message
schroederms
PostPosted: Tue Oct 25, 2005 6:10 am    Post subject: WBIMB "CAST" question Reply with quote

Disciple

Joined: 21 Jul 2003
Posts: 169
Location: IA

I'm trying to take four XML tags and concatenate them into one BLOB message to be put onto a queue. It is actually causing the compute failure node to fire. Can someone tell me how to get these four tags cast into a BLOB.

Thanks,
Mike

Here is my compute node EQSL:

CREATE COMPUTE MODULE Build_Output_to_Q_QMGR_Compute1
CREATE FUNCTION Main() RETURNS BOOLEAN
BEGIN

DECLARE I INTEGER 1;
DECLARE J INTEGER CARDINALITY(InputRoot.*[]);
WHILE I < J DO
SET OutputRoot.*[I] = InputRoot.*[I];
SET I = I + 1;
END WHILE;


DECLARE myRef REFERENCE to InputRoot.XML."Z_RFC_TRIGGER_TRFC.Response".ZNA_CONFIR.item;


SET OutputRoot.MQMD.Persistence = 1;

SET Environment.RFCDATA.CREDAT = myRef.CREDAT;
SET Environment.RFCDATA.CRETIM = myRef.CRETIM;

SET OutputRoot.BLOB.BLOB = CAST(myRef.SDATA1 as BLOB) ||
CAST(myRef.SDATA2 as BLOB) ||
CAST(myRef.SDATA3 as BLOB) ||
CAST(myRef.SDATA4 as BLOB);

SET OutputLocalEnvironment.Destination.MQ.DestinationData.queueName = myRef.QUEUE;
SET OutputLocalEnvironment.Destination.MQ.DestinationData.queueManagerName = myRef.QUEUEMGR;

RETURN TRUE;

END;
END MODULE;




Here is the Input copied from a trace node:

(0x01000000):SDATA1 = (
(0x02000000): = '120000000000000000000000
20050519131958DQD0001 MSGSRV.POVI.FROMR3 <?XML VERSION='1.0' E
NCODING='ISO-88'
)
(0x01000000):SDATA2 = (
(0x02000000): = '59-1'?><RESPONSE><CONTROL><ORIGINATOR>POVI</ORIGINATOR><ORIGIN_DATETIME></ORIGIN_DATETIME><SERVICE>POVI
_SAP</SERVICE><FUNCTION>Z_MSRV_POVI_SALE_ORDER</FUNCTION><ENVIRONMENT>DV2120</ENVIRONMENT><VERSION>1.0</VERSION><LOCATOR></LOCATOR><
SERIAL></SERIAL'
)
(0x01000000):SDATA3 = (
(0x02000000): = '><DOCUMENTRECORDS></DOCUMENTRECORDS></CONTROL><STATUS><CODE>0</CODE><DESCRIPTION>SUCCESS</DESCRIPTION><
CREATE_DATETIME></CREATE_DATETIME></STATUS><PO_NUMBER></PO_NUMBER><PROCESSING_STATUS>000</PROCESSING_STATUS><RESULT>4300000631</RESU
LT></RESPONSE>'
)
(0x01000000):SDATA4 =
)


Here is the error:

(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = 'SET OutputRoot.BLOB.BLOB = CAST(myRef.SDATA1 AS BLOB) || CAST(myRef.SDATA2 AS BLOB) || CAST(myRef.SDATA
3 AS BLOB) || CAST(myRef.SDATA4 AS BLOB);'
)
(0x01000000):RecoverableException = (
(0x03000000):File = '/build/S500_P/src/DataFlowEngine/ImbRdl/ImbRdlTypeCast.cpp'
(0x03000000):Line = 204
(0x03000000):Function = 'SqlTypeCast::evaluate'
(0x03000000):Type = ''
(0x03000000):Name = ''
(0x03000000):Label = ''
(0x03000000):Text = 'Error casting from %3 to %4'
(0x03000000):Catalog = 'BIPv500'
(0x03000000):Severity = 3
(0x03000000):Number = 2521
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = '.Build_Output_to_Q_QMGR_Compute1.Main'
)
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = '20.30'
)
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = 'CHARACTER'
)
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = 'BLOB'
)
(0x01000000):RecoverableException = (
(0x03000000):File = '/build/S500_P/src/CommonServices/ImbValue.cpp'
(0x03000000):Line = 673
(0x03000000):Function = 'ImbValue::fromCharacter'
(0x03000000):Type = ''
(0x03000000):Name = ''
(0x03000000):Label = ''
([color=red]0x03000000):Text = 'String is not of correct form for byte array. Must consist of only 0..9,a..f,A..Z' (0x03000000):Catalog = 'BIPv500'
(0x03000000):Severity = 3
(0x03000000):Number = 2590
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = '120000000000000000000000
20050519131958DQD0001 MSGSRV.POVI.FROMR3 <?XML VERSION='1.
0' ENCODING='ISO-88'
)
)
)
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Tue Oct 25, 2005 6:16 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

change "CAST (xxx as BLOB)" to "Cast (xxx as BLOB CCSID InputRoot.Properties.CodedCharSetID)".
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
schroederms
PostPosted: Tue Oct 25, 2005 6:23 am    Post subject: Reply with quote

Disciple

Joined: 21 Jul 2003
Posts: 169
Location: IA

thanks for the reply.

I changed the ESQL:

SET OutputRoot.BLOB.BLOB = CAST(myRef.SDATA1 as BLOB CCSID InputRoot.Properties.CodedCharSetID) ||
CAST(myRef.SDATA2 as BLOB CCSID InputRoot.Properties.CodedCharSetID) ||
CAST(myRef.SDATA3 as BLOB CCSID InputRoot.Properties.CodedCharSetID) ||
CAST(myRef.SDATA4 as BLOB CCSID InputRoot.Properties.CodedCharSetID);


However I still get the same error as:

(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = 'SET OutputRoot.BLOB.BLOB = CAST(myRef.SDATA1 AS BLOB CCSID InputRoot.Properties.CodedCharSetID) || CAST
(myRef.SDATA2 AS BLOB CCSID InputRoot.Properties.CodedCharSetID) || CAST(myRef.SDATA3 AS BLOB CCSID InputRoot.Properties.CodedCharSe
tID) || CAST(myRef.SDATA4 AS BLOB CCSID InputRoot.Properties.CodedCharSetID);'
)
(0x01000000):RecoverableException = (
(0x03000000):File = '/build/S500_P/src/DataFlowEngine/ImbRdl/ImbRdlTypeCast.cpp'
(0x03000000):Line = 204
(0x03000000):Function = 'SqlTypeCast::evaluate'
(0x03000000):Type = ''
(0x03000000):Name = ''
(0x03000000):Label = ''
(0x03000000):Text = 'Error casting from %3 to %4'
(0x03000000):Catalog = 'BIPv500'
(0x03000000):Severity = 3
(0x03000000):Number = 2521
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = '.Build_Output_to_Q_QMGR_Compute1.Main'
)
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = '20.30'
)
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = 'CHARACTER'
)
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = 'BLOB'
)
(0x01000000):RecoverableException = (
(0x03000000):File = '/build/S500_P/src/CommonServices/ImbValue.cpp'
(0x03000000):Line = 673
(0x03000000):Function = 'ImbValue::fromCharacter'
(0x03000000):Type = ''
(0x03000000):Name = ''
(0x03000000):Label = ''
(0x03000000):Text = 'String is not of correct form for byte array. Must consist of only 0..9,a..f,A..Z'
(0x03000000):Catalog = 'BIPv500'
(0x03000000):Severity = 3
(0x03000000):Number = 2590
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = '120000000000000000000000
20050519131958DQD0001 MSGSRV.POVI.FROMR3 <?XML VERSION='1.
0' ENCODING='ISO-88'
)
)
Back to top
View user's profile Send private message
schroederms
PostPosted: Tue Oct 25, 2005 9:06 am    Post subject: Reply with quote

Disciple

Joined: 21 Jul 2003
Posts: 169
Location: IA

I'm getting closer by using a BITSTREAM, however now I'm getting the complete input message ever time for the BITSTREAM casting. Here is my ESL:

SET OutputRoot.BLOB.BLOB = BITSTREAM(InputRoot.XML."Z_RFC_TRIGGER_TRFC.Response".ZNA_CONFIR.item.SDATA1) ||
BITSTREAM(InputRoot.XML."Z_RFC_TRIGGER_TRFC.Response".ZNA_CONFIR.item.SDATA2) ||
BITSTREAM(InputRoot.XML."Z_RFC_TRIGGER_TRFC.Response".ZNA_CONFIR.item.SDATA3) ||
BITSTREAM(InputRoot.XML."Z_RFC_TRIGGER_TRFC.Response".ZNA_CONFIR.item.SDATA4);

Can the BITSTREAM ponit to an XML tag, or does it always bring back the complete message?


Here is the reults in the output queue:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<Z_RFC_TRIGGER_TRFC.Response>
<ERROR_MSG>PROCESSING</ERROR_MSG>
<ZNA_CONFIR>
<item>
<MANDT>120</MANDT>
<ERROR_CODE>00000</ERROR_CODE>
<DOCNUM>0000000000000000</DOCNUM>
<DOCREL/>
<STATUS/>
<CIMTYP/>
<RCVPOR/>
<RCVPRT/>
<RCVPRN/>
<SNDPOR/>
<SNDPRT/>
<SNDPRN/>
<CREDAT>2005-07-08</CREDAT>
<CRETIM>10:38:07</CRETIM>
<QUEUEMGR>DC1Q000</QUEUEMGR>
<QUEUE>DARRIN.Q</QUEUE>
<PROC_STAT/>
<SDATA1>120000000000000000000000 20050708103807DQD0001 MSGSRV.POVI.FROMR3 &lt;?XML VERSION='1.0' ENCODING='ISO-88</SDATA1>
<SDATA2>59-1'?&gt;&lt;RESPONSE&gt;&lt;CONTROL&gt;&lt;ORIGINATOR&gt;POVI&lt;/ORIGINATOR&gt;&lt;ORIGIN_DATETIME&gt;&lt;/ORIGIN_DATETIME&gt;&lt;SERVICE&gt;POVI_SAP&lt;/SERVICE&gt;&lt;FUNCTION&gt;Z_MSRV_POVI_SALE_ORDER&lt;/FUNCTION&gt;&lt;ENVIRONMENT&gt;DV2120&lt;/ENVIRONMENT&gt;&lt;VERSION&gt;1.0&lt;/VERSION&gt;&lt;LOCATOR&gt;&lt;/LOCATOR&gt;&lt;SERIAL&gt;&lt;/SERIAL</SDATA2>
<SDATA3>&gt;&lt;DOCUMENTRECORDS&gt;&lt;/DOCUMENTRECORDS&gt;&lt;/CONTROL&gt;&lt;STATUS&gt;&lt;CODE&gt;0&lt;/CODE&gt;&lt;DESCRIPTION&gt;SUCCESS&lt;/DESCRIPTION&gt;&lt;CREATE_DATETIME&gt;&lt;/CREATE_DATETIME&gt;&lt;/STATUS&gt;&lt;PO_NUMBER&gt;&lt;/PO_NUMBER&gt;&lt;PROCESSING_STATUS&gt;000&lt;/PROCESSING_STATUS&gt;&lt;RESULT&gt;4300000645&lt;/RESULT&gt;&lt;/RESPONSE&gt;</SDATA3>
<SDATA4/>
</item>
</ZNA_CONFIR>
</Z_RFC_TRIGGER_TRFC.Response>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<Z_RFC_TRIGGER_TRFC.Response>
<ERROR_MSG>PROCESSING</ERROR_MSG>
<ZNA_CONFIR>
<item>
<MANDT>120</MANDT>
<ERROR_CODE>00000</ERROR_CODE>
<DOCNUM>0000000000000000</DOCNUM>
<DOCREL/>
<STATUS/>
<CIMTYP/>
<RCVPOR/>
<RCVPRT/>
<RCVPRN/>
<SNDPOR/>
<SNDPRT/>
<SNDPRN/>
<CREDAT>2005-07-08</CREDAT>
<CRETIM>10:38:07</CRETIM>
<QUEUEMGR>DC1Q000</QUEUEMGR>
<QUEUE>DARRIN.Q</QUEUE>
<PROC_STAT/>
<SDATA1>120000000000000000000000 20050708103807DQD0001 MSGSRV.POVI.FROMR3 &lt;?XML VERSION='1.0' ENCODING='ISO-88</SDATA1>
<SDATA2>59-1'?&gt;&lt;RESPONSE&gt;&lt;CONTROL&gt;&lt;ORIGINATOR&gt;POVI&lt;/ORIGINATOR&gt;&lt;ORIGIN_DATETIME&gt;&lt;/ORIGIN_DATETIME&gt;&lt;SERVICE&gt;POVI_SAP&lt;/SERVICE&gt;&lt;FUNCTION&gt;Z_MSRV_POVI_SALE_ORDER&lt;/FUNCTION&gt;&lt;ENVIRONMENT&gt;DV2120&lt;/ENVIRONMENT&gt;&lt;VERSION&gt;1.0&lt;/VERSION&gt;&lt;LOCATOR&gt;&lt;/LOCATOR&gt;&lt;SERIAL&gt;&lt;/SERIAL</SDATA2>
<SDATA3>&gt;&lt;DOCUMENTRECORDS&gt;&lt;/DOCUMENTRECORDS&gt;&lt;/CONTROL&gt;&lt;STATUS&gt;&lt;CODE&gt;0&lt;/CODE&gt;&lt;DESCRIPTION&gt;SUCCESS&lt;/DESCRIPTION&gt;&lt;CREATE_DATETIME&gt;&lt;/CREATE_DATETIME&gt;&lt;/STATUS&gt;&lt;PO_NUMBER&gt;&lt;/PO_NUMBER&gt;&lt;PROCESSING_STATUS&gt;000&lt;/PROCESSING_STATUS&gt;&lt;RESULT&gt;4300000645&lt;/RESULT&gt;&lt;/RESPONSE&gt;</SDATA3>
<SDATA4/>
</item>
</ZNA_CONFIR>
</Z_RFC_TRIGGER_TRFC.Response>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<Z_RFC_TRIGGER_TRFC.Response>
<ERROR_MSG>PROCESSING</ERROR_MSG>
<ZNA_CONFIR>
<item>
<MANDT>120</MANDT>
<ERROR_CODE>00000</ERROR_CODE>
<DOCNUM>0000000000000000</DOCNUM>
<DOCREL/>
<STATUS/>
<CIMTYP/>
<RCVPOR/>
<RCVPRT/>
<RCVPRN/>
<SNDPOR/>
<SNDPRT/>
<SNDPRN/>
<CREDAT>2005-07-08</CREDAT>
<CRETIM>10:38:07</CRETIM>
<QUEUEMGR>DC1Q000</QUEUEMGR>
<QUEUE>DARRIN.Q</QUEUE>
<PROC_STAT/>
<SDATA1>120000000000000000000000 20050708103807DQD0001 MSGSRV.POVI.FROMR3 &lt;?XML VERSION='1.0' ENCODING='ISO-88</SDATA1>
<SDATA2>59-1'?&gt;&lt;RESPONSE&gt;&lt;CONTROL&gt;&lt;ORIGINATOR&gt;POVI&lt;/ORIGINATOR&gt;&lt;ORIGIN_DATETIME&gt;&lt;/ORIGIN_DATETIME&gt;&lt;SERVICE&gt;POVI_SAP&lt;/SERVICE&gt;&lt;FUNCTION&gt;Z_MSRV_POVI_SALE_ORDER&lt;/FUNCTION&gt;&lt;ENVIRONMENT&gt;DV2120&lt;/ENVIRONMENT&gt;&lt;VERSION&gt;1.0&lt;/VERSION&gt;&lt;LOCATOR&gt;&lt;/LOCATOR&gt;&lt;SERIAL&gt;&lt;/SERIAL</SDATA2>
<SDATA3>&gt;&lt;DOCUMENTRECORDS&gt;&lt;/DOCUMENTRECORDS&gt;&lt;/CONTROL&gt;&lt;STATUS&gt;&lt;CODE&gt;0&lt;/CODE&gt;&lt;DESCRIPTION&gt;SUCCESS&lt;/DESCRIPTION&gt;&lt;CREATE_DATETIME&gt;&lt;/CREATE_DATETIME&gt;&lt;/STATUS&gt;&lt;PO_NUMBER&gt;&lt;/PO_NUMBER&gt;&lt;PROCESSING_STATUS&gt;000&lt;/PROCESSING_STATUS&gt;&lt;RESULT&gt;4300000645&lt;/RESULT&gt;&lt;/RESPONSE&gt;</SDATA3>
<SDATA4/>
</item>
</ZNA_CONFIR>
</Z_RFC_TRIGGER_TRFC.Response>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<Z_RFC_TRIGGER_TRFC.Response>
<ERROR_MSG>PROCESSING</ERROR_MSG>
<ZNA_CONFIR>
<item>
<MANDT>120</MANDT>
<ERROR_CODE>00000</ERROR_CODE>
<DOCNUM>0000000000000000</DOCNUM>
<DOCREL/>
<STATUS/>
<CIMTYP/>
<RCVPOR/>
<RCVPRT/>
<RCVPRN/>
<SNDPOR/>
<SNDPRT/>
<SNDPRN/>
<CREDAT>2005-07-08</CREDAT>
<CRETIM>10:38:07</CRETIM>
<QUEUEMGR>DC1Q000</QUEUEMGR>
<QUEUE>DARRIN.Q</QUEUE>
<PROC_STAT/>
<SDATA1>120000000000000000000000 20050708103807DQD0001 MSGSRV.POVI.FROMR3 &lt;?XML VERSION='1.0' ENCODING='ISO-88</SDATA1>
<SDATA2>59-1'?&gt;&lt;RESPONSE&gt;&lt;CONTROL&gt;&lt;ORIGINATOR&gt;POVI&lt;/ORIGINATOR&gt;&lt;ORIGIN_DATETIME&gt;&lt;/ORIGIN_DATETIME&gt;&lt;SERVICE&gt;POVI_SAP&lt;/SERVICE&gt;&lt;FUNCTION&gt;Z_MSRV_POVI_SALE_ORDER&lt;/FUNCTION&gt;&lt;ENVIRONMENT&gt;DV2120&lt;/ENVIRONMENT&gt;&lt;VERSION&gt;1.0&lt;/VERSION&gt;&lt;LOCATOR&gt;&lt;/LOCATOR&gt;&lt;SERIAL&gt;&lt;/SERIAL</SDATA2>
<SDATA3>&gt;&lt;DOCUMENTRECORDS&gt;&lt;/DOCUMENTRECORDS&gt;&lt;/CONTROL&gt;&lt;STATUS&gt;&lt;CODE&gt;0&lt;/CODE&gt;&lt;DESCRIPTION&gt;SUCCESS&lt;/DESCRIPTION&gt;&lt;CREATE_DATETIME&gt;&lt;/CREATE_DATETIME&gt;&lt;/STATUS&gt;&lt;PO_NUMBER&gt;&lt;/PO_NUMBER&gt;&lt;PROCESSING_STATUS&gt;000&lt;/PROCESSING_STATUS&gt;&lt;RESULT&gt;4300000645&lt;/RESULT&gt;&lt;/RESPONSE&gt;</SDATA3>
<SDATA4/>
</item>
</ZNA_CONFIR>
</Z_RFC_TRIGGER_TRFC.Response>
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Tue Oct 25, 2005 9:09 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

schroederms wrote:
I'm getting closer by using a BITSTREAM,


No, you aren't.

BITSTREAM is deprecated.

Use ASBITSTREAM instead.

Or confirm that I didn't spell "CodedCharSetId" wrong.
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
schroederms
PostPosted: Tue Oct 25, 2005 9:16 am    Post subject: Reply with quote

Disciple

Joined: 21 Jul 2003
Posts: 169
Location: IA

I tried this after I got your first reply, and the result was the same. I believe it's like the third thread on this topic. Am I missing something?

SET OutputRoot.BLOB.BLOB = CAST(myRef.SDATA1 as BLOB CCSID InputRoot.Properties.CodedCharSetID) ||
CAST(myRef.SDATA2 as BLOB CCSID InputRoot.Properties.CodedCharSetID) ||
CAST(myRef.SDATA3 as BLOB CCSID InputRoot.Properties.CodedCharSetID) ||
CAST(myRef.SDATA4 as BLOB CCSID InputRoot.Properties.CodedCharSetID);

[
Back to top
View user's profile Send private message
JT
PostPosted: Tue Oct 25, 2005 9:23 am    Post subject: Reply with quote

Padawan

Joined: 27 Mar 2003
Posts: 1564
Location: Hartford, CT.

I think Jeff meant for you to check that it's spelled CodedCharSetId, not CodedCharSetID
Back to top
View user's profile Send private message
paustin_ours
PostPosted: Tue Oct 25, 2005 9:25 am    Post subject: Reply with quote

Yatiri

Joined: 19 May 2004
Posts: 667
Location: columbus,oh

it should work. check your input properties tree. use MQMD instead.
Back to top
View user's profile Send private message Yahoo Messenger
schroederms
PostPosted: Tue Oct 25, 2005 9:47 am    Post subject: Reply with quote

Disciple

Joined: 21 Jul 2003
Posts: 169
Location: IA

Thanks all, that was it.

I think Jeff meant for you to check that it's spelled CodedCharSetId, not CodedCharSetID

It was coded CodedCharSetID
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » WBIMB "CAST" question
Jump to:  



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
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.