|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
  |
|
CREATE ... PARSE() command bug? (v2.1) |
View previous topic :: View next topic |
Author |
Message
|
Tibor |
Posted: Fri Jul 05, 2002 12:31 am Post subject: CREATE ... PARSE() command bug? (v2.1) |
|
|
 Grand Master
Joined: 20 May 2001 Posts: 1033 Location: Hungary
|
I made experiments with the new 'CREATE ...' command to get a general IDOC input node. My ESQL code:
Code: |
DECLARE i INTEGER;
DECLARE c INTEGER;
SET i = 1;
SET c = CARDINALITY(InputRoot.*[]);
WHILE i < c DO
SET OutputRoot.*[i] = InputRoot.*[i];
SET i=i+1;
END WHILE;
DECLARE recnum integer;
DECLARE numstr character;
DECLARE codpag INTEGER;
SET recnum = (length(InputBody."BLOB") - 524) / 1063;
SET numstr = cast(recnum as character);
SET codpag = 852;
WHILE LENGTH(numstr) < 8 DO
SET numstr = '0' || numstr;
END WHILE;
SET OutputRoot.Properties.MessageDomain = 'MRM';
SET OutputRoot.Properties.MessageSet = 'DOJU7DC0AI001';
SET OutputRoot.Properties.MessageType = 'SAP_' || TRIM(cast(substring(InputBody.BLOB from 40 for 30) AS CHARACTER CCSID codpag));
SET OutputRoot.Properties.MessageFormat = 'CWF';
CREATE LASTCHILD OF OutputRoot
DOMAIN 'MRM'
PARSE(CAST(numstr AS BLOB CCSID codpag) || InputBody."BLOB",
InputRoot.Properties.Encoding,
codpag,
OutputRoot.Properties.MessageSet,
OutputRoot.Properties.MessageType,
OutputRoot.Properties.MessageFormat);
|
(I know, CodeCraft wrote, MessageDomain property is wrong... but now it doesn't matter)
MsgFlow: MQInput (BLOB) -> Compute -> Trace -> MQOutput. SAP IDOC is a repeating structure: header + n*body. So I put an integer before this using 'Repeat...Value of' MRM facility. It seems good in Trace Node, but MQOutput drop an exception when repeat is greater than 1. (Note: "segnam" is the first element in repeating body)
( MQDEV.default ) CWF Output: Mismatch between logical definition and message tree. Message Set id: DOJU7DC0AI001, Message : SAP_ZCPELTER, Element : segnam.
The CWF writer has been given a message tree which does not match the logical message definition. The elements may have been added to the message tree in the wrong order, or there may be elements missing from the message tree. The message type or message set may be incorrect.
If the output message was assembled in a Compute node, check that the elements were added to the message in the order specified in the logical message definition. Check that the output message contains all the elements in the logical message definition (perhaps you need to copy the entire input message to the output tree before modifying it) Check that the output message has the correct message set and message type properties. Check that the output message does not contain self-defining elements. Check that any missing elements have default values defined. If the problem persists, record the full details provided with this message and contact your IBM support center.
-----
BUT, when I use a simple BLOB concatenation plus an RCD node instead of CREATE ... PARSE() then working fine.
Code: |
SET OutputRoot."BLOB"."BLOB" = cast(numstr as BLOB ccsid codpag) || InputBody."BLOB";
|
Any ideas? |
|
Back to top |
|
 |
Tibor |
Posted: Fri Jul 05, 2002 2:15 am Post subject: |
|
|
 Grand Master
Joined: 20 May 2001 Posts: 1033 Location: Hungary
|
Just a sample after putting an IDoc with 2 segments. Trace file contents after parsing (${Root}):
Code: |
(0x1000000)Properties = (
(0x3000000)MessageSet = 'DOJU7DC0AI001'
(0x3000000)MessageType = 'SAP_ZCPELTER'
(0x3000000)MessageFormat = 'CWF'
(0x3000000)Encoding = 546
(0x3000000)CodedCharSetId = 437
(0x3000000)Transactional = TRUE
(0x3000000)Persistence = FALSE
(0x3000000)CreationTime = GMTTIMESTAMP '2002-07-05 09:39:02.710'
(0x3000000)ExpirationTime = -1
(0x3000000)Priority = 0
(0x3000000)ReplyIdentifier = X'000000000000000000000000000000000000000000000000'
(0x3000000)ReplyProtocol = 'MQ'
(0x3000000)Topic = NULL
)
(0x1000000)MQMD = (
(0x3000000)SourceQueue = 'BT_T3_IN'
(0x3000000)Transactional = TRUE
(0x3000000)Encoding = 546
(0x3000000)CodedCharSetId = 437
(0x3000000)Format = 'MQSTR '
(0x3000000)Version = 2
(0x3000000)Report = 0
(0x3000000)MsgType = 8
(0x3000000)Expiry = -1
(0x3000000)Feedback = 0
(0x3000000)Priority = 0
(0x3000000)Persistence = 0
(0x3000000)MsgId = X'414d51204d51444556202020202020208ec2ec3c13a0e111'
(0x3000000)CorrelId = X'000000000000000000000000000000000000000000000000'
(0x3000000)BackoutCount = 0
(0x3000000)ReplyToQ = ' '
(0x3000000)ReplyToQMgr = 'MQDEV '
(0x3000000)UserIdentifier = 'mqsi '
(0x3000000)AccountingToken = X'16010515000000f037fe5b5e2bfe05bf7df76de803000000000000000000000b'
(0x3000000)ApplIdentityData = ' '
(0x3000000)PutApplType = 11
(0x3000000)PutApplName = 'd:\mqsiwork\util\mqput.exe '
(0x3000000)PutDate = DATE '2002-07-05'
(0x3000000)PutTime = GMTTIME '09:39:02.710'
(0x3000000)ApplOriginData = ' '
(0x3000000)GroupId = X'000000000000000000000000000000000000000000000000'
(0x3000000)MsgSeqNumber = 1
(0x3000000)Offset = 0
(0x3000000)MsgFlags = 0
(0x3000000)OriginalLength = 2650
)
(0x1000021)MRM = (
(0x300000B)rep_count = 2
(0x1000013)DC = (
(0x300000B)tabnam = 'EDI_DC40 '
(0x300000B)mandt = '010'
(0x300000B)docnum = '0000000000030311'
(0x300000B)docrel = '46B '
(0x300000B)status = '30'
(0x300000B)direct = '1'
(0x300000B)outmod = '2'
(0x300000B)exprss = ' '
(0x300000B)test = ' '
(0x300000B)idoctyp = 'ZCPELTER '
(0x300000B)cimtyp = ' '
(0x300000B)mestyp = 'ZCPELTER '
(0x300000B)mescod = ' '
(0x300000B)mesfct = 'N '
(0x300000B)std = ' '
(0x300000B)stdvrs = ' '
(0x300000B)stdmes = ' '
(0x300000B)sndpor = 'SAPHT1 '
(0x300000B)sndprt = 'LS'
(0x300000B)sndpfc = ' '
(0x300000B)sndprn = 'HT1CLNT010'
(0x300000B)sndsad = ' '
(0x300000B)sndlad = ' '
(0x300000B)rcvpor = 'A000000003'
(0x300000B)rcvprt = 'LS'
(0x300000B)rcvpfc = ' '
(0x300000B)rcvprn = 'ZCPCODES '
(0x300000B)rcvsad = ' '
(0x300000B)rcvlad = ' '
(0x300000B)credat = '20020417'
(0x300000B)cretim = '100630'
(0x300000B)refint = ' '
(0x300000B)refgrp = ' '
(0x300000B)refmes = ' '
(0x300000B)arckey = ' '
(0x300000B)serial = '20020417100627 '
)
(0x1000013)DD_ZCPELTER = (
(0x300000B)segnam = 'Z2CPELTER000 '
(0x300000B)mandt = '010'
(0x300000B)docnum = '0000000000030311'
(0x300000B)segnum = '000001'
(0x300000B)psgnum = '000000'
(0x300000B)hlevel = '02'
(0x1000013)ZCPELTER = (
(0x300000B)zrendsz = '040'
(0x300000B)wwelt = '8210000000'
(0x300000B)bezek = 'Kls§ megr. v. szßll'
(0x300000B)vvnat_me = ' '
(0x300000B)datum = '20020417'
(0x300000B)ido = '100627'
(0x300000B)trans = 'U'
)
(0x300000B)pad949 = ''
)
(0x1000013)DD_ZCPELTER = (
(0x300000B)segnam = 'Z2CPELTER000 '
(0x300000B)mandt = '010'
(0x300000B)docnum = '0000000000030311'
(0x300000B)segnum = '000002'
(0x300000B)psgnum = '000000'
(0x300000B)hlevel = '02'
(0x1000013)ZCPELTER = (
(0x300000B)zrendsz = '001'
(0x300000B)wwelt = '8221000100'
(0x300000B)bezek = 'Tßvb.kÚsz.b.dÝj/alap'
(0x300000B)vvnat_me = 'DB '
(0x300000B)datum = '20020417'
(0x300000B)ido = '100627'
(0x300000B)trans = 'U'
)
(0x300000B)pad949 = ''
)
)
)
|
... and ${ExceptionList}:
Code: |
(
(0x1000000)RecoverableException = (
(0x3000000)File = 'F:\build\S210_P\src\DataFlowEngine\ImbDataFlowNode.cpp'
(0x3000000)Line = 536
(0x3000000)Function = 'ImbDataFlowNode::createExceptionList'
(0x3000000)Type = 'ComIbmMQInputNode'
(0x3000000)Name = '43084269-ee00-0000-0080-e747e9614385'
(0x3000000)Label = 'Test-3.In-T3'
(0x3000000)Text = 'Node throwing exception'
(0x3000000)Catalog = 'WMQIv210'
(0x3000000)Severity = 3
(0x3000000)Number = 2230
(0x1000000)RecoverableException = (
(0x3000000)File = 'F:\build\S210_P\src\DataFlowEngine\ImbMqOutputNode.cpp'
(0x3000000)Line = 708
(0x3000000)Function = 'ImbMqOutputNode::evaluate'
(0x3000000)Type = 'ComIbmMQOutputNode'
(0x3000000)Name = '96f3a340-ee00-0000-0080-c34d3bd5f31e'
(0x3000000)Label = 'Test-3.MQOutput1'
(0x3000000)Text = 'Caught exception and rethrowing'
(0x3000000)Catalog = 'WMQIv210'
(0x3000000)Severity = 3
(0x3000000)Number = 2230
(0x1000000)ParserException = (
(0x3000000)File = 'F:\build\S210_P\src\MTI\MTIforBroker\MtiImbParser2\MtiImbParser.cpp'
(0x3000000)Line = 1187
(0x3000000)Function = 'MtiImbParser::refreshBitStreamFromElements - 9 par'
(0x3000000)Type = 'ComIbmMQInputNode'
(0x3000000)Name = '43084269-ee00-0000-0080-e747e9614385'
(0x3000000)Label = 'Test-3.In-T3'
(0x3000000)Text = 'ImbRecoverableException caught from worker when attempting to write out the bitstream.'
(0x3000000)Catalog = 'WMQIv210'
(0x3000000)Severity = 3
(0x3000000)Number = 5286
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = 'DOJU7DC0AI001'
)
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = 'CWF'
)
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = 'SAP_ZCPELTER'
)
(0x1000000)ParserException = (
(0x3000000)File = 'F:\build\S210_P\src\cpi\pwf\cwf\cwfworker.cpp'
(0x3000000)Line = 304
(0x3000000)Function = 'CWFWorker::write'
(0x3000000)Type = ''
(0x3000000)Name = ''
(0x3000000)Label = ''
(0x3000000)Text = 'CWF General Error'
(0x3000000)Catalog = 'WMQIv210'
(0x3000000)Severity = 3
(0x3000000)Number = 5167
(0x1000000)Insert = (
(0x3000000)Type = 2
(0x3000000)Text = '0'
)
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = 'CWFWorker::write'
)
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = 'DOJU7DC0AI001'
)
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = 'SAP_ZCPELTER'
)
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = '--'
)
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = '--'
)
(0x1000000)ParserException = (
(0x3000000)File = 'F:\build\S210_P\src\cpi\pwf\cwf\cwfcontext.cpp'
(0x3000000)Line = 342
(0x3000000)Function = 'CContext::CheckDefaultValue'
(0x3000000)Type = ''
(0x3000000)Name = ''
(0x3000000)Label = ''
(0x3000000)Text = 'CWF Logical Tree - Message Definition Mismatch'
(0x3000000)Catalog = 'WMQIv210'
(0x3000000)Severity = 3
(0x3000000)Number = 5344
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = 'DOJU7DC0AI001'
)
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = 'SAP_ZCPELTER'
)
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = 'segnam'
)
)
(0x1000000)ParserException = (
(0x3000000)File = 'F:\build\S210_P\src\cpi\pwf\cwf\cwfcontext.cpp'
(0x3000000)Line = 342
(0x3000000)Function = 'CContext::CheckDefaultValue'
(0x3000000)Type = ''
(0x3000000)Name = ''
(0x3000000)Label = ''
(0x3000000)Text = 'CWF Logical Tree - Message Definition Mismatch'
(0x3000000)Catalog = 'WMQIv210'
(0x3000000)Severity = 3
(0x3000000)Number = 5344
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = 'DOJU7DC0AI001'
)
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = 'SAP_ZCPELTER'
)
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = 'segnam'
)
)
)
)
)
)
)
|
|
|
Back to top |
|
 |
Tibor |
Posted: Wed Jul 10, 2002 1:39 am Post subject: |
|
|
 Grand Master
Joined: 20 May 2001 Posts: 1033 Location: Hungary
|
Hey, noone tried CREATE ... PARSE()?  |
|
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
|
|
|
|