|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Another XML to MRM Question |
« View previous topic :: View next topic » |
Author |
Message
|
smdavies99 |
Posted: Tue May 06, 2003 4:52 am Post subject: Another XML to MRM Question |
|
|
 Jedi Council
Joined: 10 Feb 2003 Posts: 6076 Location: Somewhere over the Rainbow this side of Never-never land.
|
I have a (probably simple) problem in populating certain parts of an MRM structure.
The problem is to do with a "Choice" type option. I have two message sets that seem to be constructed identically and some ESQL in a compute node that attempts to populate the fields. The snippets below are from a trace node prior to the output node when the CWF formatter dies its bit.
The first one works fine.
)
(0x1000021)MRM = (
(0x1000000)AA_MSG_DETAIL = (
(0x3000000)AA_MSG_OCCURS = '02'
(0x1000000)AA_MSG_OCCDET = (
(0x1000000)AA_MSG_CCARD_NO = (
(0x3000000)AA_MSG_GECARD = '1234512345123451'
)
(0x3000000)AA_MSG_NEW_IND = 'Y'
(0x3000000)AA_MSG_MC_TYPE = 'N'
(0x1000000)AA_MSG_MERCH_NUMX = (
(0x3000000)AA_MSG_MERCH_NUM9 = '080012017'
)
(0x3000000)AA_MSG_PPI_IND = 'Y'
(0x1000000)AA_MSG_OCCDET_GROUP001 = (
(0x1000000)AA_MSG_MCAMNTX = (
(0x3000000)AA_MSG_MCAMNT9 = '00022500'
)
)
(0x3000000)AA_MSG_DEPOSIT_AM9 = '00000000'
(0x3000000)AA_MSG_TOTINT_AM9 = '0000000'
(0x3000000)AA_MSG_MTHINS_AM9 = '0111122'
(0x3000000)AA_MSG_FININS_AM9 = '0000000'
(0x3000000)AA_MSG_APR9 = '2145'
(0x3000000)AA_MSG_DEF_TERM9 = '10'
(0x3000000)AA_MSG_PC1_9 = '000000'
(0x3000000)AA_MSG_PC2_9 = '000000'
(0x3000000)AA_MSG_PC3_9 = '000000'
(0x3000000)AA_MSG_TXN_IND = 'K'
(0x3000000)AA_MSG_SUB_PG = '0000'
(0x3000000)AA_MSG_CODE = 'sch1'
(0x3000000)AA_MSG_CO_CD = 'FNTF2'
(0x3000000)AA_MSG_TERM = '48'
)
(0x1000000)AA_MSG_OCCDET = (
(0x1000000)AA_MSG_CCARD_NO = (
(0x3000000)AA_MSG_GECARD = '2222222222222222'
)
(0x3000000)AA_MSG_NEW_IND = 'Y'
(0x3000000)AA_MSG_MC_TYPE = 'N'
(0x1000000)AA_MSG_MERCH_NUMX = (
(0x3000000)AA_MSG_MERCH_NUM9 = '080012017'
)
(0x3000000)AA_MSG_PPI_IND = 'Y'
(0x1000000)AA_MSG_OCCDET_GROUP001 = (
(0x1000000)AA_MSG_MCAMNT1X = (
(0x3000000)AA_MSG_LEAD0 = 'Q'
(0x1000000)AA_MSG_MCAMNT2X = (
(0x3000000)AA_MSG_MCAMNT29 = '7777777'
)
)
)
(0x3000000)AA_MSG_TOTINT_AM9 = '0000000'
(0x3000000)AA_MSG_MTHINS_AM9 = '0111122'
(0x3000000)AA_MSG_FININS_AM9 = '0000000'
(0x3000000)AA_MSG_APR9 = '2145'
(0x3000000)AA_MSG_DEF_TERM9 = '10'
(0x3000000)AA_MSG_PC1_9 = '000000'
(0x3000000)AA_MSG_PC2_9 = '000000'
(0x3000000)AA_MSG_PC3_9 = '000000'
(0x3000000)AA_MSG_TXN_IND = 'K'
(0x3000000)AA_MSG_SUB_PG = '0000'
(0x3000000)AA_MSG_CODE = 'sch1'
(0x3000000)AA_MSG_CO_CD = 'FNTF2'
(0x3000000)AA_MSG_TERM = '48'
)
)
)
)
The second one only ever puts the first data value in. What I am stumped over is why all the fields in the Choice Structure are shown in the output even if they are not present in the message.
(0x1000021)MRM = (
(0x1000000)AB_MSG_DETAIL = (
(0x3000000)AB_MSG_ACCREF = 'CreditCardNumber'
(0x3000000)AB_MSG_ACCPTX = 'Z'
(0x3000000)AB_MSG_OCCURS = 2
(0x1000000)AB_MSG_OCCDET = (
(0x3000000)AB_MSG_DCODE9= 'AA'
(0x3000000)AB_MSG_REASN9= 'BB'
(0x1000000)AB_MSG_OCCDET_GROUP001 = (
(0x1000000)AB_MSG_DAMNTX = (
(0x3000000)AB_MSG_DAMNT9 = ' '
)
(0x1000000)AB_MSG_DAMNTZ = (
(0x3000000)AB_MSG_DAMNT1 = ' '
)
(0x1000000)AB_MSG_PAYREF = (
(0x3000000)AB_MSG_BOND_NUM = ' '
(0x3000000)FILLER2 = ' '
)
)
(0x3000000)AB_MSG_SIGN = '+'
)
(0x1000000)AB_MSG_OCCDET = (
(0x3000000)AB_MSG_DCODE9= 'AA'
(0x3000000)AB_MSG_REASN9= 'BB'
(0x1000000)AB_MSG_OCCDET_GROUP001 = (
(0x1000000)AB_MSG_DAMNTX = (
(0x3000000)AB_MSG_DAMNT9 = ' '
)
(0x1000000)AB_MSG_DAMNTZ = (
(0x3000000)AB_MSG_DAMNT1 = ' '
)
(0x1000000)AB_MSG_PAYREF = (
(0x3000000)AB_MSG_BOND_NUM = '9-Digits9'
(0x3000000)FILLER2 = ' '
)
)
(0x3000000)AB_MSG_SIGN = '+'
)
)
)
)
The ESQL is constructed in the form
-- Insert MRM message properties
SET OutputLocalEnvironment.Variables.Properties =
ROW('DT6QON009A001' AS MessageSet,
'AA_MSG_RECORD_MESSAGE' AS MessageType,
'CWF' AS MessageFormat,
'W-XML-AA-OCCURS' AS OccursFieldName,
'OCCURS' AS OccursGroupFieldName
);
-- Set 19 record XML to MRM cross reference
SET OutputLocalEnvironment.Variables.XRef.Detail[] =
LIST{
ROW('W-XML-AA-OCCURS9' AS XMLElement, '"AA_MSG_DETAIL"."AA_MSG_OCCURS"' AS MRMField, 'N' AS IndexField, 'N' AS Initialize),
ROW('W-XML-AA-GECARD' AS XMLElement, '"AA_MSG_DETAIL"."AA_MSG_OCCDET"[]."AA_MSG_CCARD_NO"."AA_MSG_GECARD"' AS MRMField, 'Y' AS IndexField, 'Y' AS Initialize),
ROW('W-XML-AA-NEW-IND' AS XMLElement, '"AA_MSG_DETAIL"."AA_MSG_OCCDET"[]."AA_MSG_NEW_IND"' AS MRMField, 'Y' AS IndexField, 'Y' AS Initialize),
ROW('W-XML-AA-CR-TYPE' AS XMLElement, '"AA_MSG_DETAIL"."AA_MSG_OCCDET"[]."AA_MSG_CR_TYPE"' AS MRMField, 'Y' AS IndexField, 'Y' AS Initialize),
ROW('W-XML-AA-MC-TYPE' AS XMLElement, '"AA_MSG_DETAIL"."AA_MSG_OCCDET"[]."AA_MSG_MC_TYPE"' AS MRMField, 'Y' AS IndexField, 'Y' AS Initialize),
ROW('W-XML-AA-MERCH-NUM9' AS XMLElement, '"AA_MSG_DETAIL"."AA_MSG_OCCDET"[]."AA_MSG_MERCH_NUMX"."AA_MSG_MERCH_NUM9"' AS MRMField, 'Y' AS IndexField, 'Y' AS Initialize),
ROW('W-XML-AA-PPI-IND' AS XMLElement, '"AA_MSG_DETAIL"."AA_MSG_OCCDET"[]."AA_MSG_PPI_IND"' AS MRMField, 'Y' AS IndexField, 'Y' AS Initialize),
ROW('W-XML-AA-MCAMNT9' AS XMLElement, '"AA_MSG_DETAIL"."AA_MSG_OCCDET"[]."AA_MSG_OCCDET_GROUP001"."AA_MSG_MCAMNTX"."AA_MSG_MCAMNT9"' AS MRMField, 'Y' AS IndexField, 'Y' AS Initialize),
ROW('W-XML-AA-LEAD0' AS XMLElement, '"AA_MSG_DETAIL"."AA_MSG_OCCDET"[]."AA_MSG_OCCDET_GROUP001"."AA_MSG_MCAMNT1X"."AA_MSG_LEAD0"' AS MRMField, 'Y' AS IndexField, 'Y' AS Initialize),
ROW('W-XML-AA-MCAMNT29' AS XMLElement, '"AA_MSG_DETAIL"."AA_MSG_OCCDET"[]."AA_MSG_OCCDET_GROUP001"."AA_MSG_MCAMNT1X"."AA_MSG_MCAMNT2X"."AA_MSG_MCAMNT29"' AS MRMField, 'Y' AS IndexField, 'Y' AS Initialize),
);
finally, what is the real significant of the IndexField & Initialize parameters shown in the ESQL
S. |
|
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
|
|
|
|