How to read/use RPC/Encoded WSDL in BPEL

Hi All,
We are developing a new application using Oracle BPEL and interface with an existing application.
The existing application (in mainframes) sends us the wsdl in rpc/encoded format.
How to read thie wsdl into BPEL? What we found so far is that we can use document/literal wsdl only.
Is there a way to read rpc/encoded wsdl in bpel?
Or a way to convert rpc/encoded wsdl into doucment/literal format wsdl so that it can be used in bpel?
Or any java code in between which can do this transformation?
Please help.
Thanks
Shiva

Steve,
You need to do the following in order to get file and folder names from File/FTP adapter.
1. fileAdapterInboundHeader.wsdl, FTPAdapterInboundHeader.wsdl files does have header structure for file and FTP adapter respectively. These files have the following Header definition:
<types>
<schema attributeFormDefault="qualified" elementFormDefault="qualified"
targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/file/"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:FILEAPP="http://xmlns.oracle.com/pcbpel/adapter/file/">
<element name="InboundFileHeaderType">
<complexType>
<sequence>
<element name="fileName" type="string"/>
<element name="directory" type="string"/>
</sequence>
</complexType>
</element>
</schema>
</types>
<!-- Header Message -->
<message name="InboundHeader_msg">
<part element="tns:InboundFileHeaderType" name="inboundHeader"/>
</message>
2. You need to create a variable of message type InboundHeader_msg.
     2.a. Open variable creation dialog box. Choose Message Type as type and open the Type Chooser.
     2.b. Expend Message Type and then expend Project WSDL Files.
     2.c. You will see fileAdapterInboundHeader.wsdl/ftpAdapterInboundHeader.wsdl there.
     2.d. Expend the wsdl file and select message type InboundHeader_msg.
3. Now you have your header variable, double click on Receive activity and go to Adapter tab.
4. Select header variable you have created using above steps as Header Variable.
5. Add an assign activity to get fileName and directory from the header variable you have created.
6. Your header variable will be populated while adapter reads the file.
Regards,
Dharmendra
http://soa-howto.blogspot.com

