Author |
Message
|
smeunier |
Posted: Sun Jan 08, 2006 8:02 am Post subject: MRM Message mapping |
|
|
 Partisan
Joined: 19 Aug 2002 Posts: 305 Location: Green Mountains of Vermont
|
I'm looking for confirmation that my observation is correct that when using the MRM, the logical inbound message, must match the CWF byte for byte, or I would get errors: such as:
Code: |
Message : Z2200MM_UPIX_DELIVERY000
Element : 52^delivery
The CWF writer has been given a message tree which does not match the logical message definition.
|
I verified this by fully poplulating the logical message and everything flowed through ok. So my question here is: If the inbound message can have optional fields, which may not be supplied, how can I avoid these errors? My test validates i need to supply a fully populated message. How can I handle these oiptional fields in the MRM? Since my input comes through a WBI adapter, i can force default blanks, but i would rather handle cia the MRM. Suggestions? My next test will be to set Default Values in the MRM(same as via the Adapter would). |
|
Back to top |
|
 |
jefflowrey |
Posted: Sun Jan 08, 2006 8:43 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
There are different rules for the different physical parsers available with MRM.
Start here for a better overview of the CWF parser than I've seen in previous documentation - particularly as regards to limitations of the model.
But remember that the message model in general is the map from the physical layout of the data in the message bitstream into the logical message tree, and the other way around. So the model always has to know how to fully parse or construct the bitstream. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
kimbert |
Posted: Mon Jan 09, 2006 4:51 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Change your message set so that the optional fields have a default value. The CWF writer will use default values for missing fields. |
|
Back to top |
|
 |
smeunier |
Posted: Mon Jan 09, 2006 6:07 pm Post subject: |
|
|
 Partisan
Joined: 19 Aug 2002 Posts: 305 Location: Green Mountains of Vermont
|
First I changed the Business Object to set default valuesof "space" and tested that worked. Next I reverted Business Object to not provide default values and changed the MessageSet to specify default values. that worked also. Since I have to modify the Messageset anyway for the other fields, i opted to solve the issue within the MessageSet itself.
Thanks everyone |
|
Back to top |
|
 |
smeunier |
Posted: Tue Jan 10, 2006 1:00 pm Post subject: |
|
|
 Partisan
Joined: 19 Aug 2002 Posts: 305 Location: Green Mountains of Vermont
|
after doing further testing on this, I found that after setting default values for all Elements, that that is all I get. The default value now overlay the byte stream values. Shouldn't the bytestream data override default values? And how do I correct? |
|
Back to top |
|
 |
kimbert |
Posted: Tue Jan 10, 2006 2:44 pm Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Quote: |
Shouldn't the bytestream data override default values? |
Yes, and it usually does it just fine . There must be something wrong with either the message set or the flow.
I'm assuming that your input format is MRM XML, in which case I suspect that your message model does not match the input message correctly. There are numerous ways of getting it wrong, so the best thing to do is describe what you've done, and I'll see whether I can spot anything. A trace of the message just after the parsing of the XML input would be useful as well. |
|
Back to top |
|
 |
smeunier |
Posted: Wed Jan 11, 2006 5:06 am Post subject: |
|
|
 Partisan
