File-adapter with Dynamic Directory/Filenames in Header-variables

Hi,
I have looked through the file-adapter documentation. And it says that you can use wildcards/regexpressions/dynamic file and directory names using the file-adapter-wizard. Also you can use the header-variables to specify the file and directory names at run-time.
Is it also possible to use the dynamic names using the header-variables?
I want to create a process that I can give in the file/directory-names at run-time and that it will look for a file using the wild-cards to pickup. Since at run-time I often do not know the name of the file, since it might contain a sequence or date/time-stamp. But I do know the location and the structure of the file name (that is specified at config-time).
The same question for outbound: if I specify a name in the header-variables with forexample '%seq%' in the name, like 'filename_%seq%.XML', will it then create the file with the sequence?
Thanks in advance.
Regards,
Martien

Hi,
I've been trhough this document over and over again, but did not find anything on how to do it actually. But I found out that the file-outbound-header wsdl does not contain a directory element after generation by the wizard. But you can add it afterwards.
Also you can replace the location attribute in the jca:address element of the adapter-wsdl by mcf properties (host, username, password) and override them by copying the values to the partnerlink using bpelx:properties.
I planned to put the details in my blog.
Regards,
Martien

Similar Messages

  • File Adapter with Dynamic routing????

    Hi
    I need to send a csv file and determine the receiver at runtime. Does anybody know if this is possible?
    What I would actually need is a field that, after reading the csv file into the payload, I could still use in order to conduct a dynamic receiver determination. Is this in anyway possible, anybody got an idea???
    Thanks for your help,
    Nana

    Hi Nana,
    COnditional Receiver Determination is possible.
    While doing your Receiver Determination, you can give mutiple Receivers, and also spoecify condition on which the receivers are to be choosen.
    But,the conditional receiver detrmination can be done only on the source message. the reason being that the sequence of steps executed is
    receiver determination--> interface determination --> interface mapping.
    This implies that as receiver determination occurs before the mapping, conditional receiver determination can be done only on the source. Also, the source fields can be easily accessed using XPATH in the condition field.
    Thread
    Conditions in Receiver Determination
    Blog,
    /people/shabarish.vijayakumar/blog/2005/08/03/xpath-to-show-the-path-multiple-receivers
    Regards,
    Bhavesh

  • File Adapter with Conversion - XML with Hierarchy?

    XI 3.0 (SP9)
    We are using the inbound file adapter with conversion to convert a flat file that has header and line items.  I would have thought that the data type should have been setup something like this:
    <data type>
    <header>
      <item>1</item>
      <item>2</item>
    </header>
    </data type>
    Our flat file looks like this:
    H12345
    I12345
    We have only been able to configure the file adapter to bring in the data like this:
    <data type>
    <header></header>
    <item>1</item>
    <item>2</item>
    </data type>
    What is the proper way to inbound data through a file adapter that has structure conversion like this?
    Do all of the elements get put under the root node, or is there a way to build structure?
    Do we need to build the data type to correspond with the exact way that the data will come in from the file adapter?
    Thanks
    Peter

    Not quite sure what you want to get, as the flatfile and xml structure does not contain the same values.
    However, I will try to give you an example:
    Your flat file looks like this:
    H12345
    I12345
    If the first row is header and the next is a line, then you need to specify the fila adapter with the following:
    Document name = datatype
    Recordset name = recordset
    Recordset structure = header,1,item,*
    Recordsets per message = *
    Recordset sequence = Ascending (need SP10 for this, but you do not need it for this)
    Keyfieldname = id
    header.fieldFixedLengths = 1,5
    header.fieldNames = id,number
    header.keyFieldValue = H
    header.lastFieldsOptional = Yes
    item.fieldFixedLengths = 1,5
    item.fieldNames = id,number
    item.keyFieldValue = H
    item.lastFieldsOptional = Yes
    This will create something like this:
    <datatype>
    <recordset>
    <header>
    <id>H</id>
    <number>12345</number>
    </header>
    <item>
    <id>I</id>
    <number>12345</number>
    </item>
    </recordset>
    </datatype>
    Hoever, if both rows are "item" rows , then you need to specify the file adapter with the following:
    Document name = datatype
    Recordset name = header
    Recordset structure = item,*
    Recordsets per message = *
    Recordset sequence = Ascending (need SP10 for this, but you do not need it for this)
    item.fieldFixedLengths = 1,5
    item.fieldNames = id,number
    item.lastFieldsOptional = Yes
    This will create something like this:
    <datatype>
    <header>
    <item>
    <id>H</id>
    <number>12345</number>
    </item>
    <item>
    <id>I</id>
    <number>12345</number>
    </item>
    </header>
    </datatype>
    Q: Do we need to build the data type to correspond with the exact way that the data will come in from the file adapter?
    A: Yes!
    Good luck!

  • How to use File Adapter with hierarchial Structure?

    Hi,
    How to use File Adapter with hierarchial Structure like..
    Data:
    --Header Details:
    Line Item Details:
    Data
    Bcoz I am getting a Flatfile in a hierarchial way as shown below.
    Header Details :1
    Line Item a
    Line Item b
    Header Details :2
    Line Item c
    Line Item d
    Kishore

    Hey Kishore,
    In order to create a structure you need to use the file with convertion mode on the sending communication channel of the file adapter.
    check the link for the needed configuration paramters.
    If the structure is more complexed you can use the Contetnt master(CM) from itemfield which allows to ceate XML file from complex flat files and more.
    <a href="http://help.sap.com/saphelp_erp2005/helpdata/en/0d/5ab43b274a960de10000000a114084/frameset.htm">File sender adapter</a>
    If you have any question i'll be more than happy to assist.
    Nimrod Gisis

  • Sender File Adapter with file conversion

    Hi guys,
    I’m using a Sender File adapter with file conversion. The message to be processed has a structure with fixed lengths and in your content are some values that needs to be ignored.
    An example:
    value1  <b>value2</b>  value3…
    I want to ignore <b>value 2</b> but I can’t find a parameter for that! Do I need to define dummy fields on my data type and ignore those fields during mapping? Or there is a specific parameter for that?
    Thanks in advance,
    Ricardo.

    hi,
    there always is another way:)
    you can import the whole line to one field
    and cut it inside the adapter module
    (then you can define start and stop of the substring that you need to use)
    but of course it's not standard even though it's quite easy to achieve in java
    Regards,
    michal
    <a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions"><b>XI / PI FAQ - Frequently Asked Questions</b></a>

  • Using File Adapter with Logical Name

    I am creating a file adapter with Logical name. Apart from giving the Logical name is there any other configuration that I am suppose to do on the Web Logic before I start using it?
    Thanks in Advance.

    After configuring the file adapter, all you need to do is , give the path as a value for the logical name which you have created earlier. That you can do on the file adapter property inspector. There is no need to do anything on the server level. Lemme know
    Thanks,
    N

  • File Adapter with Content Conversion

    Hi -
    I am trying to convert a Flat file which has data as
    firstnamelastnamecompanyName
    Now i have created a message type which has a root name as Contact and its children are FirstName,LastName,Company.
    And in the configurator i have created a file adapter with the content conversion, but being very new to XI i have never used a file adapter with content conversion.  This is what i have in my Content Conversion Parameters.Please correct my code.
    Document Name      ::   MT_Contact
    Document Namespace ::   http://venkat
    Document Offset    :: <i>i did not enter anything here</i>
    Recordset Name     ::   RootNode(i gave this name just like that,,, Should it be something from the IR??
    Recordset NameSpace:: <i>i did not enter anything here</i>
    Recordset Structure::   Contact (this is the name in my IR
    Recordset Sequence ::  Ascending
    Recordsets per Message :: Contact,* (Can someone explain what should be given here)
    Then in the bottom in the name value pairs i have given
    Contact.fieldNames   =   FirstName,LastName,Company
    Contact.fieldSeparator = #
    When i am using the above configuration the error i am getting in RWB is Error: Conversion initialization failed: Exception: java.lang.Exception: java.lang.Exception: Error(s) in XML conversion parameters found:
    Format error in 'xml.recordset' argument: incomplete structure (name,number) pairInvalid 'xml.recordsetsPerMessage' value 'Contact,*' found
    I am very new to XI and i am unable to understand what exactly each field means in the file adapter when the content coversion is used. Can someone take the pain of explaining them.
    Thank you
    Venkat

    Hi,
    Use the following to create an XML strucutre like this,
    <MT_CONTACT>
    <CONTACT>
    <FirstName> </FirstName>
    <LastName> </LastName>
    <CompanyName> </CompanyName>
    </CONTACT>
    <MT_CONTACT>
    DocumentName : MT_TEST
    DocumentNamespace : Yournamespace
    RecordserName : record
    RecordsetStructure : CONTACT,1
    In the table,
    ignoreRecordsetName  : true
    CONTACT.fieldNames : FirstName,LastName,CompanyName
    CONTACT.fieldSeparator : #
    Go through the links suggested by moorthy and also these blogs to understand content conversion better,
    /people/anish.abraham2/blog/2005/06/08/content-conversion-patternrandom-content-in-input-file
    /people/jeyakumar.muthu2/blog/2005/11/29/file-content-conversion-for-unequal-number-of-columns
    /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/shabarish.vijayakumar/blog/2006/02/27/content-conversion-the-key-field-problem
    /people/sap.user72/blog/2005/01/06/how-to-process-csv-data-with-xi-file-adapter
    Regards,
    Bhavesh

  • Acknowledgement from receiver file Adapter with out BPM

    Hi Gurus,
    I am trying to get Acknowledgement from Receiver file Adapter with out Using BPM.
    Here is the scenario. I am sending files from different Sender Adapters. There is only one target that is File Adapter. After each successfull and failure transaction I need an Acknowledgement that needs to trigger another receiver adapter and send the the file name and timestamp to that file.
    Hope this is a complicated scenario. Please help me.
    Thanks,
    Kevin

    from sap note 821267
    6. Acknowledgements
        * Q: Does the File Adapter support acknowledgements?
        * A: You need to distinguish system acknowledgements (indicating that a message has been received by the target system) and application acknowledgements (indicating that the message has been successfully processed by the application on the receiver side).
               The receiver of an XI message will only send an acknowledgement back to the sender if the sender has requested one. However, the File Adapter has no functionality that relies on the receipt of an acknowledgement, so it never requests one.
               On the other hand, if a File Adapter Receiver receives a request to send an acknowledgement, it will do so for a system acknowledgement request. Application acknowledgements are not supported at all as the File Receiver has no way to determine if the written file has been correctly processed by the back-end application, which is what a positive application acknowledgement would imply.
    this means that your requirement is ideally not possible without a BPM

  • File receiver adapter with the same filename than sender

    Hi guys,
    I am experiencing a problem when I use the <b>Adapter Specific Message Properties</b> to be able to receive a file with the same name as the sender.
    I've been following the example of Michal Krawczyk (XI: The same filename from a sender to a receiver file adapter - SP14) but i get a problem  related with the content converter parameters. 
    The error I receice in the File  Adapter is the next:
    <i>Could not process due to error: 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!</i>
    I have been trying to do all the combinations with the content conversion parameters but the result is allways the same, MORE FIELDS FOUND IN XML ....
    My XML structure is the next:
    <ns0:MT_MDFranceN xmlns:ns0="urn:s-n:HR:MasterDataFrance">
       <lines>
          <line>  
             <header/>    1..1
             <data/>       0...unbound
          </line>
       </lines>
    </ns0:MT_MDFranceN>
    In the header I write the name of the file with the code provided by SAP and Michal, so the name of the file is stored there.
    any help?
    Thanks!!!!!

    I have changed the XML because, as you said, there is no need to introduce the filename inside the payload. Now the  structure is the next:
    <i><?xml version="1.0" encoding="UTF-8"?>
    <ns0:MT_MDFranceN xmlns:ns0="urn:s-n:HR:MasterDataFrance">
       <lines>
          <line>
             <data/>
          </line>
       </lines>
    </ns0:MT_MDFranceN></i>
    Record Structure: lines,line
    line.addHeaderLine   0
    line.endSeparator     'nl'
    lines.fieldSeparator   'nl'
    line.fieldFixedLengths  1300
    A sample of the payload is the next:
    - <ns0:MT_MDFranceN xmlns:ns0="urn:s-n:HR:MasterDataFrance">
    - <lines>
    - <line>
      <data>EDI_DC40_U5300000</data>
      <data>E2HR_HD001 530000000000007802</data>
      <data>E2HR_KY001 530000000000101TS 20070104000010 20070129</data>
    000000601</data>
      </line>
      </lines>
      </ns0:MT_MDFranceN>
    And.....   I still have the same problem, the same message in the file adapter:
    <b> 'java.lang.Exception: Consistency error: more fields found in XML structure than specified in conversion parameters</b>
    Any idea of what can be the problem?
    thank you very much!!!

  • Target Directory & File Name parameters in Receiver File Adapter with ASMA

    Hi Experts..
    I have the following question....
    What am I suppose to inform in the Target Directory & File Name obligatory parameters in Receiver File Adapter if I am using ASMA to fill it? Is it any dummy value?
    Also, if you have any step by step guide/blog to forward on how to use ASMA in file adapter I will be greatful.
    Thanks in advance,
    Daniela

    You can give any dummy value in dir and file name... Just go through these blogs
    /people/michal.krawczyk2/blog/2005/11/10/xi-the-same-filename-from-a-sender-to-a-receiver-file-adapter--sp14
    /people/madanmohan.agrawal/blog/2009/05/20/combining-three-different-aspects-of-pi-asma-af-module-and-variable-substitution-in-one-shot

  • Error file adapter with variable substitution in PI 7.31

    Hello,
    I'm trying to create a file with a dynamic name, based on the payload of the message.
    We're trying to create a filename with the bold content in the name %batchId%.xml. The subtitution we use is
    payload:batch,1,batch-info,1,id,1
    <ns1:batch xmlns:ns1="http://www.atosworldline.com/archivingPortal/receivers">
    - <ns1:batch-info id="test" isTest="true"> 
    <ns2:sender-identifier xmlns:ns2="http://www.atosworldline.com/archivingPortal/batchInfo">String 2</ns2:sender-identifier>  
    <ns2:nb-elements xmlns:ns2="http://www.atosworldline.com/archivingPortal/batchInfo">3</ns2:nb-elements>  
    <ns2:batch-integration-mode xmlns:ns2="http://www.atosworldline.com/archivingPortal/batchInfo">String 4</ns2:batch-integration-mode>  
    <ns2:creation-datetime xmlns:ns2="http://www.atosworldline.com/archivingPortal/batchInfo">1999-05-31T13:20:00Z</ns2:creation-datetime>  
    </ns1:batch-info>
    - <ns1:receivers> 
    - <ns1:receiver> 
    <ns1:id>String 5</ns1:id>  
    <ns1:action>String 6</ns1:action>  
    <ns1:contact-details />  
    - <ns1:tokenSets> 
    - <ns1:tokenSet startDate="1999-05-31T13:20:00Z" endDate="1999-05-31T13:20:00Z"> 
    - <ns1:token> 
    <ns1:tokenvalue>String 7</ns1:tokenvalue>  
    </ns1:token>
    - <ns1:token> 
    <ns1:tokenvalue>String 9</ns1:tokenvalue>  
    </ns1:token>
    </ns1:tokenSet>
    - <ns1:tokenSet startDate="1999-05-31T13:20:00Z" endDate="1999-05-31T13:20:00Z"> 
    - <ns1:token> 
    <ns1:tokenvalue>String 11</ns1:tokenvalue>  
    </ns1:token>
    - <ns1:token> 
    <ns1:tokenvalue>String 13</ns1:tokenvalue>  
    </ns1:token>
    </ns1:tokenSet>
    </ns1:tokenSets>
    </ns1:receiver>
    </ns1:receivers>
    </ns1:batch>
    The following error is shown, when processing the message through the receiving fileadapter.
    MP: exception caught with cause com.sap.engine.interfaces.messaging.api.exception.MessagingException: 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: batchId
    kind regards,
    Pieter

    AFAIK - Variable substitution does not support attributes. It only support the elements. (- <ns1:batch-info id="test" isTest="true">)
    May be you can go with dynamic configuration instead of variable substitution.

  • File adapter: how to change filename

    Hi all,
    In my scenario I need to add specific time stamp (current date actually) to filename when it's copied to target system. In the properties of file adapter there is an option to add time stamp, but I need it to be in format YYMMDD.hhmm, while XI default suggests another one. How can I solve the problem? Use variable substitution or m.b. dynamic configuration? In addition want to say that there is no any mapping in the scenario.
    Thank you.

    Hi Dmitriy,
    pls do chk this links
    An interesting usage of Variable Substitution in XI
    Solution to the problem encountered using Variable Substitution with XI-SP12
    The specified item was not found.
    do g with dynamic configuration
    Regrads
    Sampath

  • XI3.0 File Adapter - Changing target directory at runtime

    Hi all,
    I have a XI3.0 running and I'm using the file adapter of SAP Basis 7.00. I'm trying to change the target directory at runtime, as I already did with the file name. The file name could be changed using the DynamicConfiguration, but this does not work for the directory. In help.sap I found the hint to use the variable substitution of the communication channel. I did not get it running, but it also does not solve my problem since I don't want to get the value for the target directory from the message header, but from a SAP IS-U system.
    Can anybody help me to solve this problem?

    Hi,
    while using variable substitution, did u set the indicator for create Directory:
    <i>If the adapter is to create the target directory, if it doesn't already exist then set the indicator Create Target Directory.
    If the indicator is not set and the target directory doesn't already exist the adapter returns an error.</i>
    Regards
    Vijaya

  • File Adapter - special character in Filename

    Hi,
    i have a question concerning file adapter.
    Scenario: we are polling files via file sender adapter (FTP).
    Problem: if the filename contains a special character, an error is thrown with 'The System cannot find the file specified'
    Scope: Special character in filename (not in payload)
    Installed: XI 3.0 SP 19 on Linux
    Questions:
    - what FTP implementation does XI use?
    - What do i have to check/upgrade to unicode?
    - is it an OS problem or an Java problem or a XI problem?
    - or is it not possible copiing files with special characters in filename?
    Thank you very much in advance.
    Michael

    Hi Michael,
    The file/FTP adapter supports both passive and active FTP data connection. You can select the data connection while configuring the adapter.
    The file/FTP adapter follows specification RFC 959. The specification can be found on the Internet under  www.ietf.org/rfc/rfc0959.txt.
    For FAQs about the file/FTP adapter, see SAP Note 821267. Please note that you'll need an account to log in on service.sap.com.
    Question: How are you specifiying the file name? i.e. Are you using placeholders, like ?, *, *.txt, etc ?
    If there's a problem with the filenames, then it should be a problem in the JAVA implementation of the adapter I assume. So you could for instance build your own adapter extension to by-pass that problem.
    Just for your information; I haven't encounter a problem with filenames in other projects.
    Good luck!

  • File Adapter: need to include filename in content being written

    I want to use the file adapter to write a file, using the filename convention to generate part of the name dynamically.
    However, I need to include the filename used for the output file in the actual content too.
    Any ideas if this can be done?
    Thanks
    Toby

    At a customer we implemented the file adapter to create a file based on a specic name for appending:
    <assign name="AssignStaticFilename">
    <copy>
    <from expression="'Output.csv'"/>
    <to variable="gFileAdapterOutboundHeader" part="outboundHeader" query="/ns2:OutboundFileHeaderType/ns2:fileName"/>
    </copy>
    </assign>
    In de FileAdapter WSDL we set:
    <jca:operation
    LogicalDirectory="OutputDirectory"
    InteractionSpec="oracle.tip.adapter.file.outbound.FileInteractionSpec"
    FileNamingConvention="%SEQ%"
    NumberMessages="1"
    OpaqueSchema="false"
    Append="true" >
    </jca:operation>
    Does this help you, based on a given input to set the filename and this variable to put it into the file?

Maybe you are looking for