Similar Messages

  • Problem with RPC/encoded WSDL

    I'm having trouble calling a web service that is based on an RPC-encoded WSDL. I've already made slight changes to the WSDL, so that I get a work-able message type for mapping purposes. These changes are based on <a href="http://www.ws-i.org/Profiles/BasicProfile-1.0-2004-04-16.html#refinement16556272"><b>soapenc:Array</b> recommendations in WSDL 1.1 Section 2.2</a> for declaration of array types.
    Here's a snippet of the WSDL:
    <wsdl:definitions ...> 
      <wsdl:types>   
        <schema ...>
          <complexType name="ArrayOf_tns1_ServiceOption">
            <complexContent>
              <restriction base="soapenc:Array">
                <attribute ref="soapenc:arrayType"
                  wsdl:arrayType="tns1:ServiceOption[]"
                  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"/>
              </restriction>
            </complexContent>
          </complexType>
        </schema>
        <schema ...>
          <complexType name="ServiceOption">
            <sequence>
              <element name="key" nillable="true"
                        type="xsd:string"/>
              <element name="value" nillable="true"
                        type="xsd:string"/>
            </sequence>
          </complexType>
        </schema>
      </wsdl:types>
    </wsdl:definitions>
    I've changed it to:
    <wsdl:definitions ...> 
      <wsdl:types>   
        <schema ...>
          <complexType name="ArrayOf_tns1_ServiceOption">
            <sequence>
              <element name="ServiceOption"
                        type="tns1:ServiceOption"
                        minOccurs="0" maxOccurs="unbounded"/>
            </sequence>
          </complexType>
        </schema>
        </schema>
        <schema ...>
          <complexType name="ServiceOption">
            <sequence>
              <element name="key" nillable="true"
                        type="xsd:string"/>
              <element name="value" nillable="true"
                        type="xsd:string"/>
            </sequence>
          </complexType>
        </schema>
      </wsdl:types>
    </wsdl:definitions>
    The above changes have allowed me to make message mappings. But the I still get an error when sending a request to the web service. It seems that it requires the <b>xsi:type</b> and <b>soapenc:arrayType</b> attributes for arrays.
    <b>How can I create these attributes? How does XI handle RPC-encoded WSDLs?</b> I haven't encountered these problems with document-literal WSDLs.
    Thanks in advance.

    Hi Lorenzo,
    the extended support of rpc-style does <b>not</b> include the support of soapenc:array. It just addresses the root of the message and its direct children (as discussed in the thread where I added this hint).
    In the documentation of External Definitions you can find a hint where to find a list of supported XSD/DTD/WSDL-features. However, also there you will find no hint on the fact that soapenc:array is not supported. The reason for this is, that soapenc:array is specified in none of these standards. It is some artifact that SOAP smuggled into XSD. For good reasons WS-I prohibits the use of this artifact.
    Hence, if you need support for argumentation I can only point out the WS-I document I already linked.
    Greetings
    Stephan

  • Exceptions are using rpc/encoded messages in documentwrapped mode

    Version: Weblogic 8.1SP3
    I exposed a web service in documentwrapped(/literal) mode, and it seems weblogic is using rpc/encoded convention instead, to serialize Exception.
    I posted more infos on the Axis bugtracker : http://nagoya.apache.org/jira/browse/AXIS-1576
    but I found later that the problem seems to come from Weblogic.
    Does someone know a workaround for this problem ?

    Hi Shabrish,
                               As per the details from MQ Server technical guys, thread is opened by admin user of PI to put the messages on queues of MQ server and that thread does not get close itself and keep on hanging the message in Delivering Mode. Because of this issue all messages behind it get queued to Delivering mode .And as soon as we restart the Java Stack it gets flushed up and open the new connection and deliver all old messages but new message again get stuck in Delivering Mode.
    Any idea on this.
    Regards,
    Anurag

  • How to create RPC encoded wsdl for the bpel project created in jdeveloper?

    Hi,
    I have to create a bpel project in jdeveloper with the wsdl of the project in rpc encoded format. By default when we create a bpel project in jdeveloper it creates a wsdl file of document literal format, but i need the wsdl to be rpc encoded format. Please let me know how can i achieve this.
    Thanks.

    Hi Nico,
    Thanks for your reply.
    You mentioned to specify type in place of element, from where do you get this type and what more changes we need to do for the entire project to compile well with out errors.
    As suggested by you, I changed the element to type and tried to compile, it is giving the below error.
    Error:
    [Error ORABPEL-10902]: compilation failed
    [Description]: in "bpel.xml", XML parsing failed because "undefined part type.
    In WSDL at "file:/D:/indu/jdevstudio10134/jdev/mywork/TimerApplication/SelectDB/bpel/SelectDB.wsdl", message part type "SelectDBProcessRequestType" is not defined in any of the schemas.
    Please make sure the spelling of the type QName is correct and the WSDL import is complete.
    [Potential fix]: n/a.
    Please let me know what are all the changes that need to be done to complie the project successfully.
    Thanks and Regards.

  • Can SAP handle RPC/encoded WSDLs

    I am not sure whether this is the right forum for this question, but i'll give it a try:
    I have a WSDL file (web service decription) from a 3rd party tool, which is RPC/encoded, and I tried to generated an ABAP proxy class (SAP Basis 7.01). During the generation I get a couple of different errors, and the one that bothers me most is
    "incorrect value for attribute use: "encoded"".
    When I replace all occurrences of "use="encoded"" with "use="literal"", then the proxy generation will work, but in this case, the web service call will not work anymore (probably because the encoded response from the webservice cannot be read by the proxy class).
    What can I do?
    Any hints are welcome.

    Hi,
    It seems only RPC with literal will be supported in future.
    Quote from wiki Please see this:
    "Some of these combinations are rarely used in practice, such as document/encoded. In general, the literal use is gaining importance, and as far as RPC/encoded is concerned, the Web Services Interoperability Organization (WS-I) in its Basic Profile Version 1.0a of August 2003 ruled out the use of SOAP encoding with web services. Document/literal and RPC/literal will be the only allowed style/use combinations in the future."
    Detail wiki is available here: http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/c018da90-0201-0010-ed85-d714ff7b7019
    Regards,
    Gourav
    Edited by: Gourav Khare on Oct 13, 2009 12:28 AM

  • How to read UTF-8 encoded text file randomly?

    I am trying to read a text file which has been encoded in UTF-8. The problem is that I need to access the file randomly. The RandomAccessFile is a low-level class and there seems to be no-way to wrap it in InputStreamReader so that UTF-8 encoding can be done on-the-fly. Is there any easy way to do that. Below is the simplified version of my program.
    import java.io.*;
    public class Test{
            public Test(String filename){
                    try{
                            RandomAccessFile rafTemIn = new RandomAccessFile(new File(filename), "r");
                            while(true){
                                    char chr = rafTemIn.readChar();
                                    System.err.println(chr);
                    } catch (EOFException e) {
                            System.err.println("File read.");
                    } catch (IOException e) {
                            System.err.println("File input error");
            public static void main(String[] args){
                    Test t= new Test("template.idx");
    }

    The file that I am going to read could be few hundreds of MBs or GBs. Hence, I will index interesting items in the file. The index file contain the keyword and the byte offset in the file. So, I will need to seek to any byte to read it. The file could be UTF-8 encoded XML or UTF-8 encoded plain text.
    Also, would like to add-up that in the sample program above I am reading the file sequentially. The concerned class has another method which actually does the reading randomly. If this helps, I am pasting the simplified version of code again but this also includes the said method.
    import java.io.*;
    public class Test{
            long bloc;
            long eloc;
            RandomAccessFile rafTemIn;
            public Test(String filename){
                    bloc=0L;
                    eloc=0L;
                    try{
                            rafTemIn = new RandomAccessFile(new File(filename), "r");
                            while(true){
                                    char chr = rafTemIn.readChar();
                                    System.err.println(chr);
                    } catch (EOFException e) {
                            System.err.println("File read.");
                    } catch (IOException e) {
                            System.err.println("File input error");
            public String getVal(String templateName){
                    String stemval=null;
                    try {
                            rafTemIn.seek(bloc); //bloc is a long value for beginng location to read from. It changes.
                            byte[] b = new byte[(int)(eloc - bloc + 1L)];
                            rafTemIn.read(b,0,(int) (eloc - bloc + 1L));
                            stemval = new String(b,"UTF-8");
                    } catch(IOException eio) {
                            System.err.println("Template Dump file IO error.");
                    return stemval;
            public static void main(String[] args){
                    Test t= new Test("template.idx");
                    System.out.println(t.getVal("wikipedia"));
    }

  • How to read using multiplexed SCXI 1102B

    I have the following configuration:
    - SCXI 1000 4-slot Chassis
    - 2 x SCXI- 1102B
    - NI PCI-6221, M Series DAQ
    - 2 x SCXI 1300 Terminal Blocks
    I am programming using Visual C++ 6.0 (without measurement studio).  I want to operate in multiplex mode, reading all channels continuously for analogue input.
    Can someone please write or point me in the direction of some code that will help, as none of the code examples I have found deal with multiplexing?
    I am a beginner to all of this, so thanks for your help in advance.
    Many thanks,
    John

    Duplicate of this thread.

  • How to read values from Property file into BPEL process local variable?

    I would like to use a Property file with some parameters e.g.
    <myparm1>12345</myparm1>
    How can I read from a BPEL process such a Property file and assign it into e.g. local variable "intparm1"?
    Where (in which directory) should I put this XML Property file to have it always available for reading?
    Peter

    Hi,
    You can also use
    ora:readFile( ) function as follow :
    ora:readFile(xml file location (ex. "file:///D:\\SOA\\FileAdapters\\readFile\\test\\test.xml"),xsd file location (ex."file:///D:\\SOA\\FileAdapters\\readFile\\test\\test.xsd"))
    inside the assign activity and assign this to the variable you want.
    regards
    arababah
    Edited by: arababah on Aug 10, 2009 12:55 AM

  • How to read values from Property XMLfile into BPEL process local variable?

    I would like to use a Property file with some parameters e.g.
    <myparm1>
    12345
    </myparm1>
    How can I read from a BPEL process such a Property XML text file and assign it into e.g. local variable "intparm1"?
    Where (in which directory) should I put this XML Property file to have it always available for reading?
    Peter

    Hi,
    You can also use
    ora:readFile( ) function as follow :
    ora:readFile(xml file location (ex. "file:///D:\\SOA\\FileAdapters\\readFile\\test\\test.xml"),xsd file location (ex."file:///D:\\SOA\\FileAdapters\\readFile\\test\\test.xsd"))
    inside the assign activity and assign this to the variable you want.
    regards
    arababah
    Edited by: arababah on Aug 10, 2009 12:55 AM

  • How to read name of the file in bpel

    Hi Guys,
    I want to read the file names in particular folder using bpel process.
    Please any one can give solution.
    regards
    janardhan

    Steve,
    You need to do the following in order to get file and folder names from File/FTP adapter.
    1. fileAdapterInboundHeader.wsdl, FTPAdapterInboundHeader.wsdl files does have header structure for file and FTP adapter respectively. These files have the following Header definition:
    <types>
    <schema attributeFormDefault="qualified" elementFormDefault="qualified"
    targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/file/"
    xmlns="http://www.w3.org/2001/XMLSchema"
    xmlns:FILEAPP="http://xmlns.oracle.com/pcbpel/adapter/file/">
    <element name="InboundFileHeaderType">
    <complexType>
    <sequence>
    <element name="fileName" type="string"/>
    <element name="directory" type="string"/>
    </sequence>
    </complexType>
    </element>
    </schema>
    </types>
    <!-- Header Message -->
    <message name="InboundHeader_msg">
    <part element="tns:InboundFileHeaderType" name="inboundHeader"/>
    </message>
    2. You need to create a variable of message type InboundHeader_msg.
         2.a. Open variable creation dialog box. Choose Message Type as type and open the Type Chooser.
         2.b. Expend Message Type and then expend Project WSDL Files.
         2.c. You will see fileAdapterInboundHeader.wsdl/ftpAdapterInboundHeader.wsdl there.
         2.d. Expend the wsdl file and select message type InboundHeader_msg.
    3. Now you have your header variable, double click on Receive activity and go to Adapter tab.
    4. Select header variable you have created using above steps as Header Variable.
    5. Add an assign activity to get fileName and directory from the header variable you have created.
    6. Your header variable will be populated while adapter reads the file.
    Regards,
    Dharmendra
    http://soa-howto.blogspot.com

  • RPC/encoded style

    Hi Experts,
    I have read it in some forum thread stating that, we can't use RPC/encoded style in XI. Even if we get RPC style wsdl files from other platforms we have to first convert it into Document style to access XI.
    Question:
    When we create wsdl thro' XI also, it automatically creates with document style. Do we have any option to create a wsdl file with RPC style? If it is not possible with XI then, is there any other way to create RPC style wsdl file for the XI service.
    Regards
    Sara

    Yes its possible,
    Please check following :-
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/c018da90-0201-0010-ed85-d714ff7b7019
    RPC WSDL in XI
    Vishal
    Reward points for useful Help

  • ESB and Webserivces RPC/ encoded

    Hi,
    i know i can not handle Webserivce with RPC/encoded format on BPEL without a BPEL proxy - how it looks on the ESB - exist here the same problem?
    Best regards
    Thomas

    ESB only supports single part WSDL and document literal in 10.1.3.1. I don't know of any workarounds but it is working in AS11 prototype but that likely won't comfort you much. Sorry.

  • How to read resource having slash("/").

    Hi,
    I am reading all the collections inside <b>/documents</b>..
    One of my collection structure is like <b>AA/BB</b>.. mean this folder contain slash("/")..
    While reading this resource I am getting error.. since RID of this look like <b>/documents/AA/BB</b>..thats why its looking AA and BB seperately but actually its one resource only.
    Any anybody help me to overcome this problem and suggest how can I read AA/BB.
    Regards,
    Vikas

    Hi Julian,
    Thanks for the suggestion!!!
    Could you please let me know .. how would I use this encode/decode.
    I hv imported com.sapportals.wcm.util.uri.URICodec and calling Encode or Decode method with URICodec class.
    but while calling these am getting
    com.sap.engine.frame.core.load.SAPClassNotFoundException exception. 
    Actually I have to encode this URL http://server:50100/irj/servlet/prt/portal/prtroot/pcd!3aportal_content!2fevery_user!2fgeneral!2feu_role!2fcom.sap.km.home_ws!2fcom.sap.km.hidden!2fcom.sap.km.urlaccess!2fcom.sap.km.basicsearch?SearchType=quick&SelectedSearchIn=FROM_HERE&SelectedSearchFolder=/documents/de/2&%_1été&SelectedSearchFromHere=/documents/de/2&%_1été&StartUri=/documents/de/2&^%_1été&rndLayoutSet=nv_ndemand_faq_SearchResultLayoutSet&EnableFurtherSearch=False&QueryString=*
    but cause of special char
    2&^%_1été in it, am not able to set in IFRAME. 
    Thanks,
    Vikas

  • Hi how to read lines in a text file???

    Hi experts
    please help me out
    i wanna read a file which contaning students id and name.
    such as
    211 john
    122 david
    111 Chris
    and so on.
    i know how to read using bufferedreder but the problem is
    my teacher is gonna change the number of students in the file
    when she marks my code....
    so i don't know how many lines(students) will it be.in the file.....
    in this case, how to read a file?? i don't know how many lines will it be..
    but i know the maximum students in the file is 20.
    how to do it with this..........................
    experts~ please help me~~~

    try this
    try {
                FileReader reader = new FileReader(f);
                BufferedReader bufferedReader = new BufferedReader(reader);
                line = bufferedReader.readLine();
                while (line !=null) {
                    line = bufferedReader.readLine();
                bufferedReader.close();
                reader.close();
            catch(IOException e) {
                String msg = new String("Error Reading " + f + " data file");
                throw new OpenFileException(msg);
            }

  • Time Management Data Read Using Class & Methods?

    Master data & Cluster data how to read using Class & Methods

    Hi Ajay
    To my knowledge this is caused because there are locks on registrations for these employees in R/3, probably because there using the system at the time of extraction.
    To my knowledge the only way to handle this is to set "yellow" status to "green" this can be done automaticly on the InfoPackage.
    I know this problem from two companies and i have not experienced any inconsistancies on data due to this proceeding.
    Chris

Maybe you are looking for

  • ITunes says i've purchased music but it will not re-download and it is not showing up in my purchased area

    I bought Demi Lovato - "Unbroken" along with multiple other music purchases but this is the only album that does not show up in my purchased area or has the feature of re-downloading when i search it into iTunes. I have a new laptop and even on my ol

  • How can I remove all the music from my iPhone?

    I want to remove all the music from my iPhone 5 (Current iOS) and then load a completely new set of songs from my Mac (Current OS). How do I do that ?  Even when I define a specific new playlist and tell it to apply only that it still does not remove

  • Can't burn with any programs

    Hi everybody, as many of you, i can't still burn using iTunes or finder or any other software( also using an external drive). I've tried to repair permits, delete preferences,re-install programs, reset nvram or using different accounts. Could someone

  • Please help me with spry bar menu

    I have laid out my page with the div tags in Dreamweaver. I defined the  different sections by putting colors in them until i am ready to put stuff into them however when i insert the spry menu bar into my navigation section, the area below it is beh

  • Displaying album artwork 'fullscreen' on 160GB iPod classic?

    I recently upgraded by 80GB iPod to a 160GB one. I see the menu/interface is all "souped up". Whilst it does look quite slick, I guess, one thing i miss is the ability to press the centre button a couple of times, and it displays the album art "full