Handle sub structure in receiver file adapter

Dear all,
How to handle deep sub structures in Receiver.any inputs would be appreciated.
Thanks,
Srini

two things that you can look into are;
/people/shabarish.vijayakumar/blog/2007/08/03/file-adapter-receiver--are-we-really-sure-about-the-concepts
/people/shabarish.vijayakumar/blog/2010/01/14/file-conversion-using-nodeception
that should pretty much help you come to a conclusion

Similar Messages

  • Process different structure in receiver file adapter

    Hi, all XI&PI masters
    We have a trouble of processing a file in receiver file adapter, converting to tab deliminated file.
    Scenario: Proxy to File
    We've configured PI to process following data and we've got flat file successfully.
    <ns1:MT_test_s xmlns:ns="http://...">
         <recordset>
              <data>
                   <value1>test1</value1>
                   <value1>test2</value1>
              </data>
         </recordset>
         <info>
              <value1>test0</value1>
         </info>
    <ns1:MT_test_s>
    We also want to process a data without <data> structure below.
    So we've already set occurence of recordset and zsdata to 0..unbound.
    However, we are getting an error from receiver file adapter, since there is the recordset structure.
    (No problem if recordset is not included...)
    <ns1:MT_test_s xmlns:ns="http://...">
         <recordset/>
         <info>
              <value1>test0</value1>
         </info>
    <ns1:MT_test_s>
    Please help me if anyone know how to solve this problem.
    Thank you

    create your target data type without the recordset node.
    Then do the mapping from source to target and configure your scenario.
    This is the ideal solution
    /people/shabarish.vijayakumar/blog/2007/08/03/file-adapter-receiver--are-we-really-sure-about-the-concepts

  • Receiver file adapter creates empty files, Empty-Message Handling SP19

    Hello,
    We have just upgraded the system to SP19.
    One of the new features is that it should be possible to determine how XI messages with an empty main payload are to be handled in the receiver file adapter.
    If the parameter Empty-Message Handling is set to 'Ignore' no file should be created if the main payload is empty. In our case an empty file (size 0 kb) is still created even though the main payload is empty and the flag is set to 'Ignore'.
    Has anybody experienced the same problem?
    //  Best regards  Hans

    This should work:
    Use your own adapter module that parses incoming message and checks if it has any record sets in the document. If it does not have any record sets, then set the message to empty and then give this modified message to File receiver.
    For example, see the example code below:
    Module imports..
    Audit log import..
    DOM imports/SAX imports..
    public ModuleData process(ModuleContext moduleContext, ModuleData inputModuleData) throws ModuleException {
              try {
                   // get the XI message from the environment
                   Message msg = (Message) inputModuleData.getPrincipalData();
                   AuditMessageKey amk = new AuditMessageKey(msg.getMessageId(),AuditDirection.INBOUND);
                   Audit.addAuditLogEntry(amk, AuditLogStatus.SUCCESS,"RemoveRootTag: Module called");
                   XMLPayload payLoad = msg.getDocument();
                   Document doc = parseXmlFile(payLoad.getInputStream());
                   if(doc != null){
                        if(!doc.getDocumentElement().hasChildNodes()){
                             Audit.addAuditLogEntry(amk, AuditLogStatus.SUCCESS, "Document is empty!!");
                             payLoad.setContent("".getBytes());
                             msg.setDocument(payLoad);
                   // provide the XI message for returning
                   inputModuleData.setPrincipalData(msg);
                   } catch (Exception e) {
                   // raise exception, when an error occurred
                   ModuleException me = new ModuleException(e);
                   throw me;
                   // return XI message
              return inputModuleData;
         private Document parseXmlFile(InputStream xmlpayload) {
              try {
                   DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
                   factory.setValidating(false);
                   //        Create the builder and parse the file
                   Document doc = factory.newDocumentBuilder().parse(xmlpayload);
                   return doc;
              } catch (SAXException e) {
              } catch (ParserConfigurationException e) {
              } catch(IOException e){
              return null;

  • Repeating structure through the receiver file adapter

    I wanted to ask wheter it is possible to create repeating structure through the SAP xi receiver file adapter. What I'm trying to accomplish is this:
    Item1
    Item2
    Item1
    Item2
    (variable number of times).
    I can accomplish the following:
    Item1
    Item1
    Item2
    Item2
    What I could do is have the Item1 and Item2 fields in the same segment in the design time, but this would mean the file adapter would write all the items on a single line instead of two.
    There is no way to define line breaks between the the receiver file adapter field parameters ?
    There is no way to support nested structures in the recordset definition ie. Item1.Item2 ?

    Henri,
    What Vishal means is following:
    Add sequences of the tag <recordset> between pairs of item1, item2:
    <documentName>
       <<b>recordset</b>>
         <item1>
           <field-item1>column-value</field-item1>
           <field-item1>column-value</field-item1>
           <field-item1>column-value</field-item1>
         </item1>
         <item2>
           <field-item2>column-value</field-item2>
           <field-item2>column-value</field-item2>
           <field-item2>column-value</field-item2>
         </item2>
       </<b>recordset</b>>
       <<b>recordset</b>>
         <item1>
           <field-item1>column-value</field-item1>
           <field-item1>column-value</field-item1>
           <field-item1>column-value</field-item1>
         </item1>
         <item2>
           <field-item2>column-value</field-item2>
           <field-item2>column-value</field-item2>
           <field-item2>column-value</field-item2>
         </item2>
       </<b>recordset</b>>
    </documentName>
    A similar problem with header and items is in this thread:
    Repeating structure through the receiver file adapter
    Hope that helps,
    Stefan

  • Empty Message Handling with Receiver File adapter

    Hi,
         We were using the "Empty-Message-Handling" (status set to Ignore) of Receiver file adapter to stop a 0 KB file from being written to the specified directory.
    However, inspite of this, a 0KB file continues to be written.
    The specifications are given below-
    File Construction Mode - Add Time Stamp
    Put File - Directly
    Empty Message Handling - Ignore
    Maximum Concurrency - 1
    File Type - Binary
    Can anyone please help with this.
    Thanks and Regards,
    Shiladitya

    HI,
    In one of thread the same problem was coming. Just look at the thread.
    Receiver file adapter creates empty files, Empty-Message Handling SP19
    Or
    Follow the weblog for the same requirement.
    /people/gowtham.kuchipudi2/blog/2006/01/13/stop-creation-of-an-empty-file-from-file-adapter-using-module
    Thnx
    Chirag
    Reward points if it helps.

  • Creating .RTF output files - PI7.0  Receiver file adapter

    Hi Experts,
    I am currently facing an issue with the Receiver File adapter where in the output files are required to be of the format of .RTF (Rich Text Format).
    The scenarios is an outbound proxy from SAP ABAP  - >  PI 7.0 ->  .RTF File
    All the data required to be present in the file will be coming in the source structure
    Can the File Receiver Adapter handle this ?
    Is there a way to generate Files with extension .rtf ??
    It is a requriement since the output files will be used as Reports , and so the desired format.
    I am unsure if I will have to use XSLT mapping , in this because i am new to that , Kindly let me know how to go about it ,. any links or pointers on how to achieve the same will be welcome.
    thanks
    Dev
    Edited by: sd on Feb 17, 2010 8:23 AM

    Thanks for your reponse Praveen
    Can you please let me know how can i put the extension as .rtf for the output files i am generating ??
    as far as the formatting is concerned ... it is like ... the header needs to be  of a particular Font , a particular font size , bold etc and  so is the case for line items
    I am unsure if it is possible using an Adapter module  as well
    thanks
    Dev

  • Complex structures in Sender File adapter

    Hi Experts
    I am working on XI 3.0 SP 22. How do we handle the complex structures in sender file adapter in file content conversion.
    Please help me out.
    Regards
    Hari

    Hi,
    FCC can support upto max 3 levels, find below link for more help
    http://help.sap.com/saphelp_nw70/helpdata/en/2c/181077dd7d6b4ea6a8029b20bf7e55/content.htm
    Content Conversion ( The Key Field Problem )

  • Problem with file content conversion in receiver file adapter

    Hi All
    I have a problem with file content conversion in receiver file adapter.
    This is my recordset structure: Header_Record,1,Claim_Record,*,Check_Rec,1
    These are the content conversion parameters:
    Header_Record.fieldSeparator = ,
    Header_Record.endSeparator = 'nl'
    Claim_Record.fieldSeparator = ,
    Claim_Record.endSeparator = 'nl'
    Check_Rec.fieldSeparator = ,
    Check_Rec.endSeparator = 'nl'
    In SXMB_MONI, i can see that the data is correctly extracted from proxy, and correctly mapped to receiver message, and i see a checkered flag (success).
    But, Adapter status is RED with the following error message:
    Conversion initialization failed: java.lang.Exception: java.lang.Exception: Error(s) in XML conversion parameters found: Parameter '1.fieldFixedLengths' or '1.fieldSeparator' is missing
    In communication channel monitoring, i get the following error message:
    Message processing failed. Cause: com.sap.aii.af.ra.ms.api.RecoverableException: Channel has not been correctly initialized and cannot process messages
    What is going wrong here? Can anyone please tell me?
    Thanks
    Chandra

    Posted in Incorrect forum.
    Posted again in Process Integration forum

  • Problem with fixedlenthgs in receiver file adapter

    HI,
    I am doing XML to flat file scenario  and using mutli mapping concept without BPM.
    in the receiver file adapter I am using FCC with fixedlengths,then it generated just 3 output files out of nearly 100 source files.the errored one are succcessful in the SXMB_MONI and failing in RWB-->Message moni with waiting status and MDT says that XI_J2EE_ADAPTER_FILE ,Error Code PROCESSING_ERROR .
    i tried in SDN and then found something like enable the disablesecurity check box in variable substitution parameters ,then I got 4 files out.
    these are my FCC params for all structures:
    struc1.fieldFixedLengths
    struc1.fixedLengthTooShortHandling
    struc1.endSeparator
    and I tried with fieldSeparator then it gives successfully all output files.
    so,where is the problem?I didnt understand?
    any suggestion.
    thank you,
    regards,
    Babu Sri

    Bhavesh,
    I felt the same way,but assumed that ,in that way fixedlenghths wont work.
    in my target structure most of the fields have 0-1 occurences ,and even in the source structure too.so,I think it might be the reason.Then I have to make all my about 60fields 1-1 madatory and using mapWithDefaultValue function, as my sources are optional.
    you think it will work just using the "mapWithDefaultValue" function without changing my occurences to 1-1 in the target structure(mandatory)?infact I can try but ,cos of pain for changing like 60 fields....:) and even dont know which fields are causing the problem,so that we can apply "mapWithDefaultValue" function only on those fields.
    thank you,
    Babu Sri

  • The same filename from a sender to a receiver file adapter

    Michal has provided us with a brilliant <a href="/people/michal.krawczyk2/blog/2005/11/10/xi-the-same-filename-from-a-sender-to-a-receiver-file-adapter--sp14.  I guess a lot of people have been waiting to do this. However, I have a slightly different scenario. In this case, XI is used as a medium to transfer a PDF file from one directory to another directory. There is not transformation or mapping involved.
    The message is send by File Sender Adapter and received by File Receiver Adapter. Message type is created as a simply type hexBinary. The file is supposed to be picked up as a PDF and received as a PDF, retaining the same file name. As such, the file name is neither stored in the source structure nor the target structure.
    Once the PDF file is transfered into target directory, it should be able to be open by using Acrobat directly without further conversion.
    We might add a file name file into the target structure but would that rendered the PDF non-readable upon being received by the File Receiver Adapter?
    Any feedback is highly appreciated.

    Hi
    >>We might add a file name file into the target structure but would that rendered the PDF non-readable upon being received by the File Receiver Adapter?
    No, adding file name would not hamper the properties. You can name *.pdf or something else.
    For that matter any file pdf, word, .msg format etc can be transferred by this approach. We have tried it.
    Earlier to SP14 you cannot give the same name to outgoing file without writing a Adapter module. But things are easy with SP14.
    Cheers,
    satish

  • 0 byte txt file using receiver File Adapter

    HI,
    My scenario is Flat File to Fixed Length File.
    Mapping : Based on the condition Reciever node need to generated , In some cases it wont generate any node ( No data )
    Receiver Communication channel :  I used FCC for Fixed length Format.
    Problem : When i am generatingf the receiver file with some data it executes. But when i am generating the file with no data , it fails in the receiver comminication channel.
    Could not process due to error: java.lang.Exception: Exception in XML Parser (format problem?):'java.lang.Exception: Message processing failed in XML parser: 'Conversion configuration error: Unknown structure 'ns0:Message1' found in document', probably configuration error in file adapter (XML parser error)'
    I need the receiver file to generate with 0 bytes when there is empty data.
    can any one help on this.
    Thanks

    Hi,
    >>Problem : When i am generatingf the receiver file with some data it executes. But when i am generating the file with no data , it fails in the receiver comminication channel.
    What happens in this case is, when you send a blank file to PI it processes but once it went to Receiver Adapter, it looks out for some fields because of the FCC settings. So it throws an error/exception because some fields are expected and it is not coming. Because of that you getting below exception.
    Secondly, Once you send data with few values or fields it will process in Receiver file adapter FCC and if there is some error it throws error. this is why you getting exception in moni, and other places.
    Regards
    Aashish Sinha

  • Receiver File adapter content conversion using StrictXml2PlainBean

    Hi All,
    For receiver file adapter i am using the module StrictXml2PlainBean, and also i mentioned the module configuration like this
    parameter name                              parameter value
    recordTypes                                  Header,TransactionHeader,TransactionDetail,TransactionTrailer,FileTrailer
    FileTrailer.endSeparator                |\n
    FileTrailer.fieldSeparator               |
    Header.endSeparator                   |\n
    Header.fieldSeparator                  |
    TransactionDetail.endSeparator   |\n
    TransactionDetail.fieldSeparator  |
    TransactionHeader.endSeparator |\n
    TransactionHeader.fieldSeparator |
    TransactionTrailer.endSeparator  |\n
    TransactionTrailer.fieldSeparator |
    But when i send the idoc, The receiver CC is throwing an error
    Message processing failed. Cause: com.sap.aii.af.modules.conversion.xml2plain.ConversionException: Invalid structure name encountered during conversion: Transaction at XML element MT_DeliveryOrder,Transaction
    My actual structure is
    MT_DelvOrder
       Header  0...1
       Transaction 0....Unbounded
          TransactionHeader  1..1
           TransactionDetail     0...unbounded
            TransactionTrailer  1...1
       FileTrailer  0...1
    The module is checking for the Transaction node,but i require the rest 3.
    Same configuration i have done successfully with FCC without using the module....
    So can any one suggest me where i am missing... why the module is pointint towards, the Transaction cant i ignore this node . and continue with the rest???
    Regards,
    Sridhar
    Edited by: sridhar reddy kondam on Aug 10, 2009 12:35 AM

    Hi Rajesh,
    The same FCC configuration was working fine with FCC and when i am using this module configuration i am getting the prob...
    In the file i need the Header,TransactionHeader,TransactionDetail,TransactionTail,Filetrailer
    my sample output file is
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:MT_DeliveryOrder>
    <Header>
    </Header>0...1
    <Transaction>0...Unbounded
        <TransactionHeader> 1..1
         </TransactionHeader>
         <TransactionDetail> 0...Unbounded
         </TransactionDetail>
          <TransactionTrailer>1...1
           </TransactionTrailer>
    </Transaction>
    <FileTrailer> 0...1
    </FileTrailer>
    Any suggestions will be great help...
    I think i need to go with other options without using this module....
    Regards,
    Sridhar
    Edited by: sridhar reddy kondam on Aug 10, 2009 6:03 AM

  • RECEIVER FILE ADAPTER FCC ERROR

    Hi team
    My scenario is a text file has to be picked up by PI, has to processe it and the receiver is Proxy and it has to get updated and sent back to FTP location.
    i am using Sender File Adapter with FCC and Also receiver File Adapter with FCC.
    Both the sender and receiver structures are same; i am using the same FCC parameters for both the sides.
    in Receiver File Adapter i am getting the following errors
    1) Conversion initialization failed: java.lang.Exception: java.lang.Exception: Error(s) in XML conversion parameters found:
    Parameter '.fieldFixedLengths' or '.fieldSeparator' is missing
    2)Conversion initialization failed: java.lang.Exception: java.lang.Exception: Error(s) in XML conversion parameters found:
    Parameter '1.fieldFixedLengths' or '1.fieldSeparator' is missing
    please help me out
    thank you
    Edited by: vemugantivn on Aug 16, 2010 12:19 PM

    Hi,
    > 1) Conversion initialization failed: java.lang.Exception: java.lang.Exception: Error(s) in XML conversion parameters found:
    >  Parameter '.fieldFixedLengths' or '.fieldSeparator' is missing
    > 2)Conversion initialization failed: java.lang.Exception: java.lang.Exception: Error(s) in XML conversion parameters found:
    > Parameter '1.fieldFixedLengths' or '1.fieldSeparator' is missing
    It is saying that you are not using the fieldSeparator parqameter.
    have you provided the field separator parameter? if not then give like below
    order_row.fieldSeparator : ,  (give what ever the separater you are using)
    or 
    order_row.fieldSeparator : 10,5,...  (if you are using fixed length)
    Regards
    Ramesh

  • Receiver File Adapter error

    Hi all,
    I am trying to convert the XML to Plain file in receiver file adapter. I am using module - StrictXml2PlainBean
    My target structure is -
    <MT_Name>
        <records>
            <Header>
            </Header>
            <Item>
            </Item>
        </records>
    </MT_Name>
    <Header> and <Item> are at same level.
    When I use --
    1. Header.fieldSeparator = ,
    2. Item.fieldSeparator = ,
    3. recordTypes = Header,Item
    Then I get this error -
    Message processing failed. Cause: com.sap.aii.af.app.modules.conversion.xml2plain.ConversionException: Invalid structure name encountered during conversion: records at XML element MT_Name,records
    When I use --
    1. records.fieldSeparator = ,
    2. singleRecordType = records
    Then I get this error -
    Message processing failed. Cause: com.sap.aii.af.app.modules.conversion.xml2plain.ConversionException: The element nesting level for the structure MT_Name is too deep (reference: 3 levels, found: 4 levels) at XML element MT_Name,records,Header,Item
    To add more details to the scenario, multiple records can be generated but one record will have only one Header, with multiple Items.
    Any help in this regard will be highly appreciated.
    Thanks,
    Abhi

    Hi Abhi,
    Here you go....
    For your target structure as:
    <MT_Name>
    <records>
    <Header>
    </Header>
    <Item>
    </Item>
    </records>
    </MT_Name>
    Where I have assumed that <Header> and <Item> are at same level.
    DO NOT use any Module just simply configure the receiver channel as below:
    In the file Receiver Channel
    Recordset Structure = Header,Item
    Name                                                                    Value
    Header.fieldSeparator                                             ,
    Item.fieldSeparator                                                  ,
    I have tried this and it works.
    Let me know if you are facing any issues.
    Cheers
    Dhwani

  • Error in Receiver File adapter using File content Conversion

    Hi,
    I am getting the following error in the receiver file adapter.
    Conversion initialization failed: java.lang.Exception: java.lang.Exception: Error(s) in XML conversion parameters found: Parameter 'statement.fieldFixedLengths' or 'statement.fieldSeparator' is missing
    I am using the below parameters for FCC:
    Recordset Structure - statement
    statement.endSeparator - 'nl'
    statement.fieldSeparator - '0X09'
    statement.fieldNames -xblnr,wrbtr,newbs,kostl,newko,prctr,xref1,rke_wwfud,rke_wwst3,blart,bukrs,bldate,budat,gjahr,monat,ctype,waers,bktxt,posnr,wbs_element,mwxkz,businessplace,businessplace,c_waers,c_wrbtr,g_ctype,g_waers,g_wrbtr,h_ctype,h_waers,h_wrbtr,trade_id,lob,sgtxt,zuonr,reason_rev,ldgrp,tcode,lifnr
    ignoreRecordsetName - true
    Please let me know where i am going wrong.
    Thanks,
    Aparna

    Hi Aparna,
    I feel the problem in your content conversion parameters is with
    statement.fieldNames and ignoreRecordsetName
    When you are confirguring receiver file adapter for file content conversion the above one is not required. Please refer below link for details on configuring content conversion in file adapter
    [http://help.sap.com/saphelp_nw04/helpdata/en/bc/bb79d6061007419a081e58cbeaaf28/frameset.htm]
    Hope this helps !!
    Regards,
    Amit

Maybe you are looking for

  • Perform in SAP script

    how should i call a perform statement in SAP script I have been trying to use it in sap script but it is giving me a dump the code extract looks as follows: iN DRIVER'S PROGRAM FORM POP_ADD USING V_parvw like vbpa-parvw. READ TABLE i_addr WITH KEY WF

  • Runtime Analyasis

    1.This is pgm Execute  it will take more time . how to  less time  ? please Sort out  my problem? REPORT  ZRPT_MM_006. TYPE-POOLS: slis. tables : likp, lips, bseg, bkpf, mara, t001w, makt,ekko,ekpo. DATA : gt_fieldcat TYPE slis_t_fieldcat_alv. DATA :

  • Error in update query with join

    hi all, im using oracle 10g in windows. im not able to use this update query having join...... UPDATE b SET b.is_stud = 1 FROM boy b INNER JOIN relationship r ON b.id = r.boy_id; thanks a lot..................

  • Reg: Enhancements

    Hi , How to find the number of times the particular t-code has been accessed over a user defined period? If the user didn't access the T.code, the report would show a 0 or a 2 if the user had accessed the report twice. Do we have any standard table o

  • I have a new macbook air and am working on powerpoint. It is giving me a spinning rainbow circle. How can I quit without losing work?

    I am creating a powerpoint on my macbook air. I have only had the computer for a week. In the middle of creating the powerpoint(microsoft), I have gotten a spinning rainbow circle. How can I quit the program without losing my work?