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 IndexWebSphere Message Broker (ACE) SupportCREATE ... PARSE() command bug? (v2.1)

Post new topicReply to topic
CREATE ... PARSE() command bug? (v2.1) View previous topic :: View next topic
Author Message
Tibor
PostPosted: Fri Jul 05, 2002 12:31 am Post subject: CREATE ... PARSE() command bug? (v2.1) Reply with quote

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
View user's profile Send private message
Tibor
PostPosted: Fri Jul 05, 2002 2:15 am Post subject: Reply with quote

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
View user's profile Send private message
Tibor
PostPosted: Wed Jul 10, 2002 1:39 am Post subject: Reply with quote

Grand Master

Joined: 20 May 2001
Posts: 1033
Location: Hungary

Hey, noone tried CREATE ... PARSE()?
Back to top
View user's profile Send private message
Display posts from previous:
Post new topicReply to topic Page 1 of 1

MQSeries.net Forum IndexWebSphere Message Broker (ACE) SupportCREATE ... PARSE() command bug? (v2.1)
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.