cancel
Showing results for 
Search instead for 
Did you mean: 
Subscribe

Dear all,

I have a input that looks like this:

HeaderKeySomeHeaderInformationItemKeySomeItemInformationItemKeySomeItemInformation...

Here's the actual input


TEHGMESS0026000000288S0001TEI2____026200006112410400000000           18010000000000                                                      00126000000000126000120600000000002000000000                                    000WESTMONOBERTBE2014052309422408120003 000000000000000000000000000000JTEI2____026200006112410400000000           19010000000000                                                      00126000000000126000120600000000002000000000                                    000WESTMONOBERTBE2014052309422408120003 000000000000000000000000000000J

HeaderKey = TEHGMESS

ItemKey = TEI2____

Is it possible to process this via MessageTransformBean (my actual scenario is JMS to IDoc)? I already tried but I only succeeded when having new lines in my input to separate between Header and (multiple) Items.

So when the input and my configuration looks like below it works, but when I only have a single row input it doesn't work, even when specifying xml.recordHeader.endSeparator = '0' / xml.recordItem.endSeparator = '0'. I even tried xml.endSeparator = '0' but no luck.

Input that works


TEHGMESS0026000000288S0001

TEI2____026200006112410400000000           18010000000000                                                      00126000000000126000120600000000002000000000                                    000WESTMONOBERTBE2014052309422408120003 000000000000000000000000000000J

TEI2____026200006112410400000000           19010000000000                                                      00126000000000126000120600000000002000000000                                    000WESTMONOBERTBE2014052309422408120003 000000000000000000000000000000J

Matching configuration that works for input which structures are delimited by new line.

ParamenternameParametervalue
Transform.Classcom.sap.aii.messaging.adapter.Conversion
Transform.ContentTypetext/xml;charset=utf-8
xml.conversionTypeStructPlain2XML
xml.documentNameMT_TEI2Split
xml.documentNamespacehttp://hansgrohe.com/pi/MQ/TEI2/10
xml.keyFieldNameSATZARTKey
xml.keyFieldTypeCaseSensitiveString
xml.processFieldNamesfromConfiguration
xml.recordHeader.fieldFixedLengths8,4,9,1,4
xml.recordHeader.fieldNamesSATZARTKey,SATZLENHG,NUTZLEN,MESSAE,MESSNR
xml.recordHeader.keyFieldValueTEHGMESS
xml.recordItem.fieldFixedLengths8,4,2,10,8,19,3,3,2,10,6,2,10,6,2,10,6,6,6,6,6,11,9,2,10,6,2,10,6,3,4,3,7,14,8,1,31
xml.recordItem.fieldNamesSATZARTKey,SATZLEN,BUCHART,TRNR,ANDGNR,MITEM,TEIVARI,BSTSTATU,REFTYP,ORNO,POS,REFTYP1,ORNO1,POS1,CHATYP,CHARGE,CHAPOS,ABBVONL,ABBNACH,ZUBVONL,ZUBNACH,I2MENG,I2BUNR,REFTYPN,ORNON,POSN,REFTYP1N,ORNO1N,POS1N,BSTSTATN,ABUSERAB,ABUSERFN,ABUSERNA,I2TIME,I2LIDNR,I2FMCODE,FILLER
xml.recordItem.keyFieldValueTEI2____
xml.recordsetNamerecords
xml.recordsetStructurerecordHeader,1,recordItem,*

Any clues on this? Is it even possible to have multiple structures in one row? Many thanks in advance

Jens

0 Likes
View Entire Topic
ambrish_mishra
Active Contributor
0 Likes

Hi Jens,

Similar to what Amit has suggested, you can read the input as a string and break the input down into header and items in an intermediate message mapping before doing the final mapping to the target.

Ambrish