IDoc to File - IDoc number : Variable substitution in File Adapter

Hi,
I have an IDoc to File scenario. I want to use the IDoc Number as part of the target filename (using variable substitution) in the File Adapter. However, the target flat file does not have a field where I can store the IDOC number. I know the IDoc number is also stored in the message header ( under the IdocInbound tab), but is there any way I can access this in the variable substitution?
Failing this, if I have the Idoc number in the target XML, is there any way I can skip it in the flat file generated?
example...
XML looks like this...
<Root>
<Record>
   <IdocNum>99999</IdocNum>
   <HeaderRecord>
   </HeaderRecord>
   <LineRecord>
   </LineRecord>
   <LineRecord>
   </LineRecord>
</Record>
</Root>
But the flat file should be..
HeaderRecord...
LineRecord...
LineRecord...
Cheers
Manish

Hi Chandra,
Thanks for this
But this is standard stuff that is detailed in SAP help files (http://help.sap.com/saphelp_nw04/helpdata/en/bc/bb79d6061007419a081e58cbeaaf28/frameset.htm)
What I was looking for was in Sravya's blog (refer the earlier entry).
Thanks anyway
Cheers
Manish

Similar Messages

  • Blank Lines at end of file when using Variable Substitution in File Adapter

    Hi all,
    I'm using variable substitution in a File Adapter, it's refers an element of message, like:
    filename    payload:MESSAGE_INTERFACE,1,FILENAME,1
    The variable substitution is working right, but it's append a BLANK LINE at end of file.
    Anyone knows how to solve this problem ?
    Thanks in advance.

    Hi Regis,
    I suppose you're using content conversion?
    if so try adding
    <b>endSeparator</b> = '0'
    to your last element
    this will delete the default line break at the end
    Regards,
    michal
    <a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions">XI FAQ - Frequently Asked Questions</a>

  • Variable Substitution for File Name Scheme

    Hi all,
    Please clarify the following issue.
    I have two source fields
    Transfer Order number  -  0000000222
    Transfer Order line item - 0001
    Both i map it into one target field
    The target field output is  - 0000000222#0001
    I need a file name which starts with ABC <TranferOrderNumber>.txt
    The problem is, when i try to use payload i get output
    (ABC0000000222#0001.txt). The reason is i use the target field which was concatenated. I don't have any target field with only transfer order no.
    Please give me a solution where i would get output
    (ABC0000000222.txt).
    Thanks in advance,
    Jose Augastine

    Hi,
    Other way may be like this ..Create a one more segment in your target structure with field name as Transfer Order No. And populate only this no. And in the Reciever File adapter , in the variable sub, use only this field. But this new segment will come in the file. To avoid this, you can make use of " Cut "  Parameter in the File Content Conversion.
    This will hold good, if you have content conversion-
    /people/sravya.talanki2/blog/2005/08/11/solution-to-the-problem-encountered-using-variable-substitution-with-xi-sp12
    Otherwise, you can think of Bhavesh's suggestion
    Regards,
    Moorthy

  • FILE CONTENT CONVERSION/ VARIABLE SUBSTITUTION

    Hi Experts,
    I have a reciver file which should have
    HEADER
    field 1
    field 2
    DETAIL
    field 1
    field 2
    TRAILER
    field 1
    field 2
    My reciever structure is
    HEADER
    field 1
    field 2
    DETAIL
    field 1
    field 2
    TRAILER
    field 1
    field 2
    TEMP
    field 1
    I am using TEMP field1 only for variable substitution and do not want
    it to be written to file. How can i use it in FCC.
    Pl. Help
    Akhil

    Hi,
    Plz do refer the folowing links:
    Sender -
    /people/venkat.donela/blog/2005/03/02/introduction-to-simplefile-xi-filescenario-and-complete-walk-through-for-starterspart1
    Key value:
    /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 -
    TAB delimited
    /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
    NAB the TAB (File Adapter)
    /people/shabarish.vijayakumar/blog/2005/08/17/nab-the-tab-file-adapter
    Receiver FCC no need of Endseparator
    /people/shabarish.vijayakumar/blog/2007/08/03/file-adapter-receiver--are-we-really-sure-about-the-concepts
    Regards,
    Vinod.

  • Error-Receiver File Adapter using Variable substitution when file is empty

    XI Experts,
    We are on PI 7.0, SP14.
    We are using variable subtitution to get the filename from source message. This works fine as long as we have data in the payload for filename element. But we have a scenario where we don't have to create file when certain condition does not exists in source message so in the message payload filename element will not exists in such condition and file will be empty and we should not create file.
    Parameter in the communication channel for Handling empty message is "Ignore".
    Does anyone knows how to handle this scneario. We don't want to default any file name in the message mapping if source file name element does not exists.
    We are following getting error in the Adapter engine.
    MP: Exception caught with cause com.sap.aii.af.ra.ms.api.RecoverableException: Error during variable substitution: com.sap.aii.adapter.file.varsubst.VariableDataSourceException: The following variable was not found in the message payload: file: com.sap.aii.adapter.file.configuration.DynamicConfigurationException: Error during variable substitution: com.sap.aii.adapter.file.varsubst.VariableDataSourceException: The following variable was not found in the message payload: file
    Thanks
    MP

    You can implement this by writing the module to throw an exception or whatever method you want to execute.
    If you don't want to receive an error message then module is suitable for you.
    Gaurav Jain

  • Problem in Variable Substitution (Receiver File Adapter)

    Hi,
    I am facing problem in the variable substitution in receiver file Communication channel. My expected file name is A_C.xml; but my actual output filename obtained is C_C.xml for the below example target file:
    <ProductionSch>
    <CustomField>
    <value>
    <ValueString>A</ValueString>
    </value>
    </CustomField>
    <CustomField>
    <value>
    <ValueString>B</ValueString>
    </value>
    </CustomField>
    <CustomField>
    <value>
    <ValueString>C</ValueString>
    </value>
    </CustomField>
    </ProductionSch>
    I have used the following parameters in the file communication channel:
    File Name Schema: %var1%_%var2%.xml
    Variable Substitution:
    Variable Name                     Reference
    var1                                     payload:ProductionSch,1,CustomField,1,value,1,ValueString,1
    var2                                     payload:ProductionSch,1,CustomField,3,value,1,ValueString,1
    When I try using either of the one in the file name schema and the corresponding variable reference in the variable substitution I am getting the correct output filename as A.xml or C.xml. However, when I give either of the one variable in file name schema and both the variable references in the variable substitution I am getting only C.xml as per the example file.
    Can any of you suggest me where I am wrong or any other suggestion which I can try?
    I cannot use dynamic configuration as I am using multimapping. Multiple file names cannot be generated using dynamic configuration.
    Regards
    Sowmya

    hi Sowmya,
    refer you to this [Note 1581988 - Variable Substitution option does not work properly|https://service.sap.com/sap/support/notes/1581988] (2011.05), as SAP says " when there is more than one variable using the same name as the last element, File Adapter does not select the correct one.... ".
    regards.
    Mickael

  • Abap mapping and variable substitution in File adapter

    Hi experts!!.
    I am new in abap mapping, but I can do one abap mapping succesfully, but my problem is:
    I need to do a variable substitution in my file receiver adapter:
    Target directory = %cliente&/out
    File Name Scheme = TC%Fecha%.EFI
    ¿Using abap mapping is this possible? How I can do it?.
    Please is very urgent.
    Thanks in advance, and best regarts.

    Yes you can,.
    DynamicConfigurationKey key = DynamicConfigurationKey.create(
        “http://sap.com/xi/XI/System/File”,
        “FileName”);
    will become
    DynamicConfigurationKey key = DynamicConfigurationKey.create(
        “http://sap.com/xi/XI/System/File”,
        “Directory”);
    In the receive file adapter all you would need to do is select Adapter Specifc Attributes --> File Name and Directory and givce some dummy values for the filename and directroy. In the runtime values will be taken from the SOAP header which you set in the mapping.
    Regards
    Bhavesh

  • White lines generated in a txt File when using variable substitution

    Hello,
    I have a problem with a File generated by XI, my File Adapter is using variable substitution with reference to a field of my message type. I use content conversion as well and the generated file has a white line in top of file.
    How could I avoid this and make the white lines disappear? I was trying a lot of things but I don’t really know how to solve this issue, the following is the data type used:
    <FILE_NAME></FILE_NAME>
    <COMPANY>
         <COMPANY_CODE></COMPANY_CODE>
         <COMPANY_NAME></COMPANY_NAME>
         <ADRESS></ADRESS>
    </COMPANY>
    FILE_NAME is the field I use for variable substitution and COMPANY is declare as 0..unbounded.
    Thanks a lot in advanced,
    Luis

    Hi Jai,
    I have declare the following Content Conversion parameters:
    Recordset Structure: COMPANY
    FILE_NAME.fieldFixedLengths     0
    FILE_NAME.fixedLengthTooShortHandling     cut
    COMPANY.fieldFixedLengths     10,80,10,2,50,30,5,5,2,50,50
    COMPANY.addHeaderLine     0
    COMPANY.endSeparator     'nl'
    But it does not work, I have the same white line in the beginning of the file. Do you have any other suggestion??
    I couldnt find the blog written by Sravya either, could you post the link?
    Thanks a lot,
    Luis

  • File adaptor and variable substitution

    i have used variable substitution in the reciever comm channel to dynamically alter the folder ...Question is ..is there a way to do this from the sender comm channel..
    I know, i know we can write a custom module..etc..etc..
    I mean besides that ..is there a way sap provides out of the box...
    Michal..what do you think..?
    PS: your blog on var subst is very good !
    Regards
    Venkat

    Hi Venkat,
    For implementing variable substitution on the sender side. you can develop your own module as per your requirement.
    Only question is you can easily implement this on receiver side receives payload information coming after the mapping. While processing communication channel, it has payload to refer for variable substitution..
    While on the sender side communication channel do not have payload to implement variable substitution.
    Can you explain in detail about condition you want to apply in variable substitution.
    - Gaurav Jain

  • File record number in a Flat file

    Hi Guys,
    I am working on Idoc to file scenario and generating a file at the target.
    at the file...for each line i have to add a line count.
    i have 2 header and 5 detail records set..and details are repeating multiple times.
    For Ex:
    H1........001
    H2....002
    D1------003
    D2----
    004
    D3----
    005
    D4-------006
    D5----
    007
    Footer-----008
    Could someone help me in resolving this issue?
    Thanks
    sahil

    Hi Sahil,
    You can write UDF as follow
    AbstractTrace trace=  (AbstractTrace)container.getTrace();
    GlobalContainer globalContainer = container.getGlobalContainer();
    String str = (String) globalContainer.getParameter ("COUNTER");
    if(str!=null){
         int tempRowCounter =(new Integer (str)).intValue();
         globalContainer.setParameter("COUNTER",tempRowCounter++);
        return tempRowCounter+"";
    }else{
         globalContainer.setParameter("COUNTER", "1");
         return "1";
    Regards
    Ritu

  • Bursting XML Control File - only one variable substitution works

    Hello, I have the following from my bursting xml. In my subject I would like to have more than one substitution as in my example. Problem is that when I have more than one, the second one alway is "null". On there own they work fine. Is this a bug/limitation?
    <xapi:message id="111" to="${ADMIN_EMAIL}" attachment="true" subject="Unigas Inv
    oice No: ${TRX_NUMBER} for ${PARTY_NAME}">

    Use this syntax in your burst file (note you will need the above patch applied).
    <xapi:document output="${VAR - or hard code name here}" output-type="pdf" delivery="xxx" >
    Alternate way (if you don't have the patch) is to use the bursting listener by implementing it and doing the following in the afterProcessDocument interface.
    public void afterProcessDocument(int requestIndex, int documentIndex, Vector documentOutputs) {
    String outFileName = (String)documentOutputs.get(0);
    File newFile;
    File oldFile = new File(outFileName);
    newFile = new File(oldFile.getParent() + File.separator + "file" + oldFile.getName());
    oldFile.renameTo(newFile);
    documentOutputs.remove(0);
    documentOutputs.add(0, newFile.getPath());
    }

  • Variable Substitution in file name on the sender CC in PI 7.1

    Hi
    I am working on a File to File scenario, where I need to shorten the file name to something like mode1, mode2 or mod3,
    How can i achive this, Please let me know if there is any example
    Thanks
    PR
    Edited by: PR on Oct 29, 2009 1:08 PM
    Edited by: PR on Oct 29, 2009 1:09 PM

    Hi,
    Mode1, mode2 and mode3 are file names?
    You can achieve this by using 'Advanced Selection for Source File' in Communication channel in ID.
    Refer the advanced selection of Source file concept from following link:
    http://help.sap.com/saphelp_nw70/helpdata/en/e3/94007075cae04f930cc4c034e411e1/content.htm
    -Supriya.

  • File sequence  number in a Flat file

    Hi,
    I am working on Idoc to file scenario wherein my output file will have a sequence number assigned to each level.
    there are 4 levels and hence 4 sequence number to be genearted and its values should also have the same sequence number.
    i am doing this just by using Counter function.
    But when i am getting  a multiple detail records, for each detail record(0040) level its keep incrementing.but it should have the same value what its level has.
    for ex:
    ALPHAMER AS2 E5 710 20114806124829 01.00   
    0000 00000000 20100102 V3.0 SORD CZ1
    0010 00000001 76767 123 100 WER Constant BNG 560011 RAJ WERR     560011    BTM   X EN RT
    0020 00000001 TYUIOP
    0040 00000001 8765 6532 200 45 10 WE 20 AG
    0040 00000002 8765 6532 200 45 10 WE 20 AG
    0040 00000003 8765 6532 200 45 10 WE 20 AG
    0040 00000004 8765 6532 200 45 10 WE 20 AG
    9999 99999999
    It has to be like this.
    ALPHAMER AS2 E5 710 20114806124829 01.00   
    0000 00000000 20100102 V3.0 SORD CZ1
    0010 00000001 76767 123 100 WER Constant BNG 560011 RAJ WERR     560011    BTM   X EN RT
    0020 00000001 TYUIOP
    0040 00000001 8765 6532 200 45 10 WE 20 AG
    0040 00000001 8765 6532 200 45 10 WE 20 AG
    0040 00000001 8765 6532 200 45 10 WE 20 AG
    0040 00000001 8765 6532 200 45 10 WE 20 AG
    9999 99999999
    Can someone help me in achieving this.
    Regards

    Hi there,
    Just to try out from a different view, the following case could be implemented if the pre-requiisites are satisfied:
    Pre-requisites:
    1) The element that carries a primary factor, let us say, '8765' from your example.
    2) Functionally there is an element in your header item that relates the line items under it.
    My understanding of your example:
    1) Line items present for 00, 10, 40
    2) Line item 30 absent in the series
    Proposal:
    Map source field (the one that is arelating factor, here the one that carries '8765') -> INDEX (start by 0, increment by 1) -> multiply by one.
    INDEX standard function property: Donot Reset for every context;
    Srikanth Srinivasan
    Edited by: Srikanth Srinivasan on Jan 10, 2011 11:02 AM

  • Reciever File Adapter - Temp File Name Scheme using Variable Substitution

    How can I create a temporary file that uses variable substitution? 
    We are having a problem with files merging when we write files using the "Use Temporary File" setting on the FIle Adapter.  So two independent files are merging into a single file.  We are not using the "Append" setting.
    We would like to use a Temp File Name Scheme that would append the message id onto the temporary file name. 
    Using variable substitution we created a msgid variable.  When added to the temporary file name using %msgid% the temporary file name is created with %msgid% in the name instead of the actual message id.  We put the variable into the "File Name Scheme" as well and the end completed file used the message id in the name.
    Any Ideas?
    Thanks,
    Matt

    HI Matthew,
    Why are you adding the message id into the temporary file??
    I understand that you want the output of the filename to contain message id .. and hence you are using variable substitution for the same.
    Temporary file name will anyways get overwritten by the actual file name (here the actual filename will be using variable substituion).
    So i suggest to achieve your scenario you can add any name in the temporary file and maintain the desired filename you require as output in the variable subsititution.
    Temporary File Name option actually acts as a lock - unlock mechanism from PI side while the file is getting written to the file server so that while PI is writting the file no third party application batch program picks it up.
    I hope this helps.
    Cheers
    Dhwani

  • File-Adapter: Variable substitution form payload XML-attribute

    Hi experts,
    is possible to use XML-attribute-content for variable substitution in file-Adapter?
    extract from XML:
    <?xml version="1.0" encoding="utf-8" ?>
    - <all>
    - <transaction <b>file="filename"</b>>
    - <table name="BPAADDRESS" options="insertIfUpdateFails">
    - <record id="1">
      <hkeycol name="BPAMAINHKEY">0010500345</hkeycol>
      <hkeycol name="USAGE">Invoice</hkeycol>
      </transaction>
    I want to get the value "filename" = attribute file of transaction.
    Is this possible?
    Thanks a lot,
    Florian

    I have done this taking a field from the XML.
    You have to map the location of the field within the XML...
    Taken from:
    http://help.sap.com/saphelp_nw04/helpdata/en/bc/bb79d6061007419a081e58cbeaaf28/frameset.htm
    Variable Substitution (Target Directory/File Name Scheme)
    If you set the Enable indicator, you can enter variables for the Target Directory and File Name Scheme. Enter the names of the variables and references in the table.
    &#9679;      Enter each variable that you reference in the Target Directory and File Name Scheme fields without the surrounding percentage sign under Name of Variables in the table.
    The variables can refer to attributes of the message header or elements of the message payload.
    &#9675;       If the variables are to refer to an attribute of the message header, add the prefix message: to the name of the variable under Reference. You can specify the following attributes of the message header:
    sender_party, sender_service, receiver_party, receiver_service, interface_name, interface_namespace,
    message_id (message ID with hyphens, for example 9fbe1ff1-9a0d-11d9-8665-cbf10a126331)
    message_id_hex (message ID in hexadecimal format, for example 9fbe1ff19a0d11d98665cbf10a126331)
    For example, if you want to specify the interface name from the message header in the target directory or in the file name scheme, enter message:interface_name as the reference.
    If one of the message attributes contains characters that are not permitted in a file name, for example \, /, :, *, ?, ", <, >, |, then these characters are replaced by an underscore ("_").
    &#9675;       If the variable refers to an element in XML schema, add the prefix payload: to the information under Reference. The reference then comprises a pseudo path description in the form of a comma-separated list with the schema namea,na,nameb,nb,....
    namea,nameb,... corresponds to the element name and na,nb,... corresponds to the occurrence of the element name at the respective level in the document.
    The description begins at the root of the document and ends at the respective element.
    To reference the element that is in bold in the example, the following expression is used: payload:root,1,e1,1,e2,2
    The parser searches for the first occurrence of the root element at the first level. It then searches for the first occurrence of e1 at the second level and for the second occurrence of e2 at the third level. The content of the last element (“Example Value”) is set as the value for a specified variable.
    <?xml version="1.0" encoding="UTF-8" ?>
    <root>
      <dummy>
         <e1>
            <e2>Data_1</e2>
            <f/>
            <g attr="abc">text</g>
            <e2>Data_2</e2>
         </e1>
      </dummy>
      <e1>
         <e2>illegal/value</e2>
         <f/>
         <g attr="abc">text</g>
         <e2 attr="fghij">Example Value</e2>
      </e1>
    </root>
    &#9679;      To disable the check the adapter performs for the element data, set the Disable Security Checks indicator.
    Otherwise, the adapter checks whether the element data contains characters that could lead to security risks in the file system environment. The check includes the characters “/“, “\“, and “..“.

Maybe you are looking for

  • How to localize and delete the attachment from Inbox folder file?

    Hello, My name is Piotr Tyborowski and I'm the Technical Support Engineer in Doctor Web. I have got such suport request - one of our customers has problem with viruses in Thunderbird's Inbox folder - our antivirus scanner has found two Trojans in one

  • Picking List configuration For user

    Hi Friends I do not know how to configure picking list for user , We are maintaining WM at Plant . I would request you to mention  entire process step by step which may help me to understand picking list configuration in totality . Thanks In Advance

  • Oracle Portal 10g: how to list pages controlled by goup

    Hi All, When administering our Oracle Portal 10g, we are using groups to define who has Manage access to a given page. Is there any way to list what pages a particular group has Manage access to? Thanks for any assistance! Rob :)

  • What is an error (18) from Mac App Store?

    I have tried everything under the sun, can not get MAS to update my iPhoto and iMovie on an Xserve.  Always get an error (18) but no clue what that means.

  • Packaging wizard Lite 10.0.0.0.0

    Hello, I have a problem with the Packaging wizard of Oracle Lite 10.0.0.0.0 : I want a new Win32 app. At step3, at publication name (I haven't found documentation about that field in pdfs), it seems that the connection is good but I have no access to