Joined: 19 Aug 2002 Posts: 305 Location: Green Mountains of Vermont
|
Here is the information. The net problem, is that values set in the ESQL are being overriden by default values set in the message set. This problem has a project on hold. Any insight would be appreciated.
Input Node Properties(MRM,MessageSet ID, CwXML)
Message Set(Output Settings: Byte Alignment=0, Poclicy for Missing Elements=Use Default Values), Applied default physical format Settings
Message Definition File( Locivcal Properties for Logical Element: Value=Default checked with value=blank)
From the trace here is the input source Message before compute node:
Code: |
2006-01-11 06:48:01.970704 9793 UserTrace BIP4060I: Data '(
(0x01000000):Properties = (
(0x03000000):MessageSet = 'O4VA6K0002001'
(0x03000000):MessageType = 'MD_SAP_BO_z_200mm_upix_pick01'
(0x03000000):MessageFormat = 'CwXML'
(0x03000000):Encoding = 273
(0x03000000):CodedCharSetId = 1208
(0x03000000):Transactional = TRUE
(0x03000000):Persistence = TRUE
(0x03000000):CreationTime = GMTTIMESTAMP '2006-01-11 11:48:01.920'
(0x03000000):ExpirationTime = -1
(0x03000000):Priority = 4
(0x03000000):ReplyIdentifier = X'000000000000000000000000000000000000000000000000'
(0x03000000):ReplyProtocol = 'MQ'
(0x03000000):Topic = NULL
)
(0x01000000):MQMD = (
(0x03000000):SourceQueue = 'MD_SAP.TEST'
(0x03000000):Transactional = TRUE
(0x03000000):Encoding = 273
(0x03000000):CodedCharSetId = 819
(0x03000000):Format = 'MQHRF2 '
(0x03000000):Version = 2
(0x03000000):Report = 0
(0x03000000):MsgType = 8
(0x03000000):Expiry = -1
(0x03000000):Feedback = 0
(0x03000000):Priority = 4
(0x03000000):Persistence = 1
(0x03000000):MsgId = X'414d51204d445341504544312020202043836e092002462c'
(0x03000000):CorrelId = X'000000000000000000000000000000000000000000000000'
(0x03000000):BackoutCount = 0
(0x03000000):ReplyToQ = ' '
(0x03000000):ReplyToQMgr = 'MDSAPED1 '
(0x03000000):UserIdentifier = 'wbimbadm '
(0x03000000):AccountingToken = X'0000000000000000000000000000000000000000000000000000000000000000'
(0x03000000):ApplIdentityData = ' '
(0x03000000):PutApplType = 28
(0x03000000):PutApplName = ' '
(0x03000000):PutDate = DATE '2006-01-11'
(0x03000000):PutTime = GMTTIME '11:48:01.920'
(0x03000000):ApplOriginData = ' '
(0x03000000):GroupId = X'000000000000000000000000000000000000000000000000'
(0x03000000):MsgSeqNumber = 1
(0x03000000):Offset = 0
(0x03000000):MsgFlags = 0
(0x03000000):OriginalLength = -1
)
(0x01000000):MQRFH2 = (
(0x03000000):Version = 2
(0x03000000):Format = 'MQSTR '
(0x03000000):Encoding = 273
(0x03000000):CodedCharSetId = 1208
(0x03000000):Flags = 0
(0x03000000):NameValueCCSID = 1208
(0x01000000):mcd = (
(0x01000000):Msd = (
(0x02000000): = 'mrm'
)
(0x01000000):Set = (
(0x02000000): = 'O4VA6K0002001'
)
(0x01000000):Type = (
(0x02000000): = 'MD_SAP_BO_z_200mm_upix_pick01'
)
(0x01000000):Fmt = (
(0x02000000): = 'CwXML'
)
)
(0x01000000):jms = (
(0x01000000):Dst = (
(0x02000000): = 'queue:///MD_SAP.BTVASMB2.SAPCONNECTOR.DELIVERY'
)
(0x01000000):Tms = (
(0x02000000): = '1136980081927'
)
(0x01000000):Dlv = (
(0x02000000): = '2'
)
)
(0x01000000):usr = (
(0x01000000):WSDLBinding = (
(0x02000000): = 'MD_SAP_BO_z_200mm_upix_pick01AgentDeliveryBinding'
)
(0x01000000):WSDLOperation = (
(0x02000000): = 'MD_SAP_BO_z_200mm_upix_pick01Create'
)
(0x01000000):PrivacyLevel = (
(0x02000000): = 'None'
)
(0x01000000):MessageType = (
(0x02000000): = 'MD_SAP_BO_z_200mm_upix_pick01'
)
)
)
(0x01000021):MRM = (
(0x0300000D):@version = '3.0.0'
(0x0300000D):@verb = 'Create'
(0x0300000D):@locale = 'en_US'
(0x0300000D):@delta = 'false'
(0x01000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_z_200mm_upix_pick01:Control_record = (
(0x01000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_sap_idoccontrol:MD_SAP_BO_sap_idoccontrol = (
(0x0300000D):@version = '1.0.0'
(0x0300000D):@verb = ''
(0x0300000D):@locale = 'en_US'
(0x0300000D):@delta = 'false'
(0x03000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_sap_idoccontrol:Name_of_table_structure = 'EDI_DC40'
(0x03000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_sap_idoccontrol:Client = '017'
(0x03000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_sap_idoccontrol:IDoc_number = '0000000001402572'
(0x03000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_sap_idoccontrol:SAP_Release_for_IDoc = '46C'
(0x03000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_sap_idoccontrol:Status_of_IDoc = '30'
(0x03000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_sap_idoccontrol:Direction_for_IDoc_transmission = '1'
(0x03000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_sap_idoccontrol:Output_mode = '2'
(0x03000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_sap_idoccontrol:Name_of_basic_type = 'Z_200MM_UPIX_PICK01'
(0x03000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_sap_idoccontrol:Logical_message_type = 'Z200_UPIX_DELIVERY_PICK'
(0x03000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_sap_idoccontrol:EDI_message_type = 'Z200_U'
(0x03000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_sap_idoccontrol:Sender_port = 'SAPED1'
(0x03000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_sap_idoccontrol:Partner_type_of_sender = 'LS'
(0x03000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_sap_idoccontrol:Partner_number_of_sender = 'ED1E017MDD'
(0x03000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_sap_idoccontrol:Receiver_port = 'A000000018'
(0x03000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_sap_idoccontrol:Partner_type_of_recipient = 'LS'
(0x03000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_sap_idoccontrol:Partner_number_of_recipient = 'MQS_UPIX_B'
(0x03000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_sap_idoccontrol:IDoc_creation_date = '20060111'
(0x03000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_sap_idoccontrol:IDoc_creation_time = '064758'
(0x03000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_sap_idoccontrol:EDI_ALE_Serialization_field = '20050909074154'
)
)
(0x01000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_z_200mm_upix_pick01:Data_record = (
(0x01000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_z_200mm_upix_pick01_cwdata:MD_SAP_BO_z_200mm_upix_pick01_cwdata = (
(0x0300000D):@version = '3.0.0'
(0x0300000D):@verb = ''
(0x0300000D):@locale = 'en_US'
(0x0300000D):@delta = 'false'
(0x01000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_z_200mm_upix_pick01_cwdata:MD_SAP_BO_z_200mm_upix_pick01_z2200mm_upix_delivery000 = (
(0x01000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_z_200mm_upix_pick01_z2200mm_upix_delivery000:MD_SAP_BO_z_200mm_upix_pick01_z2200mm_upix_delivery000 = (
(0x0300000D):@version = '3.0.0'
(0x0300000D):@verb = ''
(0x0300000D):@locale = 'en_US'
(0x0300000D):@delta = 'false'
(0x03000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_z_200mm_upix_pick01_z2200mm_upix_delivery000:EVENT = '200MM_PICK'
(0x03000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_z_200mm_upix_pick01_z2200mm_upix_delivery000:DELIVERY = '0080061177'
(0x03000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_z_200mm_upix_pick01_z2200mm_upix_delivery000:DATE = '20050909'
(0x03000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_z_200mm_upix_pick01_z2200mm_upix_delivery000:TIME = '074154'
(0x03000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_z_200mm_upix_pick01_z2200mm_upix_delivery000:USERID = 'SCHMIDTA'
(0x03000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_z_200mm_upix_pick01_z2200mm_upix_delivery000:ITEM_COUNT = ' 9'
(0x01000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_z_200mm_upix_pick01_z2200mm_upix_delivery000:MD_SAP_BO_z_200mm_upix_pick01_z2200mm_upix_item000 = (
(0x0300000D):@size = '9'
(0x01000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_z_200mm_upix_pick01_z2200mm_upix_item000:MD_SAP_BO_z_200mm_upix_pick01_z2200mm_upix_item000 = (
(0x0300000D):@version = '3.0.0'
(0x0300000D):@verb = ''
(0x0300000D):@locale = 'en_US'
(0x0300000D):@delta = 'false'
(0x03000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_z_200mm_upix_pick01_z2200mm_upix_item000:WAFER_ID = ' NEOEOI'
(0x03000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_z_200mm_upix_pick01_z2200mm_upix_item000:BATCH_ID = 'TEST000001'
(0x03000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_z_200mm_upix_pick01_z2200mm_upix_item000:PART_NUMBER_COUNT = ' 1'
(0x03000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_z_200mm_upix_pick01_z2200mm_upix_item000:DEVMAT1 = '0000020H1389'
(0x03000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_z_200mm_upix_pick01_z2200mm_upix_item000:ZQTY1 = '0000010'
)
(0x01000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_z_200mm_upix_pick01_z2200mm_upix_item000:MD_SAP_BO_z_200mm_upix_pick01_z2200mm_upix_item000 = (
(0x0300000D):@version = '3.0.0'
(0x0300000D):@verb = ''
(0x0300000D):@locale = 'en_US'
(0x0300000D):@delta = 'false'
(0x03000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_z_200mm_upix_pick01_z2200mm_upix_item000:WAFER_ID = ' NIGFDD'
(0x03000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_z_200mm_upix_pick01_z2200mm_upix_item000:BATCH_ID = 'TEST000001'
(0x03000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_z_200mm_upix_pick01_z2200mm_upix_item000:PART_NUMBER_COUNT = ' 1'
(0x03000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_z_200mm_upix_pick01_z2200mm_upix_item000:DEVMAT1 = '0000020H1389'
(0x03000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_z_200mm_upix_pick01_z2200mm_upix_item000:ZQTY1 = '0000004'
)
(0x01000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_z_200mm_upix_pick01_z2200mm_upix_item000:MD_SAP_BO_z_200mm_upix_pick01_z2200mm_upix_item000 = (
(0x0300000D):@version = '3.0.0'
(0x0300000D):@verb = ''
(0x0300000D):@locale = 'en_US'
(0x0300000D):@delta = 'false'
(0x03000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_z_200mm_upix_pick01_z2200mm_upix_item000:WAFER_ID = ' NIJOJ3'
(0x03000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_z_200mm_upix_pick01_z2200mm_upix_item000:BATCH_ID = 'TEST000001'
(0x03000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_z_200mm_upix_pick01_z2200mm_upix_item000:PART_NUMBER_COUNT = ' 1'
(0x03000015)http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_z_200mm_upix_pick01_z2200mm_upix_item000:DEVMAT1 = '0000020H1389'
(0x03000015)http://www.ibm.com/websphere/cros' from trace node 'IDOC_OUT_Z200_UPIX_DELIVERY_PICK.Trace'.
The trace node 'IDOC_OUT_Z200_UPIX_DELIVERY_PICK.Trace' has output the specified trace data.
|
Here is the output message after the compute node. Notice the values in the IDOC.
Code: |
2006-01-11 06:48:02.143493 9793 UserTrace BIP4060I: Data '(
(0x01000000):Properties = (
(0x03000000):MessageSet = 'O4VA6K0002001'
(0x03000000):MessageType = 'MD_SAP_BO_z_200mm_upix_pick01'
(0x03000000):MessageFormat = 'CwXML'
(0x03000000):Encoding = 273
(0x03000000):CodedCharSetId = 1208
(0x03000000):Transactional = TRUE
(0x03000000):Persistence = TRUE
(0x03000000):CreationTime = GMTTIMESTAMP '2006-01-11 11:48:01.920'
(0x03000000):ExpirationTime = -1
(0x03000000):Priority = 4
(0x03000000):ReplyIdentifier = X'000000000000000000000000000000000000000000000000'
(0x03000000):ReplyProtocol = 'MQ'
(0x03000000):Topic = NULL
)
(0x01000000):MQMD = (
(0x03000000):SourceQueue = 'MD_SAP.TEST'
(0x03000000):Transactional = TRUE
(0x03000000):Encoding = 273
(0x03000000):CodedCharSetId = 1208
(0x03000000):Format = 'MQHSAP '
(0x03000000):Version = 2
(0x03000000):Report = 0
(0x03000000):MsgType = 8
(0x03000000):Expiry = -1
(0x03000000):Feedback = 0
(0x03000000):Priority = 4
(0x03000000):Persistence = 1
(0x03000000):MsgId = X'414d51204d445341504544312020202043836e092002462c'
(0x03000000):CorrelId = X'000000000000000000000000000000000000000000000000'
(0x03000000):BackoutCount = 0
(0x03000000):ReplyToQ = ' '
(0x03000000):ReplyToQMgr = 'MDSAPED1 '
(0x03000000):UserIdentifier = 'wbimbadm '
(0x03000000):AccountingToken = X'0000000000000000000000000000000000000000000000000000000000000000'
(0x03000000):ApplIdentityData = ' '
(0x03000000):PutApplType = 28
(0x03000000):PutApplName = ' '
(0x03000000):PutDate = DATE '2006-01-11'
(0x03000000):PutTime = GMTTIME '11:48:01.920'
(0x03000000):ApplOriginData = ' '
(0x03000000):GroupId = X'000000000000000000000000000000000000000000000000'
(0x03000000):MsgSeqNumber = 1
(0x03000000):Offset = 0
(0x03000000):MsgFlags = 0
(0x03000000):OriginalLength = -1
)
(0x01000000):MQSAPH = (
(0x03000000):Version = 1
(0x03000000):Format = 'MQSTR '
(0x03000000):Encoding = 273
(0x03000000):CodedCharSetId = 1208
(0x03000000):Flags = 0
(0x03000000):Client = ' '
(0x03000000):Language = ' '
(0x03000000):HostName = ' '
(0x03000000):UserId = ' '
(0x03000000):Password = ' '
(0x03000000):SystemNumber = ' '
(0x03000000):Reserved = X'0000'
)
(0x01000000):IDOC = (
(0x01000000):DC = (
(0x03000000):tabnam = 'EDI_DC40'
(0x03000000):mandt = '017'
(0x03000000):docnum = '0000000001402572'
(0x03000000):docrel = '46C'
(0x03000000):status = ''
(0x03000000):direct = '1'
(0x03000000):outmod = ''
(0x03000000):exprss = ''
(0x03000000):test = ''
(0x03000000):idoctyp = 'Z_200MM_UPIX_PICK01'
(0x03000000):cimtyp = ''
(0x03000000):mestyp = ''
(0x03000000):mescod = ''
(0x03000000):mesfct = ''
(0x03000000):std = ''
(0x03000000):stdvrs = ''
(0x03000000):stdmes = ''
(0x03000000):stdpor = ''
(0x03000000):sndprt = 'LS'
(0x03000000):sndpfc = ''
(0x03000000):sndprn = 'ED1E017MDD'
(0x03000000):sndsad = ''
(0x03000000):sndlad = ''
(0x03000000):rcvpor = 'A000000018'
(0x03000000):rcvprt = 'LS'
(0x03000000):rcvpfc = ''
(0x03000000):rcvprn = 'MQS_UPIX_B'
(0x03000000):rcvsad = ''
(0x03000000):rcvlad = ''
(0x03000000):credat = '20060111'
(0x03000000):cretim = '064758'
(0x03000000):refint = ''
(0x03000000):refgrp = ''
(0x03000000):refmes = ''
(0x03000000):arckey = ''
(0x03000000):serial = '20050909074154'
)
(0x01000000):DD = (
(0x03000000):segnam = 'Z2200MM_UPIX_DELIVERY000'
(0x03000000):mandt2 = '017'
(0x03000000):docnum2 = '0000000001402572'
(0x03000000):segnum = '1'
(0x03000000):psgnum = '000000'
(0x03000000):hlevel = '01'
(0x01000000):sdatatag = (
(0x01000021):MRM = (
(0x03000015):event = '200MM_PICK'
(0x03000015):delivery = '0080061177'
(0x03000015):date = '20050909'
(0x03000015):time = '074154'
(0x03000015):userid = 'SCHMIDTA'
(0x03000015):item_count = ' 9'
(0x03000000):pad947 = ''
)
)
)
(0x01000000):DD = (
(0x03000000):segnam = 'Z2200MM_UPIX_ITEM000'
(0x03000000):mandt2 = '017'
(0x03000000):docnum2 = '0000000001402572'
(0x03000000):segnum = '2'
(0x03000000):psgnum = '000001'
(0x03000000):hlevel = '02'
(0x01000000):sdatatag = (
(0x01000021):MRM = (
(0x03000015):wafer_id = ' NEOEOI'
(0x03000015):batch_id = 'TEST000001'
(0x03000015):part_number_count = ' 1'
(0x03000015):devmat1 = '0000020H1389'
(0x03000015):zqty1 = '0000010'
(0x03000000):pad781 = ''
)
)
)
(0x01000000):DD = (
(0x03000000):segnam = 'Z2200MM_UPIX_ITEM000'
(0x03000000):mandt2 = '017'
(0x03000000):docnum2 = '0000000001402572'
(0x03000000):segnum = '3'
(0x03000000):psgnum = '000001'
(0x03000000):hlevel = '02'
(0x01000000):sdatatag = (
(0x01000021):MRM = (
(0x03000015):wafer_id = ' NIGFDD'
(0x03000015):batch_id = 'TEST000001'
(0x03000015):part_number_count = ' 1'
(0x03000015):devmat1 = '0000020H1389'
(0x03000015):zqty1 = '0000004'
(0x03000000):pad781 = ''
)
)
)
(0x01000000):DD = (
(0x03000000):segnam = 'Z2200MM_UPIX_ITEM000'
(0x03000000):mandt2 = '017'
(0x03000000):docnum2 = '0000000001402572'
(0x03000000):segnum = '4'
(0x03000000):psgnum = '000001'
(0x03000000):hlevel = '02'
(0x01000000):sdatatag = (
(0x01000021):MRM = (
(0x03000015):wafer_id = ' NIJOJ3'
(0x03000015):batch_id = 'TEST000001'
(0x03000015):part_number_count = ' 1'
(0x03000015):devmat1 = '0000020H1389'
(0x03000015):zqty1 = '0000010'
(0x03000000):pad781 = ''
)
)
)
(0x01000000):DD = (
(0x03000000):segnam = 'Z2200MM_UPIX_ITEM000'
(0x03000000):mandt2 = '017'
(0x03000000):docnum2 = '0000000001402572'
(0x03000000):segnum = '5'
(0x03000000):psgnum = '000001'
(0x03000000):hlevel = '02'
(0x01000000):sdatatag = (
(0x01000021):MRM = (
(0x03000015):wafer_id = ' YTDATR'
(0x03000015):batch_id = 'TEST000002'
(0x03000015):part_number_count = ' 1'
(0x03000015):devmat1 = '0000020H1389'
(0x03000015):zqty1 = '0000009'
(0x03000000):pad781 = ''
)
)
)
(0x01000000):DD = (
(0x03000000):segnam = 'Z2200MM_UPIX_ITEM000'
(0x03000000):mandt2 = '017'
(0x03000000):docnum2 = '0000000001402572'
(0x03000000):segnum = '6'
(0x03000000):psgnum = '000001'
(0x03000000):hlevel = '02'
(0x01000000):sdatatag = (
(0x01000021):MRM = (
(0x03000015):wafer_id = ' 1HHLLQ7'
(0x03000015):batch_id = 'TEST000003'
(0x03000015):part_number_count = ' 1'
(0x03000015):devmat1 = '0000020H1389'
(0x03000015):zqty1 = '0000006'
(0x03000000):pad781 = ''
)
)
)
(0x01000000):DD = (
(0x03000000):segnam = 'Z2200MM_UPIX_ITEM000'
(0x03000000):mandt2 = '017'
(0x03000000):docnum2 = '0000000001402572'
(0x03000000):segnum = '7'
(0x03000000):psgnum = '000001'
(0x03000000):hlevel = '02'
(0x01000000):sdatatag = (
(0x01000021):MRM = (
(0x03000015):wafer_id = ' 1HHLLQN'
(0x03000015):batch_id = 'TEST000003'
(0x03000015):part_number_count = ' 1'
(0x03000015):devmat1 = '0000020H1389'
(0x03000015):zqty1 = '0000008'
(0x03000000):pad781 = ''
)
)
)
(0x01000000):DD = (
(0x03000000):segnam = 'Z2200MM_UPIX_ITEM000'
(0x03000000):mandt2 = '017'
(0x03000000):docnum2 = '0000000001402572'
(0x03000000):segnum = '8'
(0x03000000):psgnum = '000001'
(0x03000000):hlevel = '02'
(0x01000000):sdatatag = (
(0x01000021):MRM = (
(0x03000015):wafer_id = ' PPQLLQ7'
(0x03000015):batch_id = 'TEST000003'
(0x03000015):part_number_count = ' 1'
(0x03000015):devmat1 = '0000020H1389'
(0x03000015):zqty1 = '0000006'
(0x03000000):pad781 = ''
)
)
)
(0x01000000):DD = (
(0x03000000):segnam = 'Z2200MM_UPIX_ITEM000'
(0x03000000):mandt2 = '017'
(0x03000000):docnum2 = '0000000001402572'
(0x03000000):segnum = '9'
(0x03000000):psgnum = '000001'
(0x03000000):hlevel = '02'
(0x01000000):sdatatag = (
(0x01000021):MRM = (
(0x03000015):wafer_id = ' IUHIUIUIUU'
(0x03000015):batch_id = 'TEST000002'
(0x03000015):part_number_count = ' 1'
(0x03000015):devmat1 = '0000020H1389'
(0x03000015):zqty1 = '0000009'
(0x03000000):pad781 = ''
)
)
)
(0x01000000):DD = (
(0x03000000):segnam = 'Z2200MM_UPIX_ITEM000'
(0x03000000):mandt2 = '017'
(0x03000000):docnum2 = '0000000001402572'
(0x03000000):segnum = '10'
(0x03000000):psgnum = '000001'
(0x03000000):hlevel = '02'
(0x01000000):sdatatag = (
(0x01000021):MRM = (
(0x03000015):wafer_id = ' IUIUIUIU87'
(0x03000015):batch_id = 'TEST000002'
(0x03000015):part_number_count = ' 1'
(0x03000015):devmat1 = '0000020H1389'
(0x03000015):zqty1 = '0000005'
(0x03000000):pad781 = ''
)
)
)
)
);
' from trace node 'IDOC_OUT_Z200_UPIX_DELIVERY_PICK.Trace1'.
|
Output(Partial) Message on Queue. Notice IDOC data now blank:
Code: |
00000000 SAPH.......l........MQSTR ....
00000032
00000064
00000096 ..EDI_DC40 0170000000
00000128 00140258146C 1 Z_200MM_UPIX_
00000160 PICK01
00000192
00000224
00000256 ....E...E.LS ED1E017MDD
00000288
00000320
00000352 A000000018LS
00000384 MQS_UPIX_B
00000416
00000448
00000480 20060111080309
00000512
00000544
00000576
00000608 20050909074154 Z2200MM_
00000640 UPIX_DELIVERY000 0170000000
00000672 0014025811 00000001
00000704
00000736
00000768
00000800
00000832
00000864
00000896
00000928
00000960
00000992
00001024
00001056
00001088
00001120
00001152
00001184
00001216
00001248
00001280
00001312
00001344
00001376
00001408
00001440
00001472
00001504
00001536
00001568
00001600
00001632
00001664 Z
00001696 2200MM_UPIX_ITEM000 017
00001728 00000000014025812 00000102
00001760
00001792
00001824
00001856
00001888
00001920
00001952
00001984
00002016
00002048
00002080
00002112
00002144
00002176
00002208
00002240
00002272
00002304
00002336
00002368
00002400
00002432
00002464
00002496
00002528
00002560
00002592
00002624
00002656
00002688
00002720
00002752 Z2200MM_UPIX_ITEM000
00002784 01700000000014025813 000
00002816 00102
00002848
00002880
00002912
00002944
00002976
00003008
00003040
00003072
00003104
00003136
00003168
00003200
00003232
00003264
00003296
00003328
00003360
00003392
00003424
00003456 |
|
|
Back to top |
|
 |
kimbert |
Posted: Wed Jan 11, 2006 5:37 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
OK, I know what the problem is. Your message set is either incorrectly structured, or you have a Root Tag configured.
As a result, the MRM parser thinks that the defaulted elements are missing, and so it uses the default value for those elements.
I need your help to find out why it's happening, though. |
|
Back to top |
|
 |
smeunier |
Posted: Wed Jan 11, 2006 5:46 am Post subject: |
|
|
 Partisan
Joined: 19 Aug 2002 Posts: 305 Location: Green Mountains of Vermont
|
|
Back to top |
|
 |
kimbert |
Posted: Wed Jan 11, 2006 5:50 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
...continued from above - I didn't mean to hit Submit!
From looking at the trace, I can see that the entire input message is 'self-defining'. In other words, the MRM parser did not manage to match any element against the message set. In these circumstances, it still parses the document (unless validation is enabled) but it will get things like default values wrong (because to the MRM parser, it looks as if these elements are missing).
I presume you imported your message set from an XML Schema, so the general structure should be OK.
Double-check that the Message Set and Message Type in the properties are correct.
Check the XML properties of the message set, and make sure that 'Root Tag Name' is cleared.
You can detect this kind of thing by enabling validation in your message flow while you're developing. It can be switched off again when you go into production. |
|
Back to top |
|
 |
smeunier |
Posted: Wed Jan 11, 2006 6:51 am Post subject: |
|
|
 Partisan
Joined: 19 Aug 2002 Posts: 305 Location: Green Mountains of Vermont
|
Here is the scoop. There are two physical formats defined in the message set. CWF for IDOC parsing and CwXML for inbound xml message(This one is defined, only to satisfy the properties that are set by the RFH2HDR, where the Message set id is specified. This comes from the mySap.com adapter configuration and handling of namespace declaration and yes, this Message Set come from a XML schema file.). CwXML has the Root Tag name cleared. The CWF Message set came from a import of a C Header file.
My configuration appears to be correct. If I populate the data fully from the input source(all elements have data), then the output is correct. It is only when I rely on the Message Set to substitute the missing elements to the structure do the data, does the scenario occur. I'm not sure what validation will provide to me, but I can try it. |
|
Back to top |
|
 |
smeunier |
Posted: Wed Jan 11, 2006 7:20 am Post subject: |
|
|
 Partisan
Joined: 19 Aug 2002 Posts: 305 Location: Green Mountains of Vermont
|
In lieu of getting this working the way it is intended, I seen to have a couple options, to not use the default values of the message set, but rather enforce value to the IDOC parser structure(i.e. insure no missing elements).
From a broker perspective, I could use a COALESCE statement, which SHOULD return me a default value if the source filed is missing(i.e. null)
for example rather than this statement:
Code: |
Set OutputRoot.IDOC.DD[Item_CTR+1].sdatatag.MRM.zqty10 = RefToItem.NS_item:"MD_SAP_BO_zcpaor01_z2copor"[Item_CTR].NS_item:"ZQTY10";
|
Issue:
Code: |
Set OutputRoot.IDOC.DD[Item_CTR+1].sdatatag.MRM.zqty10 = COALESCE(RefToItem.NS_item:"MD_SAP_BO_zcpaor01_z2copor"[Item_CTR].NS_item:"ZQTY10",' ');
|
The other option would be to force default back at the Business Object level and set defaults within it. I kind of like the ESQL option(self describing).
Thoughts? |
|
Back to top |
|
 |
kimbert |
Posted: Wed Jan 11, 2006 7:35 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
You can use the ESQL method if you need to keep moving forward. However, the basic problem remains as I described it. Your input XML message consists entirely of self-defining elements. I don't know what your entire message flow looks like, but something is getting confused by those self-defining elements.
To answer your question...validation traps self-defining elements and throws an exception. In this case, it would have alerted you to the underlying problem (input message set in error), rather than leaving you to discover its symptoms ( default values behaving strangely). |
|
Back to top |
|
 |
smeunier |
Posted: Wed Jan 11, 2006 5:18 pm Post subject: |
|
|
 Partisan
Joined: 19 Aug 2002 Posts: 305 Location: Green Mountains of Vermont
|
I set validation on in the Input Node with trace turned on. I see nothing in the trace that would indicate anything being abnormal. Nor sure how to proceed from here. |
|
Back to top |
|
 |
kimbert |
Posted: Thu Jan 12, 2006 1:57 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
That'll teach me to make bold claims
What I should have said is that validation traps self-defining elements but not self-defining messages. Your case is the latter.
In other words, the MRM parser was not able to match the root tag of the input XML message against any of its message definitions.
1. Double-check that the MessageType property matches the name of one of the messages in the message set.
2. If you are sure that the previous check is OK, go to the XML properties of the message definition and check that the 'XML Name' property ( in the 'Field Identification section ) matches the root tag of your input XML document.
3. Check that the namespaces in the message set match with the namespaces used in your input document. |
|
Back to top |
|
 |
|