Change FileName File/FTP Adapter

Hi all,
I have a simple scenario File-To-File there is no mapping,so i've created it directly on Integration Directory, like this : https://wiki.sdn.sap.com/wiki/display/XI/FiletofilewithoutusingwithIntegration+Repository
I've have a requirement to change the file name to be saved by Receiver in accordance with a complex logic.
I know that the FileName variable can be manipulated like this: /people/michal.krawczyk2/blog/2005/11/10/xi-the-same-filename-from-a-sender-to-a-receiver-file-adapter--sp14
But in my scenario I have no mapping, so I'm thinking about to implement a Module to change the FileName to be saved.
Does anybody suggest another way? Or implement a module is the best solution for this case?
I'm using PI 7.1
Best regards

Hi all,
The requirement to change file name was changed and now I can calculate the new name after file has been saved on target directory, so my solution was to create a java program that contains this logic and the code to rename file. Now after processing I'm calling this program and works fine.
Best regards

Similar Messages

  • "Message Rejection Handler" for the file/ftp adapter using fault policy

    Hi guys,
    We are trying to implement "Message Rejection Handler" for the file/ftp adapter using following fault policy configuration.
    Fault Policy:
    `````````````
    <?xml version='1.0' encoding='UTF-8'?>
    <faultPolicies xmlns="http://schemas.oracle.com/bpel/faultpolicy">
    <faultPolicy version="2.0.1" id="ProcessNameGenericPolicy"
    xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns="http://schemas.oracle.com/bpel/faultpolicy"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Conditions>
    <faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
    name="bpelx:remoteFault">
    <condition>
    <action ref="ora-retry"/>
    </condition>
    </faultName>
    <faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
    name="bpelx:bindingFault">
    <condition>
    <action ref="ora-rethrow-fault"/>
    </condition>
    </faultName>
    </Conditions>
    <Actions>
    <Action id="ora-retry">
    <retry>
    <retryCount>3</retryCount>
    <retryInterval>1</retryInterval>
    <retryFailureAction ref="ora-rethrow-fault"/>
    </retry>
    </Action>
    <Action id="ora-rethrow-fault">
    <rethrowFault/>
    </Action>
    <Action id="ora-human-intervention">
    <humanIntervention/>
    </Action>
    <Action id="ora-terminate">
    <abort/>
    </Action>
    </Actions>
    </faultPolicy>
    <faultPolicy version="2.0.1" id="ProcessNameHumanInterventionPolicy"
    xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns="http://schemas.oracle.com/bpel/faultpolicy"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Conditions>
    <faultName xmlns:medns="http://schemas.oracle.com/mediator/faults"
    name="medns:mediatorFault">
    <condition>
    <test>contains($fault.mediatorErrorCode, "TYPE_TRANSIENT")</test>
    <action ref="ora-retry-with-intervention"/>
    </condition>
    </faultName>
    <faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
    name="bpelx:remoteFault">
    <condition>
    <action ref="ora-retry-with-intervention"/>
    </condition>
    </faultName>
    <faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
    name="bpelx:bindingFault">
    <condition>
    <action ref="ora-rethrow-fault"/>
    <!--<action ref="ora-retry-with-intervention"/>-->
    </condition>
    </faultName>
    </Conditions>
    <Actions>
    <Action id="ora-retry-with-intervention">
    <retry>
    <retryCount>3</retryCount>
    <retryInterval>1</retryInterval>
    <retryFailureAction ref="ora-human-intervention"/>
    </retry>
    </Action>
    <Action id="ora-retry">
    <retry>
    <retryCount>3</retryCount>
    <retryInterval>1</retryInterval>
    <retryFailureAction ref="ora-rethrow-fault"/>
    </retry>
    </Action>
    <Action id="ora-rethrow-fault">
    <rethrowFault/>
    </Action>
    <Action id="ora-human-intervention">
    <humanIntervention/>
    </Action>
    <Action id="ora-terminate">
    <abort/>
    </Action>
    </Actions>
    </faultPolicy>
    <faultPolicy version="2.0.1" id="RejectedMessages">
    <Conditions> <!-- All the fault conditions are defined here -->
    <faultName xmlns:rjm="http://schemas.oracle.com/sca/rejectedmessages" name="rjm:PartnerLinkName">
    <!-- local part of fault name should be the service name-->
    <condition>
    <action ref="writeToFile"/> <!-- action to be taken, refer to Actions section for the details of the action -->
    </condition>
    </faultName>
    </Conditions>
    <Actions> <!-- All the actions are defined here -->
    <Action id="writeToFile">
    <fileAction>
    <location>Server/Loc/path</location>
    <fileName>Rejected_AJBFile_%ID%_%TIMESTAMP%.xml</fileName>
    </fileAction>
    </Action>
    </Actions>
    </faultPolicy>
    </faultPolicies>
    Fault Binding:
    ``````````````
    <?xml version='1.0' encoding='UTF-8'?>
    <faultPolicyBindings version="2.0.1"
    xmlns="http://schemas.oracle.com/bpel/faultpolicy"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <composite faultPolicy="ProcessNameGenericPolicy"/>
    <service faultPolicy="RejectedMessages">
    <name>PartnerLinkName</name>
    </service>
    <reference faultPolicy="RejectedMessages">
    <name>PartnerLinkName</name>
    </reference>
    </faultPolicyBindings>
    We have SyncFileRead partner link.
    The expectation is: when the message read by SyncFileRead partner link is rejected,
    that rejected message should come to particular directory in the server.
    Could you please help us fixing this.
    TIA.

    HI..
    Have a look at this blog :
    3) Error: HTTP_RESP_STATUS_CODE_NOT_OK 401 Unauthorized
    Description: The request requires user authentication
    Possible Tips:
    u2022 Check XIAPPLUSER is having this Role -SAP_XI_APPL_SERV_USER
    u2022 If the error is in XI Adapter, then your port entry should J2EE port 5<System no>
    u2022 If the error is in Adapter Engine
    u2013then have a look into SAP note- 821026, Delete the Adapter Engine cache in transaction SXI_CACHE Goto --> Cache.
    u2022 May be wrong password for user XIISUSER
    u2022 May be wrong password for user XIAFUSER
    u2013 for this Check the Exchange Profile and transaction SU01, try to reset the password -Restart the J2EE Engine to activate changes in the Exchange Profile After doing this, you can restart the message
    Http* Errors in XI
    Thanks,
    Pooja

  • Using relative path for in file/ftp adapter

    Hi All,
    How to have a relative path for file/ ftp adapter's inbound/outbound operation?
    Example: Consider $ORA_HOME = /home/oracle --> This environment variable can be different on different machines
    i want to drop a file in to $ORA_HOME/folder1/folder2 (Or poll for a file).
    <partnerLinkBinding name="FTP">
    <property name="wsdlLocation">FTP.wsdl</property>
    <property name="out_dir" type="LogicalDirectory">What do i write here???</property>
    <property name="retryInterval">60</property>
    </partnerLinkBinding>
    if i cant configure this in partner link section or in activation agent sction, how else do i achieve this?
    i am using 10.1.3.* version.
    Thanks in advance.
    Roshan.

    You can achive it using the deployment scripts if the directory is changing on the basis of the environment
    If you want to change at run time than you can use the jca properties to set using the variables at runtime.
    Regards,
    Ajay

  • Quality of service in Receiver file/ftp adapter (SAP PI 7.1)?

    Hi,
        We are building an IDoc to File scenario in SAP PI 7.1, where a single incoming idoc will create three different output files. Also files must be created in target server in a specific order.
        Our first idea to ensure that files would be created following a specific order was that Message mapping (in Java) build target payload with all three files following expected sequence.
        In addition, receiver file/ftp adapter is setup with a dynamic variable to create each file with a different filename adding also timestamp.
        Testing the scenario, we see that three files are created in target server but when we sort them by creation date, it seems they don't follow always same sequence.
        Sometimes adapter creates File1, File2, File3; next time it created File2, File1, File3 and so on.
        Our problem is that files must be created always with a specific order and we cannot use BPM. Does anyone know if a receiver file/ftp adapter can be setup to create files following specific sequence (EOIO)?
        I know that sender file/ftp adapter can be setup with a quality of service, but I didn't find anything similar for Receiver file/ftp adapter.
        Suggestions will be welcome.
    Kind Regards,
    Aitor

    Hi,
         First, thanks all of you for your quick answers. They were helpful because we learnt a new configuration setting.
         We tried your suggestions but they didn't really fix our problem.
         Finally interface has been re-designed and we will not have to apply this logic, so no issue from our side.
         However, let me continue with this topic in case that somebody else will have the same issue, then it will be able to review this thread.
         When adapter created the files in the target directory (windows server), files had the expected timestamp in each filename. However, if we sorted windows directory contents by "Date Creation", files were sorted different that timestamp shows in the filename.
         For example, adapter created following files:
    File1_20090325-115117-169
    File2_20090325-115117-174
    File3_20090325-115117-180
         But when we sorted windows folder contents, files were sorted as follows:
    File2_20090325-115117-174
    File1_20090325-115117-169
    File3_20090325-115117-180
         It seems that timestamp was pre-assigned by the adapter, but when adapter created the files, it did it with a temporary name and finally assigns the filename. If a file size was bigger than other, maybe it takes more time and windows creation date is higher.
         If so, it means that adapter is not following same instructions as itu2019s indicated in "maintain order at runtime" checkbox.
         Do you know if there is any way where we can push also the order in the adapter as we did in interface determination?
    Regards,
    Aitor

  • How to assign directory path of File/FTP adapter into a variable insideBPEL

    Hi,
    i need to get the directory path given to file/Ftp adapter (write/PUT) into a variable while invoking, which will be later used in some other BPEL service for processing.
    i am able to get the directory path easily using "jca.file.filename/jca.ftp.filename" in case of invokin Read\GET adapter but am struggling to get these details while invoking a file/Ftp adapter (write/PUT).
    kindly tell me is it possible to get these properties in case of file/Ftp adapter (write/PUT) !!!!
    Thanks
    Siva

    These documents may be helpful in discovering the functionality/use of variables to capture some of the file adapter properties.
    How to Manipulate SOA 11g Adapter Headers Using Oracle Mediator (Doc ID 1352248.1)
    How to Create an Outbound File with the Same Name as the Inbound File with FTP/FILE Adapter (Doc ID 745587.1)
    Hope it helps!
    Amy

  • Dynamic file naming with File/FTP adapter

    Hi all,
    I have a requirement for writing files with names of the files based on a customer ID.... a dynamic name based on a value retrieved from the customer DB.
    I have already tried using the dynamic file naming suggestion in the bpel dev guide, it does not work. I followed the instructions, the process fails to compile and throws "part" and "undefined variables" errors etc.
    Has anyone succesfully used file/ftp adapter to write files with dynamic file names (using a varibale), not %SEQ% or %datetime% formats?
    Thanks,
    Hasan

    You can create a header variable that will allow you to set the outbound file name inside the process. This variable is a message type. From the type chooser select:
    Message Types
    Partner Links
    Outbound Partner Link
    Outbound wsdl
    Message Types
    Imported WSDL
    fileAdapterOutboundHeader.wsdl
    OutboundHeader_msg
    This variable will have a part filename.
    Set this part to whatever you wish your file to be named.
    Select the invoke to your outbound file/ftp partnerlink. Move to the adapters tab and select the header variable you created as the Input Header Variable.

  • Performance File/FTP adapter

    Hello all,
    I've got the following problem.
    For a lot of interfaces I use the file/ftp adapter.
    One of them processes periodically a lot of files in a short time period, for example 3000 files in 20 minutes.
    This interfaces consists of 6 message types. Each message type has it's own communication channel (ftp).
    The messages are appended into one file (plain text) on the FTP server with a fixed file naam. One file for each message type.
    The processing of a lot of these files takes a lot of time, for example 90 minutes for one message.
    They are waiting a lot of time in the adapter queue (messaging system) before they are processed by the ftp adapter..
    I think this is caused by the 'append step' wthin ftp.
    Question (problem) is how I can increase the performance.
    I already know you can change (raise) the parameter 'Maximum Concurrency' in the communication channel. For example value 2 in stead of 1. Only I'm afraid this causes locking problems because the files have to be appended one by one. But I'm not sure about this.
    My questions are:
    - can I use the parameter Maximum Concurrency in this case? If yes, what value should it have to increase the performance substantially?
    - what other options do I have to increase the performance of the file/ftp adapter? (adding an extra server node is no option)
    I hope anyone can help me with this.
    Thanks
    Regards,
    Marco

    Hi Ivan,
    Sorry for my late reply I had to leave yesterday.
    Thanks a lot for your help so far!!
    I still have a question about the Maximum Concurrecy parameter in the communication channel.
    The interface appends file to one file on the FTP server.
    When I  raise this parameter (1->2) to 'activate' parallel processing then I'm afraid theere will be a locking problem, because in one interface there are now two parallel  FTP connections that append to the same file on the FTP server.
    Is this a risk or not?
    Other question: are there any guidelines on how to set the parameter Maximum Concurrency? For example technical limitations.
    Regards,
    Marco

  • Process TIFF file from FTP server using File/FTP adapter

    Hi,
    I have a requirement to process a scanned document TIFF file from a directory on an FTP server using the File/FTP adapter and process through XI into a Web Service via a receiver SOAP adapter.
    My question is can the file/FTP adapter be used to process the TIFF file into XI from an FTP server ? Also, what settings need to be made on the file adapter to allow this file to be processed into XI ?
    Thanks in advance
    Colin

    hi colin,
    TIFF is type of image file, it can be converted to binary using java mapping
    refer this pdf
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/10dd67dd-a42b-2a10-2785-91c40ee56c0b
    regards
    Ramesh P

  • In my SOA Composite, Can I use file/FTP adapter to get the EDI X12 850

    Our requirement is to build a SOA Composite to dump all the details in a EDI X12 850 ( Purchase order ) document in to a database table. In my SOA Composite, Can I use file/FTP adapter to get the EDI X12 850 element details to map them to a base base columns.

    Drop the File Adapter to the left lane of the composite i.e., Services lane...
    Go to Step 2, give a meaningful name....
    Step 3, select "define from operation and schema"
    Step 4, select the operation type as "read"
    Step 5, select physical path and give the folder path in the "Directory for incoming files" field.,
    Step 6, select wildcards and give the expression depending on the file name it would be at run time...
    Step 7, select the polling frequency as required....
    Step 8, in the URL field, adjacent to that , select "browse for schema file" and select the XSD which you have exported from B2B Editor.
    say next and finish, you will be good to go.
    Hope this helps,
    Thanks,
    N

  • Sender File/FTP Adapter - Matching Input to Message Type

    Hi,
    I have a sender file/ftp adapter which is using content conversion to generate an XML document from the contents of a text file. This works fine and when I go into the SXI Monitor I can see the XML document I expect:
    <ns:DN_360BalanceExtract xmlns:ns="http://xxx">
    <ns:RN_360BalanceExtract xmlns:ns="http://xxx">
    <BalanceRecord>
       <SerialNo>xx10000780</SerialNo>
       <RegNo>A1</RegNo>
       <LocationTicketIssued>ALBERT ROAD SOUTH</LocationTicketIssued>
       <DateOfOffence>2008-02-15</DateOfOffence>
       <TimeOfOffence>13:38</TimeOfOffence>
       <OffenceDescription>xxx</OffenceDescription>
       <CurrentStateOfCase>RE-OPENED; CLOSED IN ERROR</CurrentStateOfCase>
       <OutstandingBalance>70.00</OutstandingBalance>
       </BalanceRecord
    <BalanceRecord>
       <SerialNo>xx90001245</SerialNo>
       <RegNo>S849KMR</RegNo>
       <LocationTicketIssued>ALBION PLACE</LocationTicketIssued>
       <DateOfOffence>2011-03-01</DateOfOffence>
       <TimeOfOffence>10:59</TimeOfOffence>
       <OffenceDescription>xxx1</OffenceDescription>
       <CurrentStateOfCase>xxx</CurrentStateOfCase>
       <OutstandingBalance>60.00</OutstandingBalance>
    </BalanceRecord>
    </ns:RN_360BalanceExtract>
    </ns:DN_360BalanceExtract>
    Having created the XML document from a text file I now wish to use the XML as input to a web service. This will of course involve mapping the XML document to a message in the inbound interface. Question is how do  associate the XML generated with a Message Type in the outbound interface. Do I need to make sure the Document or Recordset names match that of a Message Type ?
    Cheers,
    PaulC.

    Hi Paul
    The content conversion will create a document like that if you insert DN_360BalanceExtract as Document name, "http://xxx" as namespace.
    RN_360BalanceExtract will probably be your recordset, with its namespace.
    More information about content conversion on sender file adapter:
    http://help.sap.com/saphelp_nw04/helpdata/EN/ae/d03341771b4c0de10000000a1550b0/frameset.htm
    I'm not sure what you mean by bound. If you mean that PI has to execute mapping you created for that DN_360BalanceExtract message type, you need to associate DN_360BalanceExtract to a message interface and then create all configuration objects and choose that message mapping when you create the interface determination object.
    Regards,
    Giuseppe

  • File/FTP adapter, outbound channel, content conversion, UTF-8 (Unicode)?

    We would like to send "delimited" files to another application (tab-delimited, CSV, ... - the other application does not support XML-based interfaces). Obviously we will have an outbound channel that uses the file/FTP adapter and the data will be subjected to "content conversion".
    The data contains names in many languages; not all of this can be represented in ISO Latin-1, much less in US-ASCII. I suppose UTF-8 would work. The question is: how is this handled by the FTP protocol? (considering that the FTP client is part of the SAP PI file/FTP adapter and the FTP server is something on the "other" machine)

    Hi Peter,
    you can maintain the file encoding in the outbound adapter. See [Configuring the Receiver File/FTP Adapter|http://help.sap.com/saphelp_nw2004s/helpdata/en/bc/bb79d6061007419a081e58cbeaaf28/content.htm]
    For your requirements "utf-8" sounds pretty fitting.
    Regards,
    Udo

  • Configuring the Receiver File/FTP Adapter !!

    Hi
    I am trying to configure the Receiver file adapter using the J2SE adapter engine(Please note , NOT the J2EE adapter engine).I see a prerequisite for configuring as below
    "The address (HTTP port and URL) where the adapter can be contacted from the Integration Engine".
    What values are to be specified and how can they be validated ?
    I could see an example given in the Docs saying below,
    If i specify , say for example,
    "XI.httpPort=1234 and
    XI.httpService=/file/Receiver, the end point address of the file/FTP adapter in the Integration Engine must be specified as follows:
    http://<fileadapterhost>:1234/file/Receiver"
    Can anyone explain what exactly is this endpoint address and where should it be specified/referred to ?
    Thanks
    Saravana

    Hi,
    "http://<fileadapterhost>:1234/file/Receiver"
    this adress refers to an end point with the end point type "xi-connectivity" in the integration directory (ID)which refers to the settings in the file adapter (httpPort=1234 and XI.httpService=/file/Receiver)
    1. you specify these adress in the file adapter (outbound)
    2. you refer to these adress in the ID (Receiver System End points)
    every file adapter should have an own port, because you can not specify two identical ports in two fileadapters.
    hope I could help you,
    michele
    Message was edited by: Michele Mangieri
    Message was edited by: Michele Mangieri

  • Writing timestamp on the content of file (not the filename) using FTP Adapt

    Hi Experts,
    Is it possible to write a timestamp (from the source server) to a target logfile if I'll use FTP Adapter?
    Here the scenario:
    Source:
    source.log -> the contents is AAAA (the timestamp base from the server is [06/09/10 10:00])
    - basically the source.log file is overwritten with the same content but the timestamp is changed so that's would be scenario
    it will checked by the FTP adapter....
    Target:
    target.log -> the content of the file is 06/09/10 10:00
    so probably if i have a target logfile I'll just have to append the file as this
    06/09/10 10:00
    06/09/10 10:02
    06/09/10 10:04
    06/09/10 10:06
    06/09/10 10:08
    06/09/10 10:10
    If it's possible, how will I do this? Do I need script? or just normal settings of the FTP adapter?
    R-jay

    Yes, is posibble. if i not wrong, you can do this ussing Dynamic configuration.
    see those links
    /people/ryan.crosby/blog/2009/02/27/file-xi-proxy-scenario--moving-binary-files-with-accompanying-filename-attribute-in-converted-xstring-format
    http://help.sap.com/saphelp_nw04/helpdata/en/43/03612cdecc6e76e10000000a422035/frameset.htm
    Thanks
    RP

  • Getting filename in FTP Adapter in ESB

    I am trying to get the filename on an inbound FTP adapter in an ESB. I've followed the directions I have found, by following these steps:
    1. The namespace xmlns:ehdr="http://www.oracle.com/XSL/Transform/java/oracle.tip.esb.server.headers.ESBHeaderFunctions" is automatically generated in the xsl file.
    2. Create a variable in the xsl file, with value ehdr:getRequestHeader('/fhdr:InboundFileHeaderType/fhdr:fileName','fhdr=http://xmlns.oracle.com/pcbpel/adapter/file/;'). Let's give it the name INFILENAME.
    3. Reference the variable in some expression in the xsl file: $INFILENAME
    4.Set UseHeaders="true" in the FTP inbound wsdl file
    When I do this in a file adapter, I can use the value. When I do this in an ftp adapter, no value comes back.
    Any ideas?

    Yes, that did it, thanks. I had a typo:
    getRequestHeader('/fhdr:InboundFtpHeaderType/fhdr:fileName,'fhdr=http://xmlns.oracle.com/pcbpel/adapter/ftp/;')
    which should have had "FTP" in upper case. The correct code is as you stated:
    getRequestHeader('/fhdr:InboundFTPHeaderType/fhdr:fileName,'fhdr=http://xmlns.oracle.com/pcbpel/adapter/ftp/;')

  • Flat file Ftp Adapter

    How can a I produce a flat file with ftp adapter for a receiving application?
    Source XML > Destination Flat File

    I do not think that you can use any of the standard adapters directly to produce af flat file.
    You might be able to use D3L, of which I do not know much. In any way I would prefer to arrange my data as XML if possible.
    To solve the flat file problem I would customize the standard ftp adapter by implementing the ReceiverCustomizer interface. How to do this you can see in the ftp adapters userguide on page 3-6. I hope you have the userguide yourself. I could not google it on the internet.
    By implementing this interface you are able to change the output of the ftp adapter before it is delivered.
    Regards,
    Peter

Maybe you are looking for

  • Why no sound on iTunes?

    iTunes is not working. I get no sound when playing from my iTunes library or playing a CD;  though the sound works OK if using Parallel  to run Windows XP and play it as a WMA file;  and on the Mac with other applications like Garageband. I am runnin

  • Quality of imported logo's not great - why?

    Very new to using Flash - new website - imported very good quality logo's but quality on finished site not great - what am I doing wrong?

  • Report size problem

    Hi.... I have a report of width 5 inch and height 4 inch.I send that report directly to the printer.But the printer didnt stop after the 4 inch,it continue the 11 inch paper.After the paper is complete then the printer is stop.But i want to stop the

  • MacBook power adapter.

    Hi, I am getting a white MacBook. Will it do any harm if a 85 watts power adapter for a MacBook Pro is used instead of the 60 watt adapter recommended. Thanks for any answers, Alan.

  • Will install discs for an iBook (mid 2005) work on an older model (late 2004) ?

    I have a nephew that got an old 1.2 GHz 30 GB iBook from a neighbor. It had OS X 10.4 on it, but was not running. I used some old discs from an eMac to fix the OS, but couldn't get any additional software to install. I want to get the newest install