File Adapter - pass in target directory as parameter

Hi
I'm currently using a number of File/FTP Communication Channels
all of which talk to the same FTP server
but I have a requirement to send my translated file to specific directories on the FTP Server
Ideally I'd like to have just 1 FTP Comms channel that has parameters for the Target Directory - how can this be done exactly.
I can see in the File/FTP comms channel in advanced tab the ability to provide parameters and the saphelp
is saying I'd need to pass in a directory paramater.... But where do I get to do this - I can think of Receiver or Interface Determination
but I can see nothing there to do this.... what am I missing ?

hi,
In your Receiver Determination, you can add multiple Receievers and you can also add the condition on which the receiver has to be choosen.
you can refer to:
/people/shabarish.vijayakumar/blog/2006/06/07/customise-your-xpath-expressions-in-receiver-determination
/people/shabarish.vijayakumar/blog/2005/08/03/xpath-to-show-the-path-multiple-receivers
regards,
ujjwal kumar

Similar Messages

  • Adapter moduler in file adapter receiver - get Target Directory from param

    Hi everybody,
    We are in PI 7.1
    I need in an adapter module (file adapter receiver) to access to the Target Directory comming from parameters
    I foound the code in a weblog
    /people/sap.user72/blog/2005/07/15/copy-a-file-with-same-filename-using-xi
    Here is the code I found
    public ModuleData process(
              ModuleContext moduleContext,
              ModuleData inputModuleData)
              throws ModuleException {
              Object obj = null;
              Message msg = null;
              try {
                   Channel ch = new Channel(moduleContext.getChannelID());
                   obj = inputModuleData.getPrincipalData();
                   msg = (Message) obj;
                   XMLPayload xmlpayload = msg.getDocument();
                   String path = ch.getValueAsString("file.targetDir");
                   if (!path.endsWith("
    ") && !path.endsWith("/"))                    
                             if(path.indexOf("
    ")!=-1)
                                  path+="
                             else
                                  path += "/";
                   if (xmlpayload != null) {
                        convert(xmlpayload.getContent(), path);
                   inputModuleData.setPrincipalData(msg);
              } catch (Exception e) {}
              return null;
         private void convert(byte[] bs, String path) throws Exception {
              String bs_out = new String(bs);
              String filename =
                   bs_out.substring(
                        bs_out.indexOf("<FileName>") + 10,
                        bs_out.lastIndexOf("</FileName>"));
              bs_out =
                   bs_out.substring(
                        bs_out.indexOf("<Base64>") + 8,
                        bs_out.lastIndexOf("</Base64>"));
              byte bb[] = com.sap.aii.utilxi.base64.api.Base64.decode(bs_out);
              File f1 = new File(path + filename);
              FileOutputStream fos = new FileOutputStream(f1);
              fos.write(bb);
              fos.close();
    The object Channel come s from the package import com.sap.aii.af.service.cpa.Channel;
    The jar is in the build path (com.sap.aii.af.service.cpa.jar);
    When I write in NWDS
    Channel ch = new Channel(moduleContext.getChannelID());
    NDWS gives me an error "Cannot instantiate the type Channel".
    Can somebody help me about that, please?
    Does that code dosn't work in pi 7.1?
    Thanks in Advance for your help.
    Best Regards.
    E. Koralewski
    Edited by: Eric Koralewski on Feb 3, 2011 1:40 PM

    > When I write in NWDS
    > Channel ch = new Channel(moduleContext.getChannelID());
    > NDWS gives me an error "Cannot instantiate the type Channel".
    it should be:
    Channel ch = (Channel) LookupManager.getInstance().getCPAObject(CPAObjectType.CHANNEL, moduleContext.getChannelID());
    (taken from sample module ConvertCRLFfromToLF)
    http://help.sap.com/javadocs/pi/pi711sp03/index.html?com/sap/aii/af/service/cpa/Channel.html
    Edited by: Stefan Grube on Feb 3, 2011 2:02 PM

  • Process 0kb empty file and deliver to target directory

    Hello Experts,
    We had a requirements to process an empty file handling and send it to the receiver/target directory. We had configured to "Process Empty File" Handling and “Write Empty File. The 0KB file polling successfully and archived to the directory with empty payload, but the message output was never created/sent to the target directory. In smxi_moni error message displayed:
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--
    Request Message Mapping
      -->
    - <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
      <SAP:Category>XIServer</SAP:Category>
      <SAP:Code area="MAPPING">CANNOT_READ_PAYLOAD</SAP:Code>
      <SAP:P1 />
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack>Unable to read payload from the message object</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    Since this is an empty file, there are no mappings involved.  Is there a way to that we could check for 0kb file? If it is empty file, we want to pass/place the empty file to the target directory and if it is not empty, we want the message to process in the standard way.

    Hi David,
    "Since this is an empty file, there are no mappings involved. "
    do you mean you didnt do the mapping at all cos it is empty file ?
    though it is empty file still you need to do the mapping as usually,but when you check the option process the empty file both in sender and receiver adapter ,then it will process even an empty file comes.if you dont check these options and you get an empty file during the process then the mapping will fail.
    in real time you don't know which one is empty file right,but her you know cos you are placing empty file.
    I think you got to do all the steps you do in eneral for a scenario and top on that you have to check process empty file in both sender and receiver adapters,but you may not see the payload in SXMB_MONI.
    but search in SDn you get lot stuff.

  • Sender Channel - File Archiving - No Create Target Directory option

    Hello,
    We are getting an error because our Sender channel is always trying to create the target directory when saving a file in our archive location. 
    Using a Receiver Channel the option "Create Target Directory" exists, so I can disable that option.  Is there a way to disable that option on a Sender Channel when archiving?
    Thanks,
    Matt

    Reviewing the settings available from Help.sap.com says:
    "Configure Sender File Adapter"
    Under Processing Mode, specify what is to happen to files that have been processed successfully.
    u25CB       Archive
    u25A0       To add a time stamp to the file name, select Add Time Stamp.
    The time stamp has the format yyyMMdd-hhMMss-SSS. The time stamp ensures that the archived files are not overwritten and it enables you to sort them according to the time that they were received.
    u25A0       Enter the name of the Archive Directory.
    I do not see anything in here that helps clear up this issue.
    Also, I have given a target directory.  The problem is it still tries to create that directory. 
    Thanks,
    Matt

  • File Adapter - Error creating archive directory adapter file

    Hello,
    I've a interfase File to RFC. In sender CC i have Archive Directory.
    It occurs the follow error:
    Error creating archive directory adapter file
    The archive directory exists.
    any idea?
    thanks very much

    Hi Silvia,
    Check whether the user you are using for FTPing is having proper authorizations.
    Also, verify whether you have the archive directory in place.
    Regards,
    Neetesh

  • Receiver File Adapter: Problem with NewLine Content Conversion Parameter

    Hello Everybody
    On our SAP-XI (SAP NetWeaver 2004s, sp14) I have the scenario to send a price catalogue (IDoc PRICECATALOGUE.PRICECATALOGUE02) from SAP R/3 as csv PRICAT file to a file share.
    In the receiver communication channel I have defined
    Message Protocol = File Content Conversion
    using the following RecordSet:
    RecordSet = HeaderRow,MainBody
    One header row is followed by one or more main body rows. The csv PRICAT message format demands that there is an empty row (i.e. one carriage return) between header and main body and another carriage return after the last main body row:
    <Header Row>
    carriage return
    <MainBody 1>
    <MainBody 2>
    carriage return
    As content conversion parameters I tried to use NewLine ('nl') to create the carriage returns in the file:
    HeaderRow.fieldSeparator = ,
    HeaderRow.endSeparator = 'nl'     " new line
    MainBody.fieldSeparator = ,
    MainBody.endSeparator = 'nl'
    Using the settings I have been able to created the carriage return at the end of the file but not the one between header and main body.
    As workaround I have used the following approach:
    " Add the following XSLT mapping between header and body:
                <SeparatorLine>
                    <value>
                        <xsl:value-of select=" '' "/>
                    </value>
                </SeparatorLine>
    RecordSet and parameters have been changed accordingly:
    RecordSet = HeaderRow,SeparatorLine,MainBody
    HeaderRow.fieldSeparator = ,
    HeaderRow.endSeparator = 'nl'  
    SeparatorLine.fieldFixedLength = 0,0   " sic! 
    MainBody.fieldSeparator = ,
    MainBody.endSeparator = 'nl'
    Has anybody an idea why I failed to receive the first carriage return and has somebody a more elegant solution?
    Kind Regards
       Uwe

    Hi,
    Thanks for reply. I have already used 'nl'.
    When i open into the notepad it is showing [] boxes rather then new line.
    e.g. 1 [] 2 []
    but when we open into wordpad it opens properly.
    Customer wants when he opens in notepad it should show line by line.
    e.g.
    1
    2
    How should i convince to customer ?

  • No .java file found in the target directory of JSP compilation

              There are only .class files. Where are those .java files? I am using WL5.1 SP7.
              

    We had to add the following to our application's web.xml file:
              <!-- keepgenerated initArg to JSPServlet -->
              <context-param>
              <param-name>weblogic.jsp.keepgenerated</param-name>
              <param-value>true</param-value>
              </context-param>
              John J. Feigal Voice (651)766-8787 (main)
              Sr. Technical Consultant (651)766-7249 (direct)
              Ensodex, Inc. Fax (651)766-8792
              4105 N. Lexington Ave., Suite 150 email [email protected]
              Arden Hills, MN 55126 WebSite http://www.ensodex.com
              "Jim Linux" <[email protected]> wrote in message
              news:3a40b129$[email protected]..
              >
              > There are only .class files. Where are those .java files? I am using WL5.1
              SP7.
              

  • Dynamically construct Target/Source Directory in File Adapter

    Hi All,
    Is it possible to Dynamically construct target/Source Directory in File Adapter? If yes can anyone plz provide details about the same.
    regards
    Vinay

    Hi vinay,
    have a look @ these threads..u may get some help!!
    Re: Dynamic directory name in Receiving File adapter
    Dynamic FileName and Directory - UDF
    Re: Dynamic Directory and File Naming in Receiver Adapter
    Re: target directory in file adapter
    Regards
    BILL

  • File adapter "Directory" parameter

    Hello colleague,
    While going through the documentation of file adapter the statement regarding directory of the file was not
    clear -> "The directory specified must be accessible by the service user of the Adapter engine, with appropriate read/write permissions".
    Where can i find the service user of adapter engine and how can i set its permissions. I want to use a directory on my local pc. But when i specify the absolute path -> //<pc name>/<location>/ the file is not picked up.
    Could you pls. help.
    Regards,
    Gajendra.

    Hi Gajendra,
    If u place a file in ur local pc, then giving the absolute path in the communication channel configuration wont help.
    For enabling XI to pick up a file from ur pc u should first install an FTP server in ur system.
    These servers are easily available on net. Foe ex u can download the GOLDEN FTP Server and install it on ur pc.
    Once this is done u need to create a folder in ur system where u will place all the files to be polled by XI. This folder needs to be added to the server with full control enabled.
    Next step is while configuring the communication channel, the file protocol should be FTP. Give the IP address of ur pc here.
    This will help xi in picking up files from ur local pc.
    Regards
    Neetu

  • XI3.0 - file adapter create directory

    Hi,
    Is there anyway in 3.0 to prevent a receiver file adapter from creating a directory if it does not already exist.  There was a parameter in the J2SE adapter but I do not know if or how this has been implemented in 3.0.
    Regards
    Ian

    Ian,
    SPS 17 introduces a new configuration setting for the receiver file adapter: "Create Target Directory" which does exactly what you want.
    See http://help.sap.com/saphelp_nw04/helpdata/en/57/a21f407b402402e10000000a1550b0/frameset.htm
    Regards,
    Koen

  • Exception handling in File adapter when directory structure is incorrect

    hi,
    How can exception handling part be done in File adapter in cases where directory structure is incorrect, or directory
    we are referring to is not present.
    thanks
    Yatan

    If you are polling then there will be error message in log files.But i dont think we can do exception handling in such cases.
    Cheers

  • File Adapter giving Translation error while reading & moving pdf files

    Hello Gurus,
    I am on SOA 10.1.3.4 and using BPEL for the below procedure.
    The requirement I have is to move pdf files from one local directory to another as soon as the pdf files land in source directory. So I used a file adapter (FileAdapter_1) to poll the file and read as an opaque schema. Then I copied the name and directory in a header variable and passed the header variable to another file adapter(FileAdapter_2) which moves the file from source to target directory. The jca operation for FileAdapter_2 is as follows:
    <jca:operation
    InteractionSpec="oracle.tip.adapter.file.outbound.FileIoInteractionSpec"
    SourcePhysicalDirectory="foo1"
    SourceFileName="bar1"
    TargetPhysicalDirectory="foo2"
    TargetFileName="bar2"
    Type="MOVE">
    </jca:operation>
    It is working fine for all 90% of pdf files, but some files are failing with the following error in domain.log file.
    2012-02-24 11:15:12,170> <DEBUG> <custst1.collaxa.cube.translation> <TranslatorFactory::log> Inside TranslatorFactory
    <2012-02-24 11:15:12,170> <DEBUG> <custst1.collaxa.cube.translation> <TranslatorFactory::log> using version attribute = NXSD
    <2012-02-24 11:15:12,170> <DEBUG> <custst1.collaxa.cube.translation> <TranslatorFactory::log> loading xlator class...oracle.tip.pc.services.translation.xlators.nxsd.NXSDTranslatorImpl
    <2012-02-24 11:15:12,174> <DEBUG> <custst1.collaxa.cube.translation> <TranslatorFactory::log> class loaded
    <2012-02-24 11:15:12,174> <DEBUG> <custst1.collaxa.cube.translation> <NXSDTranslatorImpl::log> Starting translateFromNative using InputStream
    <2012-02-24 11:15:12,174> <DEBUG> <custst1.collaxa.cube.translation> <XlatorHelper::logDebug> validating payload size
    <2012-02-24 11:15:12,175> <INFO> <custst1.collaxa.cube.activation> <File Adapter::Inbound> Error while translating inbound file : Sample.pdf
    <2012-02-24 11:15:12,175> <INFO> <custst1.collaxa.cube.activation> <File Adapter::Inbound>
    ORABPEL-11104
    Error while translating.
    [Line=1, Col=5] The value "%PDF" read from the native data, from the specified position, using "choiceCondition" as "fixedLength" and "length" as "4", doesnt match any of the "conditionValue" on the particles of choice model group.
    Check the error stack and fix the cause of the error. Contact oracle support if error is not fixable.
    at oracle.tip.pc.services.translation.xlators.nxsd.NXSDTranslatorImpl.parseNXSD(NXSDTranslatorImpl.java:1312)
    at oracle.tip.pc.services.translation.xlators.nxsd.NXSDTranslatorImpl.parseNXSD(NXSDTranslatorImpl.java:1142)
    at oracle.tip.pc.services.translation.xlators.nxsd.NXSDTranslatorImpl.doTranslateFromNative(NXSDTranslatorImpl.java:748)
    at oracle.tip.pc.services.translation.xlators.nxsd.NXSDTranslatorImpl.translateFromNative(NXSDTranslatorImpl.java:509)
    at oracle.tip.adapter.file.inbound.ProcessWork.doTranslation(ProcessWork.java:846)
    at oracle.tip.adapter.file.inbound.ProcessWork.processMessages(ProcessWork.java:380)
    at oracle.tip.adapter.file.inbound.ProcessWork.run(ProcessWork.java:231)
    at oracle.tip.adapter.fw.jca.work.WorkerJob.go(WorkerJob.java:51)
    at oracle.tip.adapter.fw.common.ThreadPool.run(ThreadPool.java:280)
    at java.lang.Thread.run(Thread.java:595)
    <2012-02-24 11:15:12,175> <INFO> <custst1.collaxa.cube.activation> <File Adapter::Inbound> Since a translation exception was thrown, this indicates that it is a non-debatching scenario.
    <2012-02-24 11:15:12,175> <INFO> <custst1.collaxa.cube.activation> <File Adapter::Inbound> Failed to translate file : {common/InboundFiles/Sample.pdf}
    Thanks in advance for your help.......

    As stated in my Original Post, I am using opaque schema for both the adapters, still not sure why the adapter is going through native translation.

  • 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

  • Receiver File Adapter Issue

    Hi,
    I have a scenario like R3(IDOC)->XI(Mapping)->FTP(Content Conversion)
    I am trying to FTP a file across to a vendor's FTP server using the reciver file . adapter. The target filename is of the form %ABC%IJK%%b.However on posting the file i get a message like.
    An error occurred while connecting to the FTP server '<hostname>:21'. The FTP server returned the following error message: 'com.sap.aii.adapter.file.ftp.FTPEx: 200 Command Okay. ID: <userid>, Current TR - Recv: <userid>, APRF: *BINARY, Dir: S. Get option: single. '. For details, contact your FTP server vendor.
    It seems although the connection is established, the ftp put does not work
    Can anyone help on what is the cause of the error and possible solutions.
    Regards,
    Alex.

    There can be following things:
    - Target Dir is not present or you dont have an authorization to create it.
    - Check the Access to put the file in that directory.
    Check the same for other interface also. If other interfaces are running fine then try to put the file in that DIRECTORY for test purpose.
    Thanks
    Farooq.

  • Read uniquely named file. Sender File Adapter unsuitable for synchronous

    Hi All,
    We have a requirement to read a specific file that has a unique name based on a transaction ID. The transaction ID will be passed from the source application.
    The communication is required to be synchronous. There could be multiple requests/files generated and present at the directory at any given time but each corresponding to a specific transaction ID. If the file is not yet generated for that transaction ID we return back an error to the calling system.
    I think we can not use Sender File Adapter - because of the dynamic naming and also because we have to return a synchronous response back depending on the file availability. i.e. We can not have a defined pattern in the file name nor can we specify a wild card as there could be more than one files in the location.
    In theory we could use the File Sender adapter to read all the files in the directory and a BPM with correlation set based on the transaction ID and let the process wait for the request. But as far as possible I want to avoid this unnecessary wait or extra demand on the system. More so because the files could get big.
    If I were using a tool like SAP Business Connector or webMethods then I would I used a readFile Java service and given it a filename to return the required bytes in a synchronous read.
    Is something like this possible in XI? If someone has written a synchronous Java to read file can they share the code? Or do you suggest I write a ABAP server proxy to read the file?  The problem however will be how do we map the data to a XML within the code.
    All suggestions welcome. There has to be a simple and effective solution to this mundane requirement !
    Wishing all SDNers a bright start to this new year,
    Thanks,
    Charu
    Message was edited by:
            Charu Kulkarni
    "The transaction ID will be passed from the source application so we know what file to pick"

    Hi,
    You could make the scenario a little simple and avoid custom development if the logic can be put into scripts(out of XI).
    Say all the files are coming into a directory called D1.
    Here, you could use a script to arrange all these in an order (say ascending) and move the first file into another directory D2.
    The sender file adapter would poll this directory D2. The adapter can have a wild card character for the filename field now.
    Once the file is in XI, you could check this against the transactionId present(I am not sure how you get this though!), and determine whether to send a mail, or to send a file back.
    Here, I have assumed that there is somekind of order present in the files placed in the directory D1.
    Again, this is just a suggestion.. I might be wrong with all the assumptions.
    Regards,
    Smitha.

Maybe you are looking for

  • Accounts Payable Trial Balance in R-12 report rows don't balance

    Hi, Background: I am in a municipal government using encumbrance accounting in R-12. In 11i the AP Trial Balance (APTB) always balanced line for line when comparing the ORIGINAL AMOUNT to the AMOUNT REMAINING. This is not always the case in R-12. In

  • How Do I Cut Out?

    Please can somebody tell me how to take a photo - cut out an object in said photo - and have the newly cut object be its own new entity? I just want to cut stuff out of existing photos...I used to have an old Photoshop where I did lots of this - but

  • Create synonym name with more than 30 character.

    I have created a synonym for a table which is more than 30 character long. After creating the synonym with create synonym... synonym created message is showing. but when i am checking in all_objects view that syninym is not available there, and selec

  • @me -  Accounts for the family

    Hello All Can I get my whole family an @me account? I have always used gmail for my family of 5, but would like to switch to @me. I notticed I already have one, I gues due to my itunes account. Also we all share one itunes account, so will this be a

  • Why override custom event-and when to override it?

    Hi guys..    I always have a question about override custom event. I am not sure why or what do to inside override function. I searched google but didn't get too many feedbacks. Also, my projects seem work fine even though I use my custom event witho