Using a File Adapter in a BPEL process

Hi,
I am new to BPEL and currently working on migrating my current integration to a SOA architecture using BPEL processes. The integration requires a file to be read and i plan to use a fileadapter . This file to be read is of fixed length type and i see in the file adapater you can generate an xsd for fixed length file. however i need to specify the range for every column that will be read.
Eg : Column1 1-10
Column2 11-25
Is there a way i can achive this? From what i see now i can only specify the length as a number like 1,2,3,4,5
Thanks

In your case, you have to give "10, 25" in field positions which tokenize the columns 1-10 and 11-25.
--Prasanna                                                                                                                                                                                                                                       

Similar Messages

  • Faults generated by Oracle file adapter not reaching BPEL process

    Hi,
    I have a process that uses the Oracle file adapter to receive the contents of a file, and am suffering from a number of problems when it is not able to parse the source file.
    The process is initiated by a receive activity associated with the file adapter partnerline that has the create instance flag ticked.
    One problem is that if the file adapter encounters an error when reading the file, there is no record of anything happening from the BPEL Console. I presume this is because no instance of the process has been created as the error was encountered before invoking the process. The only record I have of a problem ever occuring is in the logfiles.
    To make matters worse, if you select the Delete files after successful retrieval, the source file is deleted even though an exception has been encountered. If you specify the Archive processed files options, it does not archive the file.
    So to summarise the problems:
    * there is no record of an attempt to read, or of a faulty read occurring when trying to read the file from the BPEL console when a faulty read does occurs.
    * no instance of the process is ever created, so it is not possible to implement a fault handler to send out a notification of the problem.
    * when a problem is encountered, the source file is deleted and not archived.
    I assume that this is a bug, so can anyone advise if there is a patch to address these problems?
    Thanks
    Toby

    Ok, so now I'm using a rejection handler to invoke a BPEL process, and have defined the inputVariable type to be rej:RejectionMessage and imported RejectionMessage.wsdl.
    The process is being invoked successfully, and I can see that the processes input contains data.
    So I am writing the opaque MessagePayload to a file successfully using a file adapter, and can see the file content that is written is as I would expect (it matches the file used as input that would have caused the fault - although the content is truncated).
    Now I want to modify the file adapter so that the file's filename is set to the RejectionId attribute of the BPEL process. However, I'm receiving the following message:
    xpath variable/expression expression "/ns2:RejectedMessage/@ns2:RejectionId" is empty at line 50, when attempting reading/copying it.
    Please make sure the variable/expression result "/ns2:RejectedMessage/@ns2:RejectionId" is not empty.
    I can see from the console that the RejectionId is in fact populated, and the copy from the RejectionMessage's MessagePayload is completed ok.
    Does anyone know what's going on here?
    Thanks
    Toby

  • How to start a BPEL Process using the File Adapter

    Hi
    I would like to automatically start a BPEL Process when I store a file in a specific directory. Can this be done using the File Adapter?.
    Regards,
    Néstor Boscán

    Yes, there are samples of how to do this in the BPEL samples directory.

  • How to process files one by one using sender file adapter

    Hi,
    I have to process file one by one using my file adapter (sender), because while doing the G/R materials get locked, if the same materal exist in other files.
    I have maintained QOS as "Exactly Once in Order" & processing Sequence as "by date".
    Processing sequence come in which tab? What will be the Queue name?
    Thanks,
    krishna

    It will come under Processing tab
    Here you need to select the first parameter QOS  as EOIO
    Then QUEUE name and processing sequence will be enabled.
    NOTE: This will work only for NFS protocol not for FTP.

  • Process multi-record & multi-record-format files using ESB & File Adapter

    I am looking to process/parse an in-bound file with the following make-up and to load into a database table using the File Adapter, ESB and DB Adapter.
    File Make-Up:
    - each line in the file is a record
    - each record is made up of 12 fields
    - there are multiple record types denoted by the first field in the line
    - record types may or may not have common fields
    - where there are common fields, the field may be in different columns
    - each record is to be inserted into a database table
    Sample File:
    3,,"03-0243-0188132-00",.20,26,075,"","000000006026","","","22/04/08",03 1303
    3,,"03-0243-0188132-00",20.00,26,075,"","","","","22/04/08",03 0579
    5,,"03-0243-0188132-00",99.60,,,"OPENING BALA",,,"ACME GROUP","22/04/08",
    6,,"03-0243-0188132-00",99.60,,,"CLOSING BALA",,,"ACME GROUP","22/04/08",
    8,,"03-0243-0188132-00",-346119.05,16,000,"DEBITS",,,,"22/04/08",
    8,,"03-0243-0188132-00",346119.05,349,050,"CREDITS",,,,"22/04/08",
    9,,"03-0243-0188132-00",-346119.05,16,000,"DEBITS",,,,"22/04/08",
    9,,"03-0243-0188132-00",346119.05,349,050,"CREDITS",,,,"22/04/08",
    Record Types and corresponding format:
    3, Corp ID, A/C Number, Trans Amt, Serial Number, Trans Code, Particulars, Analysis Code, Reference, Other Party Name, Transaction Date, Originating Bank
    5, Corp ID, A/C Number, Opening Balance, Serial Number, Trans Code, Particulars, Analysis Code, Reference, Other Party Name, Transaction Date, Originating Bank
    6, Corp ID, A/C Number, Closing Balance, Serial Number, Trans Code, Particulars, Analysis Code, Reference, Other Party Name, Transaction Date, Originating Bank
    8, Corp ID, A/C Number, Amount, Number, 000, “DEBITS”, Analysis Code, Reference, Other Party Name, Transaction Date, Originating Bank
    8, Corp ID, A/C Number, Amount, Number, 050, “CREDITS”, Analysis Code, Reference, Other Party Name, Transaction Date, Originating Bank
    9, Corp ID, A/C Number, Amount, Number, 000, “DEBITS”, Analysis Code, Reference, Other Party Name, Transaction Date, Originating Bank
    9, Corp ID, A/C Number, Amount, Number, 050, “CREDITS”, Analysis Code, Reference, Other Party Name, Transaction Date, Originating Bank
    Please note that record types 8 and 9 have 2 fixed fields.
    I have tried playing around with the File Adapter and the ESB but not having much luck. Can someone provide any suggestions on how I can handle this?

    James,
    Thanks for your prompt response. I have come across your post previously.
    Please excuse my in-experience (very new to SOA and Oracle SOA Suite) but i have not understood how your post regarding the manual creation of an XSD will assist with my problem. Could you possibly further elaborate on the overall approach i should be taking?
    Regards,
    Simon

  • Cannot process a Fixed Field Length file using the File Adapter (Sender)

    Hi -
    I have checked throughout these posts and blogs but I still have not been able to find a solution to my issue.  When using the File Adapter (Sender) I get a Conversion initialization failed with "xml.keyfieldName", no value found.  Why would I require a key field when I am using fixed field lenghts?  The file is comprised of 2 structures - 1 header and multiple details (see below).  There are no key fields in the flat file that I would be able to use.  Any suggestions?
    011000390      Customer Americas        20080605164317 000000000000000800000008000000000016000000                              
    12345678          100500       100500       Supplier 1                         0000000000030000002008040400                    
    12345678          100501       100501       Supplier 2                         0000000000052000002008042100 
    The File Adapter is configured as follows:
    Document Name = Rfchke00
    Document Namespace = 'my namespace'
    Recordset Name = Rfchke00
    Recordset Structure = Dtachkh,1,Dtachkp,*
    Recordset Sequence = Ascending
    Recordsets per Message = 1
    Key Field Type = String (Case-Sensitive)
    Dtachkh.fieldFixedLengths = 15,25,8,6,1,8,8,8,15,3,31
    Dtachkh.fieldNames = F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11
    Dtachkh.processFieldNames = fromConfiguration
    Dtachkp,fieldFixedLengths = 18,13,13,35,15,3,8,2,21
    Dtachkp,fieldNames = F1,F2,F3,F4,F5,F6,F7,F8,F9
    Dtachkp,processFieldNames = fromConfiguration
    Thanks,
    Dave

    Hi,
    you can use the module from which u can convert your structure to
    H011000390 Customer Americas 20080605164317 000000000000000800000008000000000016000000
    D12345678 100500 100500 Supplier 1 0000000000030000002008040400
    D12345678 100501 100501 Supplier 2 0000000000052000002008042100
    Please note the extra H,D in the struture added by the module.
    You can then use them as your key fieldValues.. The module should be deployed in Visual Admin and then can be used in the Module tab of your adapter CC
    While writing the content conversion after that please dont forget about the added new characters
    Please note also that i can find that the word supplier kept repeating in all the Dtachkp records
    Please use that
    Also if you feel that the field is of 13 characters and that would cause a problem dont worry... create a dummy field eg split tht 13 to two fields and use the common one as key field Value and identifier... as i see in ure case its like 500 Supplier , 502 Supplier . u can split the first 4 char and the remaing 9 char are key field value.
    try this out
    Rgds
    Aditya

  • How to invoke a custom adapter from a BPEL process

    Hi guys,
    I've implemented a custom outbound adapter and deployed successfully on Weblogic V.10.3.4.
    My current installation also consists of Oracle SOA Suite 11g / JDeveloper 11g (11.1.1.4.0)
    In the Weblogic administrator's console,
    *1.* I navigated to:
    Summary of Deployments -> AdapterName -> Configuration -> Outbound Connection Pools
    *2.* Selected: javax.resource.cci.ConnectionFactory and added new JNDI name for Outbound Connection Instance: "*eis/HelloWorld*"
    My task is to invoke the custom adapter from a BPEL process.
    I altered the customAdapter-config.xml so as to be able to use custom adapter wizard from JDeveloper's "Service Adapters" palette,
    and fullfilled the custom adapter wizard's fields accordingly. The 3rd step of the wizard requires Connection Information.
    I added: "*eis/HelloWorld*" in the "*Connection Factory Location*" field.
    Deployed BPEL process successfully, but testing failed due to binding.jca-12510 error:
    "The JCA Binding Component was unable to establish an outbound JCA CCI connection due to the following issue: BINDING.JCA-12510 JCA Resource Adapter location error. Unable to locate the JCA Resource Adapter via .jca binding file element <connection-factory/> The JCA Binding Component is unable to startup the Resource Adapter specified in the <connection-factory/> element: location='eis/HelloWorld'. The reason for this is most likely that either 1) the Resource Adapters RAR file has not been deployed successfully to the WebLogic Application server or 2) the '<jndi-name>' element in weblogic-ra.xml has not been set to eis/HelloWorld. In the last case you will have to add a new WebLogic JCA connection factory (deploy a RAR). Please correct this and then restart the Application Server "I tried to apply (just for testing) "eis/FileAdapter" in the "Connection Factory Location" field of the custom adapter wizard,
    and BPEL successfully invoked the adapter.
    Any ideas ?
    Thanks,
    George

    George, What deployment do you have this associated with?
    - D.J.

  • Problem with calling AQ JMS Adapter with Asynchronous BPEL Process

    I have a AQ JMS Adapter and i'm invoking the adapter in my BPEL process.
    I'm passing an xml as payload to AQ JMS adapter. When i post the xml in the BPEL Control, i'm getting the follwoing message:
    "Cannot find the specified instance". I have tried 3-4 times but getting same message all the time.
    However, i'm able to publish xml to JMS Topic with synchronous BPEL process.
    I want to use asynchronous BPLE process.
    Please let me know if there is a way to overcome this issue.
    Thanks in advance.
    Thanx in Advance.

    I am experiencing the exact same issue while configuring for Tibco EMS!!!
    I have also checked the oc4j-xa.xml file etc and I am also unable to find any guidance on the steps required from XML config files through to adapter wizard entries!

  • Can XI produce a PDF format files using a file adapter

    Hi,
    Currently I have a requirement to send a PDF file to the legacy system. I'm not sure whether XI has the capability to do this. Appreciate if somebody could help me on this. The requirement is like from SAP we will send a data stream to XI and XI has to produced a form in PDF by populating the data on the PDF layout.
    Appreciate if somebody have any experienced with this development can share with me.
    Thanks
    Zab

    Hi,
    there's a number of command line tools
    that you can trigger using the file adapter - command line paramater (even with "output format management" )
    like:
    http://www.xmlpdf.com/xmlpdf-examples-net.html
    http://www.yeslogic.com/prince/guide/command-line
    just go to google and you'll find many more:)
    BTW
    form help.sap.com
    When the operating system command is called, the file name currently being processed can be specified with the following placeholders:
    - %f (file name)
    - %F(absolute file name including path)
    Regards,
    michal

  • PI needs to obtain a zip file via FTP using the File adapter

    I have a scenario where PI needs to obtain a zip file via FTP using the File adapter, this zip file contains a number of txt files that I need to process, and the content of one of them send it to an ECC, now I'm using the PayloadZipBean Module in the Sender FIle Adapter, and I have two things if I use the Message Protocol as File, I get a Payload for each txt file in the zip file, but this payload has no structure, and if I use the File Content Conversion I get an XML strcuture with only one field and a strange string in it, and somewhere in this string the names of the files I assume all the content of the zip file, can anyone help on how could I achieve what I need that is to pull the zip file via SAP PI, then unzip it, and with the content of one of the txt files send it to an ECC via ABAP Proxy, thanks in advance for your answers.
    Regards,
    Raul Alvarado

    Hello Raul,
    you can do it in futher way ...
    pickup zip file and simply extract and dump it in another temp folder (can use scripts on OS level).
    @ then Use another sender communication channel to pickup all these text file .
    for further clarification you can use these links also. -
    Process txt files in zip file
    Accessing File using FTP from Java Mapping
    File Sender Adapter with FTP protocol
    BR
    Raj

  • Using a variable in "arrayTerminatedBy" clause while using a file adapter

    Hi All,
    How can read a file of sample shown below using a file adapter.
    ABC|20081010|
    2008|xxxxxxx|
    2007|yyyy|
    2009|zzzzzzz|
    3|20081010|
    first line is the header
    last line is footer
    middle portion is the body
    '3' in the footer is the total no of record count in the body
    I am able to read the header and body.
    The problem i am facing is; when it is reading the footer it is treating the footer as a record in the body and is throwing an error stating - expected the format as "yyyy"
    I have to use "arrayTerminatedBy" to indicate the end of the body. But that terminating field is a varying field. How can i use this variable field in the "arrayTerminatedBy" clause.
    Can any one help in reading this file
    Thanks in advance
    Edited by: user10308218 on 11-Oct-2008 02:23
    Edited by: user10308218 on 11-Oct-2008 02:24

    See if this helps, I haven't tested it but it will give you a hint in how to achieve it. As you can see I use the startsWith command. I'm not sure how to handle your detail as it seems to start with different elements every time.
    cheers
    James
    <?xml version="1.0" encoding="UTF-8" ?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:nxsd="http://xmlns.oracle.com/pcbpel/nxsd"
    targetNamespace="http://TargetNamespace.com/Write_File"
    xmlns:tns="http://TargetNamespace.com/Read_File"
    elementFormDefault="qualified"
    attributeFormDefault="unqualified" nxsd:encoding="ASCII" nxsd:stream="chars" nxsd:version="NXSD">
    <xsd:element name="FileRecord">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="Header" nxsd:startsWith="ABC|" maxOccurs="1">
    <xsd:complexType>
    <xsd:sequence nxsd:style="array" nxsd:arrayTerminatedBy="${eol}">
    <xsd:element name="FileDate" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="${eol}" nxsd:quotedBy="&quot;"/>
    <xsd:element name="Record" maxOccurs="unbounded">
    <xsd:complexType>
    <xsd:sequence nxsd:style="array" nxsd:arrayTerminatedBy="${eol}">
    <xsd:element name="DetailData1" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|" nxsd:quotedBy="&quot;"/>
    <xsd:element name="DetailData2" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="${eol}" nxsd:quotedBy="&quot;"/>
    <xsd:element name="Footer" nxsd:startsWith="3|" maxOccurs="unbounded">
    <xsd:complexType>
    <xsd:sequence nxsd:style="array" nxsd:arrayTerminatedBy="${eol}">
    <xsd:element name="FooterData" type="xsd:int" nxsd:style="terminated" nxsd:terminatedBy="${eol}" nxsd:quotedBy="&quot;"/>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:schema>

  • How to get the filename in mapping when using sender File adapter?

    hi Experts,
       I have scenario where XI reads the input file using Sender file adapter.
       The file name is configured in the communication channel.
       In my message mapping it is possible to read this file name?
    Thanks
    gopal

    Hi Gpoal,
    Use Dynamic Configuration - /people/michal.krawczyk2/blog/2005/11/10/xi-the-same-filename-from-a-sender-to-a-receiver-file-adapter--sp14
    Regards,
    Geetha

  • How to Create a Flat File using FTP/File Adapter

    Can any body done workaround on creating the Flat file using FTP/File Adapter?.
    I need to create a simple FlatFile either using of delimiter/Fixed length. using the above said adapters we can create XML file, i tried concatinating all the values into a single String and writing into a file, but it does not have proper structure
    Can any body help me out on this..
    Thanks
    Ram

    You can create a text schema while creating a File Adapter. If schema is specified for File Adapter, it takes care of converting XML into fixed length or delimited format.
    Thanks,
    -Ng.

  • How to read multiple files of different name using single file adapter

    There are two inbound locations inbound1 and inbound2 , and the files structure present in these two inbound locations are same but the files start with different names example
    (1)files in inbound1 starts with file1,file2...
    (2)files in inbound2 starts with abc1,abc2...
    by using same file adapter with read option how can i read both files....

    Hi K.A.N.N.,
    You can define multiple directories using the above link in 11g and poll for the file as \*.*.
    Alternatively you can use the Synchronous Read and specify the file name at runtime.
    You can also use Pick activity to define multiple branches each with a File Adapter to read from a specified location with specified file name. Although it would contain multiple Adapter Definitions at Development-time, only one of the Adapters will execute at Run-Time.
    Regards,
    Neeraj Sehgal

  • Can I use the File Adapter to transfer files from/to my own PC

    Hello,
    Would it be possible to set tu the file adapter to send or receive files from my own PC's file system?
    For example I would like to transfer a file from my PC to PI instead of using PI's file system?
    Can I do that?
    Thanks
    Marcelo

    If your PC has Windows-based system, SAP XI is Unix-based, you have a problem: Unix can't connect to UNC-path - Unix doesn't understand path like this "
    mywindowspc\myfilesharefolder\", and Windows can't mount unix-drives. There are has a tool that can mount Windows UNC-file-share on NTFS like dirive UnixFS - but this tool is not freeware and has a problem when you switch off your PC without unmounting your Windows-dirives on Unix system. You can use a SAMBA, but Admins doesn't like to install this to Unix...
    So, if you want to use a File Adapter you can set only FTP path, create FTP-site on your own PC, and so on...
    Another way to send information from/to your own PC is "Plain J2SE Adapter Engine". This is a standalone part of SAP XI, you install it on your PC, configures URL of XI pipline, sets local folders to transfer from/to your PC, masks and types of your files, time to sending, any rules and DOS-commands for "before/after sending and receiving" and so on...
    In case of sending files from PC to XI, files transforms to XI-payload inside this Adapter Engine and then goes like XI-message to pipeline... When you send it back, payloads come to this Adapter Engine and transform to files on your PC.
    I used this Plain J2SE AE on my working notebook for checking sending messages to many different XI Systems.
    For more info: http://help.sap.com/saphelp_nw04/helpdata/en/6f/246b3de666930fe10000000a114084/content.htm
    Regards.

Maybe you are looking for