Content Conversion for Item node under Header node

Hi,
Below is the file sample:
0LBS00000000082011090707:30:13~0000000009
4GBP55.67SB300005VISTADocNO1100DistChanPaymentDays
5001QuanUoMNetPriceGrossPricePubDiv9781444724585201109071001.1
5002QuanUoMNetPriceGrossPricePubDiv9781444724585201109071001.1
4GBP55.67SB300005VISTADocNO1100DistChanPaymentDays
5001QuanUoMNetPriceGrossPricePubDiv9781444724585201109071001.1
1~7
Record Type:Header Record(Always = 0),Min Occurrence:1,Max Occurrence:1
Record Type:Sales Invoice Header Record (Always = 4),Min Occurrence:0,Max Occurrence:unlimited
Record Type:Sales Invoice Item Record (Always = 5) ,Min Occurrence:1(per Sales Invoice Header Record)
,Max Occurrence:999999 (per Sales Invoice Header Record)
Record Type:Trailer Record(Always = 1),Min Occurrence:1,Max Occurrence:1
In content conversion:
Record set structure:Header,1,SalesInvoiceHeader,(Star),SalesInvoiceItem,(Star),Trailer,1
Key field name:RecordType
Header.fieldSeparator ~
Header.fieldNames RecordType,SendingSystem,FileNumber,CreationDate,CreationTime,NextFileNumber
Header.keyFieldValue 0
SalesInvoiceHeader.fieldSeparator ~
SalesInvoiceHeader.fieldNames cordType,Currency,ExchangeRate,DocumentType,Customer,VistaDocNumber,PubDiv,DistChan,PaymentDays
SalesInvoiceHeader.keyFieldValue 4
SalesInvoiceItem.fieldSeparator ~
SalesInvoiceItem.fieldNames RecordType,ItemNumber,Quantity,UoM,NetPrice,GrossPrice,PubDiv,Material,BillDate,VATAmount,VATRate
SalesInvoiceItem.keyFieldValue 5
Trailer.fieldSeparator ~
Trailer.fieldNames RecordType,RecordCount
Trailer.keyFieldValue 1
ignoreRecordsetName true
The Src str in ESR is
1. Header
2. SalesInvoiceHeader
SalesIncoiveItem(Chlid node of SalesInvoiceHeader)......
3. Trailer
Provide some inputs
Thnkx

VJ,
You are absolutely right it is not possible to get multiple hierarchy using file content conversion.
Splitbyvalue function would not work in my scenario as I need to group FED records based on first few characters in the first column of FED records. I wrote a UDF to insert context change based on the column value.
Thanks again for your help.
Regards
Haseeb

Similar Messages

  • Fetch Charge item present under TransportCharges node for Freight order

    Hi All,
    I need to fetch the details of the charge elements for carrier for freight order.
    I was able to traverse till node "TransportCharges" for the business object /scmtms/tor.
    I am not to traverse further to the charge item present under the node 'TransportCharges'.
    Which method I should use to fetch the details like 'Retrieve by association' or 'Retrieve' of service manager.
    I was able to see the details in transaction /bobf/test_ui. I need to implement the code for the same functionality.
    Please help me which parameters needs to be passed to the method to fetch the data, as I am getting dump when I trying to fetch the charge item details.
    Regards,
    Joseph M

    Hi All,
    Transport charge being a dependent object, to access the parameters need to use the class
    /scmtms/cl_common_helper=>get_do_keys_4_rba( ).
    This is done to convert the meta model keys to run time keys for processing.
    Regards,
    Joseph M

  • Hierarchy on file content conversion for receiver?

    Y'all,
    I'm stuck in this problem and I haven't find a solution to solved it... so, all your clues and reply's are really appreciate...
    The basic problem is a File content conversion for a receiver C.C. that is not working and it's raising some errors in the RWB, I have gone thru some blogs but I still having a lot of doubts...
    I want to produce a flat TXT file that will have a line for every node or subnode, it doesn't matter if it's not represented as hierarchical structure like this one... but the records must be produced or written in the same order...
    Man_Del_Header as main node with Man_Header, Delete_Detail and Trailer as subnodes...
    <?xml version="1.0" encoding="UTF-8"?>
    <ns1:MT_DISTRIBUTOR_DELETE xmlns:ns1="http://xxx.com/xi/POSout">
       <Man_Del_Header>
          <MD_Header>|HM|1|</MD_Header>
          <MD_StoreNumber>051</MD_StoreNumber>
          <MD_filler1>|2|0000|3|</MD_filler1>
          <MD_EffDate>09/17/07</MD_EffDate>
          <MD_filler2>|4|005|5|dsdvnd|7|</MD_filler2>
          <MD_BatchNumber>500</MD_BatchNumber>
          <MD_fiiller3>|8|</MD_fiiller3>
          <MD_BatchDescr>DELETE PREV CST BTCH</MD_BatchDescr>
          <MD_filler4>|10|D|</MD_filler4>
          <MD_linef>1</MD_linef>
          <Man_Header>
             <Man_Header>|HM|1|</Man_Header>
             <Man_StoreNumber>051</Man_StoreNumber>
             <Man_filler1>|2|0000|3|</Man_filler1>
             <Man_EffDate>09/17/07</Man_EffDate>
             <Man_filler2>|4|005|5|dsdvnd|7|</Man_filler2>
             <Man_BatchNumber>500</Man_BatchNumber>
             <Man_filler3>|8|</Man_filler3>
             <Man_BatchDescription>Delete Distributor</Man_BatchDescription>
             <Man_filler4>|</Man_filler4>
             <Man_linef>Constant</Man_linef>
          </Man_Header>
          <Delete_Detail>
             <Delete_Detail>|D|901|170|</Delete_Detail>
             <Delete_DistribNumber>0000005010</Delete_DistribNumber>
             <filler9>|</filler9>
             <delete_linef>1</delete_linef>
          </Delete_Detail>
          <Delete_Detail>
             <Delete_Detail>|D|901|170|</Delete_Detail>
             <Delete_DistribNumber>0000005011</Delete_DistribNumber>
             <filler9>|</filler9>
             <delete_linef>1</delete_linef>
          </Delete_Detail>
          <Trailer>
             <Trailer>|T|1|</Trailer>
             <TotalRecCnt>00005</TotalRecCnt>
             <filler1>|2|</filler1>
             <NoOfHeaders>00002</NoOfHeaders>
             <filler2>|3|</filler2>
             <NoOfAdds>00000</NoOfAdds>
             <filler3>|4|</filler3>
             <NoOfChanges>00000</NoOfChanges>
             <filler4>|5|</filler4>
             <NoOfDeletes>00002</NoOfDeletes>
             <filler5>|13|</filler5>
             <NoOfSubstitution>00000</NoOfSubstitution>
             <filler6>|</filler6>
             <linef>1</linef>
          </Trailer>
       </Man_Del_Header>
       <Man_Del_Header>
          <MD_Header>|HM|1|</MD_Header>
          <MD_StoreNumber>061</MD_StoreNumber>
          <MD_filler1>|2|0000|3|</MD_filler1>
          <MD_EffDate>09/17/07</MD_EffDate>
          <MD_filler2>|4|005|5|dsdvnd|7|</MD_filler2>
          <MD_BatchNumber>500</MD_BatchNumber>
          <MD_fiiller3>|8|</MD_fiiller3>
          <MD_BatchDescr>DELETE PREV CST BTCH</MD_BatchDescr>
          <MD_filler4>|10|D|</MD_filler4>
          <MD_linef>1</MD_linef>
          <Man_Header>
             <Man_Header>|HM|1|</Man_Header>
             <Man_StoreNumber>061</Man_StoreNumber>
             <Man_filler1>|2|0000|3|</Man_filler1>
             <Man_EffDate>09/17/07</Man_EffDate>
             <Man_filler2>|4|005|5|dsdvnd|7|</Man_filler2>
             <Man_BatchNumber>500</Man_BatchNumber>
             <Man_filler3>|8|</Man_filler3>
             <Man_BatchDescription>Delete Distributor</Man_BatchDescription>
             <Man_filler4>|</Man_filler4>
             <Man_linef>Constant</Man_linef>
          </Man_Header>
          <Delete_Detail>
             <Delete_Detail>|D|901|170|</Delete_Detail>
             <Delete_DistribNumber>0000005012</Delete_DistribNumber>
             <filler9>|</filler9>
             <delete_linef>1</delete_linef>
          </Delete_Detail>
          <Delete_Detail>
             <Delete_Detail>|D|901|170|</Delete_Detail>
             <Delete_DistribNumber>0000005013</Delete_DistribNumber>
             <filler9>|</filler9>
             <delete_linef>1</delete_linef>
          </Delete_Detail>
          <Delete_Detail>
             <Delete_Detail>|D|901|170|</Delete_Detail>
             <Delete_DistribNumber>0000005014</Delete_DistribNumber>
             <filler9>|</filler9>
             <delete_linef>1</delete_linef>
          </Delete_Detail>
          <Trailer>
             <Trailer>|T|1|</Trailer>
             <TotalRecCnt>00006</TotalRecCnt>
             <filler1>|2|</filler1>
             <NoOfHeaders>00002</NoOfHeaders>
             <filler2>|3|</filler2>
             <NoOfAdds>00000</NoOfAdds>
             <filler3>|4|</filler3>
             <NoOfChanges>00000</NoOfChanges>
             <filler4>|5|</filler4>
             <NoOfDeletes>00003</NoOfDeletes>
             <filler5>|13|</filler5>
             <NoOfSubstitution>00000</NoOfSubstitution>
             <filler6>|</filler6>
             <linef>1</linef>
          </Trailer>
       </Man_Del_Header>
    </ns1:MT_DISTRIBUTOR_DELETE>
    |HM|1|051|2|0000|3|09/17/07|4|005|5|dsdvnd|7|500|8|DELETE PREV CST BTCH|10|D|1
    |HM|1|051|2|0000|3|09/17/07|4|005|5|dsdvnd|7|500|8|Delete Distributor|Constant
    |D|901|170|0000005010|1
    |D|901|170|0000005011|1
    |T|1|00005|2|00002|3|00000|4|00000|5|00002|13|00000|1
    |HM|1|061|2|0000|3|09/17/07|4|005|5|dsdvnd|7|500|8|DELETE PREV CST BTCH|10|D|1
    |HM|1|061|2|0000|3|09/17/07|4|005|5|dsdvnd|7|500|8|Delete Distributor|Constant
    |D|901|170|0000005012|1
    |D|901|170|0000005013|1
    |D|901|170|0000005014|1
    |T|1|00006|2|00002|3|00000|4|00000|5|00003|13|00000|1
    So as you can see, i wanna produce a flat file that will have line or record for each node, it doesn't matter that it has a hierarchy or a deeper level, it should be a simple flat file...
    The thing is that i have been trying to setup the receiver comm. channel and it's raising some errors like Could not process due to error:
    <i>java.lang.Exception: Exception in XML Parser (format problem?):'java.lang.Exception: Message processing failed in XML parser: 'java.lang.Exception: Consistency error: more fields found in XML structure than specified in conversion parameters! (Value 'XXXX')', probably configuration error in file adapter (XML parser error)'</i>
    I have checked this blog:
    /people/karthiknarayan.kesavan2/blog/2007/08/22/file-content-conversion-for-multi-hierarchical-structure
    Unfortunately i don't know if there's another way to achieve this...

    Jerry,
    it easy if you go with multi mapping concept and without BPM if you are above >XI3.0 SP14.and use Append mode in the receiver file adapter.
    just create the target structure like root under that Man_Del_Header,Man_Header,Detail,Trailer at the same level but got be careful with occurences.
    <b>Source:</b>
    I think from your structure you have
    Man_Del_Header  (1-unb)
    Man_Header   (1-1)
    detail   (0-unb ) may be (1-unb)
    trailer (1-1)
    create <b>target DT</b> like:
    ROOT
    ..Man_Del_Header  (1-1)
    ..Man_Header   (1-1)
    ..detail   (0-unb ) may be (1-unb)
    ..trailer (1-1)
    all are at same level under ROOT.
    create MT,MI,MM,IM.
    in MM just map correspoding fields and if you have any unbounded onces map the nodes too. and map Man_Del_Header in the source to MT_XYZ (important)
    and in the MM go to MESSAGES tab and change the occurences of the target Message to 0-unbounded same way in the interface mapping 0-unbounded.
    here it create anothe extra node in the mapping something like Message1,this is ok.
    and in ID just create all other objects like as usual except  creating Interface determination ,in that select the extended radio button.
    in reciever File CC use FCC ,would be very simple in the recordsetstrcture give
    your four nodes Man_Del_Header,Man_Header,Detail,Trailer.
    and use either fixed or field seperator.use append mode in recv File CC otherwise it will generate files as many occurences your source "Man_Del_Header" has ,cos we are mapping it to the MT--xyz .
    thats it you are ready to go...
    if any error post back here again.
    you can make use of this thread
    /people/jin.shin/blog/2006/02/07/multi-mapping-without-bpm--yes-it146s-possible  (here there are two target DT ,but you just create one DT,remaining are similar)
    good luck.
    Babu

  • Content conversion for multilevel varying structure File to Idoc

    Hi All,
    I have following file structure.
    VO
    C1
    S1 1 to unbounded
         H1 1 to unbounded
              D1 0 to unbounded
              D2 0 to unbounded
              U2 0 to unbounded
              UC 0 to unbounded
    My Idoc structure.
    ISU_EL34
         IDOC 0 to unbounded
              E1ISU34 1 to unbounded
                   ZSEGMENT 0 to 1
    I have applied the content conversion for the length specific file as follows.
    Recordset structure: VO,1,C1,1,S1,1,H1,1,D1,,D2,,U2,,UC,
    Do I need to do any changes over here to satisfy the above file structure.
    V0 and C1 occurs only once in a file.
    for S1 I should  have H1 compulsory and others are optional, but i need to create Idoc when D1 data is available only.
    I'm able to read the total file with the above content conversion.
    MY requirements:
    1) I need to create the Idoc based on the occurance of D1 node. I'm using H1 data also in the idoc not S1.
    2) My doubt is whether the content conversion I have provide is applicable to the structure I have prepared.
    3) When I'm trying useOneAsMany function for the above ie H1 data should repeat in Idoc as and when D1 repeats.I'm failing the error is both queues are not contain same number of data..
    Could anyone suggest how I should approach for the above scenario.

    Hi Sravya,
    It is really helpfull answer , Thanks for sharing my problem .
    It worked for this purpose, but I'm facing following problems
    MY scenario
    The file contains records V0,C1,S1,H1,D1,D2,U2 and Uc
    In which I’m using the data of H1,D1,D2,U2 and UC for creating target Idoc.
    Every H1 contains at least 1 D1 record, If D1 exists D2 ,U2 and UC may or may not exist.If exists those are in a sequence and should consider the data of them to create Idoc.
    Idoc should be created for every D1.
    Problem facing:
    Do we have any mechanism to group the D1 records to the relevant header.since I’m unable do this with content conversion.
    I think bcz of above problem; some records (D2 & U2 & UC) data is populating in Idoc even there is no D2,U2 and Ucs.
    Thanks,
    venu.

  • How to use content conversion for Complex structure

    Hi All,
    I want to know how to use content conversion for the following complex structure:
    Data               
    ...Details            1 to Unbound
    .....Header           1 to 1
    .......HF1
    .......HF2
    .......HF3
    .......ITEM           1 to unbound
    .........ITF1
    .........ITF2
    all are of type string.
    Thanks & Regards,
    Viswanath
    Message was edited by: Viswanath Mente

    Hi,
    In the content conversion,
    give ur
    1.document name as message type
    2.give ur recordstructure as Details,,Header,1,ITEM,
    3.mention ur keyfield.
    conversion parameter
    Header.fieldFixedLength - give the field lengths
    Header.fieldNames=mention all the field name
    Header.keyField=enter the value of keyfield
    Header.endSeparator='nl'
    repeat the same  for Item
    regards
    jithesh

  • File content conversion for Pipe delimited file

    Hi
    i have a scenario ( file-xi-proxy) in whch file is coming in a pipe delimited.
    my data type is like
    DT_ XXXXX
    AwardInfo
    Header contains some fileds
    DetailRecord contains some fileds
    trailer contains some fields
    what are content conversion parameters i have to use
    venkat

    Sedamkar,
    Expecting you have one header, multiple details and one trailer then give recordset structure in sender file communication channel as:
    Header,1,DetailRecord ,*,trailer,1
    In content conversion you should give parameters:
    Header.fieldSeparator : |
    Header.endSeparator : 'nl'
    DetailRecord.fieldSeparator : |
    DetailRecord.endSeparator : 'nl'
    trailer.fieldSeparator : |
    trailer.endSeparator : 'nl'
    You may need to change the parameters also according to your strcuture and the file layout. See this SAP help for file content conversion:
    http://help.sap.com/saphelp_nw04/helpdata/en/e3/94007075cae04f930cc4c034e411e1/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/2c/181077dd7d6b4ea6a8029b20bf7e55/content.htm
    Regards,
    ---Satish

  • Query on Content conversion for Receiver SFTP Adapter

    Hi Experts,
    We have the receiver structre as follows:
    <DT_Receiever>
    <Header>
    <field1>abc<\field1>
    <field2>1234<\field2>
    <\Header>
    <Detail>
    <field3>nhj<\field3>
    <field4>bshsrt<\field4>
    <\Detail>
    <\DT_Receiever>
    We should do content conversion for the above structure using SFTP adapter at the receiver end.
    Kindly provide us some tips in achieving the same.
    Thanks
    Suganya.

    Hi Suganya,
    You can use message tranform bean for ur case.
    U have to use "StructXML2Plain"
    Please follow below link for ur reference If you face any problem please let me know....
    http://help.sap.com/saphelp_nw04/helpdata/en/24/4cad3baabd4737bab64d0201bc0c6c/content.htm
    Thanks,
    Enivass

  • File Content Conversion for Unequal Number of Columns

    Hi,
    Iam following this thread FCC for Unequal Number of Columns.
    /people/jeyakumar.muthu2/blog/2005/11/29/file-content-conversion-for-unequal-number-of-columns
    when iam doing ,iam getting an error
    Conversion initialization failed: java.lang.Exception: java.lang.Exception: java.lang.Exception: Error(s) in XML conversion parameters found: Parameter 'TOTALSET.fieldFixedLengths' or 'TOTALSET.fieldSeparator' is missing Consistency check: no. of arguments in 'TOTALSET.fieldFixedLength' does not match 'TOTALSET.fieldNames' (0 <> 1)
    My conversion parameters are
    Recordset Structure                      : TOTALSET,*
    TOTALSET.fieldNames                 : ITEMSET
    ignoreRecordsetName                   : true
    TOTALSET.fieldSeparator              : 'nl'
    My file structure is as below
    01,021000021,G4886704,080919,0742,001,,,2
    02,G4886704,021000021,1,080918,0742,,2
    03,000000135073477,,010,105303839,,,015,489113155,,,045,489039455,,,072,73700
    Please help in resoving the error.
    Thanks in Advance
    Srinivas

    Hi Srivinas,
    your file structure is as below
    01,021000021,G4886704,080919,0742,001,,,2
    02,G4886704,021000021,1,080918,0742,,2
    03,000000135073477,,010,105303839,,,015,489113155,,,045,489039455,,,072,73700
    So it's easy, you have to use KEYFIELD option, coz you have something like that :
    Line 1 : keyfield = 01 following by a limited number of columns (e.g 30 fields for Structure1)
    Line 2 : keyfield = 02 following by a limited number of columns (e.g 14 fields for Structure2)
    Line 3 : keyfield = 03 following by a limited number of columns (e.g 23 fields for Structure3)
    Thanks to the Keyfield, you define a field which is present in each line that you can used to distinguished the different structures of lines. In your case, it seems that the keyfield is the first column (01, 02, 03).
    Try to use that:
    Recorset = TOTALSET         (and don't use option "ignoreRecordsetName : true")
    Recordset structure =Structure1,1,Structure2,(star),Structure3,(start)       (the difficulty will be to find the good use of "*" and "1", but after some tests you will find the good one).
    Note: replace (start) by the character " * "
    Key field value = keyfield
    Key field type  = String (case sensitive)
    Structure1.fieldNames  = keyfield,field2, field3 etc.. of Structure1
    Structure2.fieldNames  = keyfield,field2, field3 etc.. of Structure2
    Structure3.fieldNames  = keyfield,field2, field3 etc.. of Structure3
    and then you will have a XML like that:
    TOTALSET
    Structure1  and all its fieldN
    Structure2  and all its fieldN
    Structure2  and all its fieldN
    Structure3  and all its fieldN
    Structure3  and all its fieldN
    TOTALSET
    Structure1  and all its fieldN    because I used Structure1,1
    Structure3  and all its fieldN
    Regards.
    Mickael
    Edited by: Mickael Huchet on Apr 20, 2009 5:18 PM
    Edited by: Mickael Huchet on Apr 20, 2009 5:19 PM

  • Content Conversion for Sending Communication Channel using File Protocol

    I have a file as follows:
    CUSC,CRCA,OBAL,DATE
    10197,0111,15250094.05,20071008
    10758,0111,8131440.17,20071008
    12939,0111,8212006.53,20071008
    13129,0111,6953749.77,20071008
    13331,0111,8607294.15,20071008
    13579,0111,11972774.95,20071008
    13676,0111,6636698.47,20071008
    What is the content conversion that I can proceed with so that I can go with the mapping. I have to use File Adapter?
    Please Help

    Hi,
    Check below links for Content conversion.
    /people/venkat.donela/blog/2005/03/02/introduction-to-simplefile-xi-filescenario-and-complete-walk-through-for-starterspart1
    /people/venkat.donela/blog/2005/03/03/introduction-to-simple-file-xi-filescenario-and-complete-walk-through-for-starterspart2
    /people/arpit.seth/blog/2005/06/02/file-receiver-with-content-conversion
    /people/anish.abraham2/blog/2005/06/08/content-conversion-patternrandom-content-in-input-file
    /people/shabarish.vijayakumar/blog/2005/08/17/nab-the-tab-file-adapter
    /people/venkat.donela/blog/2005/03/02/introduction-to-simplefile-xi-filescenario-and-complete-walk-through-for-starterspart1
    /people/venkat.donela/blog/2005/03/03/introduction-to-simple-file-xi-filescenario-and-complete-walk-through-for-starterspart2
    /people/venkat.donela/blog/2005/06/08/how-to-send-a-flat-file-with-various-field-lengths-and-variable-substructures-to-xi-30
    /people/anish.abraham2/blog/2005/06/08/content-conversion-patternrandom-content-in-input-file
    /people/shabarish.vijayakumar/blog/2005/08/17/nab-the-tab-file-adapter
    /people/jeyakumar.muthu2/blog/2005/11/29/file-content-conversion-for-unequal-number-of-columns
    /people/shabarish.vijayakumar/blog/2006/02/27/content-conversion-the-key-field-problem
    /people/michal.krawczyk2/blog/2004/12/15/how-to-send-a-flat-file-with-fixed-lengths-to-xi-30-using-a-central-file-adapter
    /people/arpit.seth/blog/2005/06/02/file-receiver-with-content-conversion
    http://help.sap.com/saphelp_nw04/helpdata/en/d2/bab440c97f3716e10000000a155106/content.htm
    Regards,
    Phani
    Reward points if Helpful

  • Message Mapping: Items under Header node.

    Hi,
    Below is the file sample:
    0LBS00000000082011090707:30:13~0000000009
    4GBP55.67SB300005VISTADocNO1100DistChanPaymentDays
    5001QuanUoMNetPriceGrossPricePubDiv9781444724585201109071001.1
    5002QuanUoMNetPriceGrossPricePubDiv9781444724585201109071001.1
    4GBP55.67SB300005VISTADocNO1100DistChanPaymentDays
    5001QuanUoMNetPriceGrossPricePubDiv9781444724585201109071001.1
    1~7
    Record Type:Header Record(Always = 0),Min Occurrence:1,Max Occurrence:1
    Record Type:Sales Invoice Header Record (Always = 4),Min Occurrence:0,Max Occurrence:unlimited
    Record Type:Sales Invoice Item Record (Always = 5) ,Min Occurrence:1(per Sales Invoice Header Record)
    ,Max Occurrence:999999 (per Sales Invoice Header Record)
    Record Type:Trailer Record(Always = 1),Min Occurrence:1,Max Occurrence:1
    The Src Str is:
    Header
    SalesInvoiceHeader
    SalesInvoiceItem
    Trailer
    The target Str is:
    Header
    SalesInvoiceHeader
    SalesInvoiceItem (Child node of SalesInvoiceHeader)
    Trailer
    Provide some inputs.
    Thanx

    You can read this with FCC.
    you to create  4 structure
    DT_input
    ...HeaderRecord 1..1
    .....f1
    .....f2
    .....fn
    ...SalesInvoiceHeader 1..unbounded
    .....f1
    .....f2
    .....fn
    ...SalesInvoiceItem  1..unbounded
    .....f1
    .....f2
    .....fn
    ...Trailer  1..1
    .....f1
    Content conversion paarameters
    Recorset Structure = HeaderRecord,1,SalesInvoiceHeader,*,SalesInvoiceItem,*,Trailer,1
    Key Field Names = KEY
    HeaderRecord.fieldNames = KEY,.......
    HeaderRecord.fieldSeparator = '~'
    HeaderRecord.keyfieldValue = 0
    SalesInvoiceHeader.fieldNames = KEY,.......
    SalesInvoiceHeader.fieldSeparator = '~'
    SalesInvoiceHeader.keyfieldValue = 4
    SalesInvoiceItem .fieldNames = KEY,.......
    SalesInvoiceItem .fieldSeparator = '~'
    SalesInvoiceItem .keyfieldValue = 5
    Trailer .fieldNames = KEY
    Trailer .fieldSeparator = '~'
    Trailer .keyfieldValue = 1
    good luck

  • File sender adapter: Content conversion for very deep nested structure

    Hi all
    I have a file which looks like this
    HDOCKET    9800000660980000061911062009AA123456bbWM100012349800000619
    DDOCKET_TEST001 4012YAG1 
    WZOA00000000010000000001
    WZOA00000000020000000002
    WZOB00000000030000000003
    IAAXX000001
    IAAXX000002
    C0000000000000000000100000000000000000001000000000000000000020000000000000000000300000000000000000004
    T2
    and my structure is
    Header  - 1
    Detail     - 0....Unbounded
            Bag     - 0.....Unbounded   (sub node of detail)
            Track  - 0.....Unbounded    (sub node of detail)
            Customer - 0.....Unbounded    (sub node of detail)
    Trailer    - 1
    and in the file sender adapter i mentioned the following content conversion setting
    HEADER,1,DETAIL,*,Bag,*,Track,*,Customer,*,TRAILER,*
    But when i go and see in the monitoring i received the following conversion
    <?xml version="1.0" encoding="utf-8" ?>
    <ns:MT_REQ xmlns:ns="http://royalmail.com/dd_c">
    <HEADER>
      <ID>H</ID>
      <INT>DD</INT>
      <CAR>9899999660</CAR>
      <CUS>9899999619</CUS>
      <POST>11062009</POST>
      <NUMBER>AA123456bbWM10001234</NUMBER>
      <ACC>9899999619</ACC>
      </HEADER>
    <DETAIL>
      <ID>D</ID>
      <Bag>DOCKET_TEST001</Bag>
      <S>4012</S>
      <Code>YAG</Code>
      <mat>1</mat>
      <count/>
      <Mixed />
      </DETAIL>
    <Bag>
      <ID>W</ID>
      <Zone>ZOA</Zone>
      <Item>0000000001</Item>
      <Number>0000000001</Number>
      </Bag>
    <Bag>
      <ID>W</ID>
      <Zone>ZOA</Zone>
      <Item>0000000001</Item>
      <Number>0000000001</Number>
      </Bag>
    <Bag>
      <ID>W</ID>
      <Zone>ZOA</Zone>
      <Item>0000000001</Item>
      <Number>0000000001</Number>
      </Bag>
      </Bag>
    <Track>
      <ID>I</ID>
      <Item>AAXX000001</Item>
      </Track>
    <Track>
      <ID>I</ID>
      <Item>AAXX000001</Item>
      </Tracked>
    <Customer>
      <ID>C</ID>
      <OrigCustomer>00000000000000000001</OrigCustomer>
      <Field1>00000000000000000001</Field1>
      <Field2>00000000000000000002</Field2>
      <Field3>00000000000000000003</Field3>
      <Field4>00000000000000000004</Field4>
      </Customer>
    <TRAILER>
      <ID>T</ID>
      <Count>2</Count>
      </TRAILER>
      </ns:MT_REQ>
    whereas i wanted it like:
    <?xml version="1.0" encoding="utf-8" ?>
    <ns:MT_REQ xmlns:ns="http://royalmail.com/dd_c">
    <HEADER>
      <ID>H</ID>
      <INT>DD</INT>
      <CAR>9899999660</CAR>
      <CUS>9899999619</CUS>
      <POST>11062009</POST>
      <NUMBER>AA123456bbWM10001234</NUMBER>
      <ACC>9899999619</ACC>
      </HEADER>
    <DETAIL>
      <ID>D</ID>
      <Bag>DD_TEST001</Bag>
      <S>4012</S>
      <Code>egg</Code>
      <mat>1</mat>
      <count/>
      <Mixed />
    <Bag>
      <ID>W</ID>
      <Zone>zzz</Zone>
      <Item>0000000001</Item>
      <Number>0000000001</Number>
      </Bag>
    <Bag>
      <ID>W</ID>
      <Zone>zzz</Zone>
      <Item>0000000001</Item>
      <Number>0000000001</Number>
      </Bag>
    <Bag>
      <ID>W</ID>
      <Zone>zzz</Zone>
      <Item>0000000001</Item>
      <Number>0000000001</Number>
      </Bag>
      </Bag>
    <Track>
      <ID>I</ID>
      <Item>AAXX000001</Item>
      </Track>
    <Track>
      <ID>I</ID>
      <Item>AAXX000001</Item>
      </Tracked>
    <Customer>
      <ID>C</ID>
      <OrigCustomer>00000000000000000001</OrigCustomer>
      <Field1>00000000000000000001</Field1>
      <Field2>00000000000000000002</Field2>
      <Field3>00000000000000000003</Field3>
      <Field4>00000000000000000004</Field4>
      </Customer>
    </DETAIL>
    <DETAIL>
      <ID>D</ID>
      <Bag>DD_TEST002</Bag>
      <S>4012</S>
      <Code>egg</Code>
      <mat>1</mat>
      <count/>
      <Mixed />
    <Bag>
      <ID>W</ID>
      <Zone>zzzzzz</Zone>
      <Item>0000000001</Item>
      <Number>0000000001</Number>
      </Bag>
    <Bag>
      <ID>W</ID>
      <Zone>ZOA</Zone>
      <Item>0000000001</Item>
      <Number>0000000001</Number>
      </Bag>
    <Bag>
      <ID>W</ID>
      <Zone>zzz</Zone>
      <Item>0000000001</Item>
      <Number>0000000001</Number>
      </Bag>
      </Bag>
    <Track>
      <ID>I</ID>
      <Item>AAXX000001</Item>
      </Track>
    <Track>
      <ID>I</ID>
      <Item>AAXX000001</Item>
      </Tracked>
    <Customer>
      <ID>C</ID>
      <OrigCustomer>00000000000000000001</OrigCustomer>
      <Field1>00000000000000000001</Field1>
      <Field2>00000000000000000002</Field2>
      <Field3>00000000000000000003</Field3>
      <Field4>00000000000000000004</Field4>
      </Customer>
    </DETAIL>
    <TRAILER>
      <ID>T</ID>
      <Count>2</Count>
      </TRAILER>
      </ns:MT_REQ>
    i.e. i need all Bag ,Track and Customer inside detail tag.
    could anyone help me in this..i've already searched SDN and got some link as useful but none of them were totally related.
    Regards
    Naina

    Naina
    Pls. check my forum link, i had the single level hierarchy XML file which I converted into nested structure & then into flat file.
    File Conversion in Rec File Adapter with subnodes
    This can give you an idea how to go ahead. Let me know in case you need any more info about this.

  • File  Content  Conversion for ignoring the entire line

    Hi,
       I'm getting a CSV file from that i want to skip some  records based on some validation.. for example:
    I'm getting the following  data :
    EmpNo                   EmpName                   EmpDept
    E101                       ABC                               ABAP
    E102                       XYZ                                BW
    E103                       GFC                               XI
    E104                       BVM                               ABAP
    E105                       ASD                               BW
    E106                       YFC                                XI
    SO, here  where ever i'm getting  EmpDept = XI  .. i want to skip those all the  records( that entire line  i want to skip).. .. this can be possible through Message Mapping.. but i wnat to do this in the File Content Conversion..  how can we do this..
    any  helpful answers   will  appriciated..
    Thanks
    babu

    Hi,
    FCC is used to generate the XML structure so that XI can understood properly. You can not do any kind of validations or Skip the records based on Element value condition in FCC.
    There are scenarios where you want to skip the lines that time you can use the below option in FCC but this is again not based on condition.
    Under Document Offset, specify the number of lines that are to be ignored at the beginning of the document.
    This enables you to skip comment lines or column names during processing. If you do not make an entry, the default value is zero lines.
    The best way to do is use the UDF:
    Write an UDF on target root node.
    take input in one context:
    input a= Emp Dept:
    for(i=o,i<a.length;i++)
      if(a{i}.equals("X"))
       result.addValue(SUPPRESS); this will supress the target root node if condition is equal to X
      else
      result.addValue("Constant"); this will generate the target root node.
    Thnx
    Chirag

  • Receiver File content conversion for multi level hireachy

    Receiver channel file content conversion..
    this is SAP proxy to FIle Scenario, which will get invoice details from SAP along with multiple invoice texts for each invoice.
    I would like to have below mentioned payload at Target side,
    <MT_Invoice>
    <File Header>    1...1
    <f1> customer invoices </f1>
    <f2> 12/02/2010 </f2>
    </File Header>
    <Invocie header> 
    <f1> Invoice number1 </f1>
    <f2> customer number1 </f2>
    </Invoice header>
    <Invoice text>
    <f1> Inovice no1-text1 </f1>
    </Invoice text>
    <Invoice text>
    <f1> Inovice no1-text2 </f1>
    </Invoice text>
    <Invocie header> 
    <f1> Invoice number2 </f1>
    <f2> customer number2 </f2>
    </Invoice header>
    <Invoice text>
    <f1> Inovice no2-text1 </f1>
    </Invoice text>
    <Invoice text>
    <f1> Inovice no2-text2 </f1>
    </Invoice text>
    <Invocie header> 
    <f1> Invoice number3 </f1>
    <f2> customer number3 </f2>
    </Invoice header>
    <Invoice text>
    <f1> Inovice no3-text1 </f1>
    </Invoice text>
    <Footer> 1..1
    <f1> have a great day </f1>
    </footer>
    </MT_Invoice>
    for the above payload file should come as mentioned below
    customer invoices 12/02/2010
    invocie number1 customer no 1
    invoice no1-text1
    invoice no1-text2
    invocie number2 customer no 2
    invoice no2-text1
    invoice no2-text2
    invoice no2-text3
    invocie number3 customer no 3
    invoice no3-text1
    have a great day
    For to get the above payloadI have create a message type like
    MT_invoice
    header   1...1
       f1         1
       f2         1
    invoice details   0... unbound
       f1           1
       f2           1
    invoice text     0.... unbound
       f1
    footer       1...1
       f1          1
    Please correct me if my message type declaration was wrong...  
    Please suggest how do i need to approach for message mapping and as well as FCC in File adapter...
    Edited by: Vidyadhar Kurmala on Dec 2, 2010 10:28 AM

    It is not possible to create alternating nodes in graphical mapping tool.
    I recommend using the MessageTransformBean for FCC, as this supports a 2-level hierarchy.
    Then you add a node record like this:
    <MT_Invoice>
    <Record>
    <File Header> 1...1
    <f1> customer invoices </f1>
    <f2> 12/02/2010 </f2>
    </File Header>
    </Record>
    <Record>
    <Invocie header>
    <f1> Invoice number1 </f1>
    <f2> customer number1 </f2>
    </Invoice header>
    <Invoice text>
    <f1> Inovice no1-text1 </f1>
    </Invoice text>
    <Invoice text>
    <f1> Inovice no1-text2 </f1>
    </Invoice text>
    </Record>
    <Record>
    <Invocie header>
    <f1> Invoice number2 </f1>
    <f2> customer number2 </f2>
    </Invoice header>
    <Invoice text>
    <f1> Inovice no2-text1 </f1>
    </Invoice text>
    <Invoice text>
    <f1> Inovice no2-text2 </f1>
    </Invoice text>
    <Invocie header>
    <f1> Invoice number3 </f1>
    <f2> customer number3 </f2>
    </Invoice header>
    <Invoice text>
    <f1> Inovice no3-text1 </f1>
    </Invoice text>
    </Record>
    <Record>
    <Footer> 1..1
    <f1> have a great day </f1>
    </footer>
    </Record>
    </MT_Invoice>

  • File Content Conversion for Multi Hierarchical Structure for Sender Adapter

    Hi Gurus,
    My text file is coming as
    Header,filed1,field2(Occurrence=1)
    Content,field3,field4(Occurrence =1-Unbounded)
    Detail,field4,field5(Occurrence = 1-unbounded)
    Trailer,fieldN(Occurrence=1)
    My requirement is to write a file content conversion, so that, in the resultant XML Structure the Detail will come under Content.
    I have defined the  Record Set Structure as
    Header,1,Content,*,Detail,*,Trailer,1
    But after FCC, the Detailed record is coming in the same level as the Content Record. But the business requires that, the Detailed Record should come under Content Record, so that they can correlate.
    Could any one advise?
    Regards,
    SS
    Edited by: Subhendu Sahu on Jun 17, 2011 4:43 PM

    Hi,
    Please use the below parameters -
    ○       NameA.keyFieldValue
    Specify the value of the key field for the structure.
    This entry is mandatory if the key field name is set. Otherwise, the entry is ignored.
    NameA.keyFieldInStructure
    ■       If the key field of the substructure is to be added to the XML document, enter add. This is the default.
    ■       If the key field is to be ignored, enter ignore.
    http://help.sap.com/saphelp_nwpi711/helpdata/en/44/6713ec3f914ddee10000000a1553f7/frameset.htm
    cheers,
    Sunil

  • Content Conversion for multi level heirarchy

    Gurus,
    I have the following scenario
    FileXIFile
    Input File structure is as follows
    FH|............  (occurs 1)
    FE|............. (occurs *)
    FED|........... (child of FE and can occur * under FE)
    FT|.............. (occurs 1)
    The file contents are pipe delimited.
    Example file
    FH|.....
    FE|........
    FED|........
    FED|.........
    FE|.......
    FED|........
    FT|............
    As stated above, FED recordtype can occur multiple times under FE
    My inbound message structure is
    .....Header (1)
    ........ErrorRecord (0,unbounded)
    .............ErrorDataRec (0,unbounded)
    .....Trailer (1)
    Recordset Structure - Header,1,ErrorRecord,,ErrorDataRec,,Trailer,1
    Recordset Sequence - Variable
    KeyFieldName - RecordType
    Content Parameters
       I have defined field separator as pipe for each recordset
       I have defined keyFieldValue for each recordset
       I have defined fieldNames for each recordset
    Here is my problem
    The file loads ok. However, ErrorDataRec loads at the same level as ErrorRecord rather than loading under it.
    I have played with fieldNames to define ErrorDataRec as a field under ErrorRecord and not definining as one, doesnot seem to make a difference.
    I need someway to tell the parser that ErrorDataRec needs to be loaded as a substructure of ErrorRecord.
    Anyone has any ideas?
    Regards
    Haseeb

    VJ,
    You are absolutely right it is not possible to get multiple hierarchy using file content conversion.
    Splitbyvalue function would not work in my scenario as I need to group FED records based on first few characters in the first column of FED records. I wrote a UDF to insert context change based on the column value.
    Thanks again for your help.
    Regards
    Haseeb

Maybe you are looking for