Defining Multiple operations for async calls in OSB

Hi,
I have three Asynchronous BPEL processes- BPELProcessA, BPELProcessB and BPELProcessC
I am trying to invoke BPELProcessB and BPELProcessC from BPELProcessA through an OSB Proxy service. I want to use a single proxy service to make calls to BPELProcessB and BPELProcessC from BPELProcessA . To do this I defined multiple operations in the wsdl of the proxy service. This is not working
But I am able to implement the following
1. If BPELProcessB and BPELProcessC are Synchronous, I am able to invoke BPELProcessB and BPELProcessC by defining multiple operations in the proxy service wsdl
2. I am able to invoke and receive response from 1 Asynchronous BPEL process by defining 1 operation in the proxy service wsdl. I followed the approach described at [http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/bpelpmtransport/transport.html#wp1111338]. Does this mean for each asynchronous BPEL, I need a separate pair of OSBs for each async process ( 1 for request and 1 for callback)?
Has anyone tried invoking multiple asynchronous processes by defining multiple operations in the wsdl?
Kindly request every to give inputs

Hi Eric
Below is the flow and error we are getting:
ProcessA is calling ProcessB and ProcessC through common OSB. In OSB we have created individual business services for ProcessB and ProcessC.I am using common Proxy service for calling these two Business Services using different operations.I have created one callback business service and Proxy service for ProcessA.
I am successfully able to call BPEL processes, ProcessB and ProcessC, but during callback client activity these two BPEL processes are failing with below error and ProcessA is going in waiting on receive activity state:
nested exception is:ORABPEL-00000
Exception not handled by the Collaxa Cube system.
An unhandled exception has been thrown in the Collaxa Cube system. The exception reported is: "ORABPEL-08010
Failed get operation definition.
Failed to get the WSDL operation definition of "onResult" in portType "{http://xmlns.oracle.com/AsyncBPELProcess}AsyncBPELProcessCallback".
Please verify that operation "onResult" is defined in portType "{http://xmlns.oracle.com/AsyncBPELProcess}AsyncBPELProcessCallback".
     at com.collaxa.cube.ws.wsdl.WSDLUtils.getOperation(WSDLUtils.java:216)
     at com.collaxa.cube.ws.wsdl.WSDLUtils.getOperation(WSDLUtils.java:208)
     at com.collaxa.cube.ws.wsdl.WSDLManager.isOneWayOperation(WSDLManager.java:517)
     at com.collaxa.cube.engine.core.BaseCubeProcess.getOperationType(BaseCubeProcess.java:735)
     at com.collaxa.cube.engine.delivery.DeliveryHandler.getOperationType(DeliveryHandler.java:778)
     at com.collaxa.cube.engine.delivery.DeliveryHandler.post(DeliveryHandler.java:71)
     at com.collaxa.cube.ws.WSIFInvocationHandler.invokeLocalService(WSIFInvocationHandler.java:1338)
     at com.collaxa.cube.ws.WSIFInvocationHandler.invoke(WSIFInvocationHandler.java:287)
     at com.collaxa.cube.ws.WSInvocationManager.invoke2(WSInvocationManager.java:528)
     at com.collaxa.cube.ws.WSInvocationManager.invoke(WSInvocationManager.java:248)
     at com.collaxa.cube.engine.ext.wmp.BPELInvokeWMP.__invoke(BPELInvokeWMP.java:829)
     at com.collaxa.cube.engine.ext.wmp.BPELInvokeWMP.__executeStatements(BPELInvokeWMP.java:412)
     at com.collaxa.cube.engine.ext.wmp.BPELActivityWMP.perform(BPELActivityWMP.java:199)
     at com.collaxa.cube.engine.CubeEngine.performActivity(CubeEngine.java:3714)
     at com.collaxa.cube.engine.CubeEngine.handleWorkItem(CubeEngine.java:1657)
     at com.collaxa.cube.engine.dispatch.message.instance.PerformMessageHandler.handleLocal(PerformMessageHandler.java:75)
     at com.collaxa.cube.engine.dispatch.DispatchHelper.handleLocalMessage(DispatchHelper.java:220)
     at com.collaxa.cube.engine.dispatch.DispatchHelper.sendMemory(DispatchHelper.java:317)
     at com.collaxa.cube.engine.CubeEngine.endRequest(CubeEngine.java:5787)
     at com.collaxa.cube.engine.CubeEngine.createAndInvoke(CubeEngine.java:1089)
     at com.collaxa.cube.engine.delivery.DeliveryService.handleInvoke(DeliveryService.java:589)
     at com.collaxa.cube.engine.ejb.impl.CubeDeliveryBean.handleInvoke(CubeDeliveryBean.java:421)
     at sun.reflect.GeneratedMethodAccessor75.invoke(Unknown Source)
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     at java.lang.reflect.Method.invoke(Method.java:585)
     at com.evermind.server.ejb.interceptor.joinpoint.EJBJoinPointImpl.invoke(EJBJoinPointImpl.java:35)
     at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
     at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
     at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
     at com.evermind.server.ejb.interceptor.system.JAASInterceptor$1.run(JAASInterceptor.java:31)
     at java.security.AccessController.doPrivileged(Native Method)
     at javax.security.auth.Subject.doAs(Subject.java:396)
     at com.evermind.server.ThreadState.runAs(ThreadState.java:695)
     at com.evermind.server.ejb.interceptor.system.JAASInterceptor.invoke(JAASInterceptor.java:34)
     at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
     at com.evermind.server.ejb.interceptor.system.TxRequiredInterceptor.invoke(TxRequiredInterceptor.java:50)
     at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
     at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
     at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
     at com.evermind.server.ejb.InvocationContextPool.invoke(InvocationContextPool.java:55)
     at com.evermind.server.ejb.StatelessSessionEJBObject.OC4J_invokeMethod(StatelessSessionEJBObject.java:87)
     at CubeDeliveryBean_LocalProxy_4bin6i8.handleInvoke(Unknown Source)
     at com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessageHandler.handle(InvokeInstanceMessageHandler.java:37)
     at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(DispatchHelper.java:141)
     at com.collaxa.cube.engine.dispatch.BaseDispatchTask.run(BaseDispatchTask.java:58)
     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:651)
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:676)
     at java.lang.Thread.run(Thread.java:595)
Exception: ORABPEL-08010
Failed get operation definition.
Failed to get the WSDL operation definition of "onResult" in portType "{http://xmlns.oracle.com/AsyncBPELProcess}AsyncBPELProcessCallback".
Please verify that operation "onResult" is defined in portType "{http://xmlns.oracle.com/AsyncBPELProcess}AsyncBPELProcessCallback".
Handled As: com.collaxa.cube.CubeException

Similar Messages

  • Multiple Operations for File to IDoc scenario

    Hi all,
    I have a file to IDoc scenario where two IdocXML files (one for INSERT and one for CHANGE of Business Object) have to be picked up by file adapter and transfered to SAP System. In respect to the multiple operations PI 7.1 can handle I would like to create one Service Interface for the Business Object and two operations (INSERT and CHANGE).
    Unfortunately I am not able to use the operation in the sender agreement, so I can't specify the comm-channel for the operations, only for the interface.
    So, can I use multiple operations in a file scenario (respectively in a non Web Service scenario)??
    Thanks a bunch,
    Manfred

    The scenario is pretty easy. I just want two different files to be read by one Comm Channel with one Sender Agreement.
    They are both transferred to the same receiver. I just wanted to test one scenario using multiple operations.
    In your blog you described that you should not use two operations with the same set of messages (synchronous/asynchronous). In my case both are asynchronous but I already tried it with one being sync and the other one async. Where did you actually get this information, it puzzles me a little since SAP does the same in its preconfigured Enterprise Services as far as I know.
    In the Trace for pipeline step Interface determination in SXMB_MONI it says:
    <Trace level="1" type="T">...There is no Interface Determination configured for receiver party and receiver service BS_RECEIVER</Trace>
      <Trace level="2" type="T">Check conditions for (Inb: Party Srvc If) BS_RECEIVER SI_..._Out</Trace>
      <Trace level="2" type="T">...valid InbIf without Condition: SI_..._Out</Trace>
      <Trace level="2" type="T">Number of receiving Interfaces:1</Trace>
    So it finds the Outbound Interface in Receiver side which is wrong since I specified the Inbound Interface in the Interface determination. Did anyone of you already encounter such a behaviour? I already deleted and recreated all routing objects but without any success.
    Thanks,
    Manfred

  • Defining multiple hierarchies for single dimension in Administrator?

    Hello,
    We are attempting to define multiple hierarchies in a single dimension in Administrator. The following two examples are representative use cases for what we're trying to do:
    DateDim
    ----By Calendar Quarter
    --------By Calendar Month
    ------------By Week
    ----------------By Day
    ----By Fiscal Quarter
    --------By Fiscal Month
    ----By Calendar Month
    --------By Week
    Note that "By Calendar Month" can't really be a shared level because we do not want to include "By Day" in the third hierarchy.
    ServiceLocationDim
    ----By Sales Region
    --------By State
    ------------By City
    ----By State
    --------By City
    ------------By Zip
    ----------------By Store
    Note again that "By State" can't be a shared level because its children differ in the two hierarchies.
    The goal is to have multiple drilldown paths supported. If there is a different way to do this in Administrator that does not use hierarchies, that would be acceptable.
    Can anyone point me in the right direction?
    Thanks,
    Matt Warden
    Balanced Insight, Inc.
    http://www.balancedinsight.com

    Hi,
    when defining multiple hierarchies in a dimension, the lowest level needs to be the same for each hierarchy...that's a prerequisite.
    But I think you can define them this way...and restrict your 'drill' level on your fact table...as I think you will have a different aggregation level overthere.
    So for your dimension you'll set the logical level on the lowest level and in your fact you can play with the logical level depending on to the drill level?
    Can that help you?
    A.

  • Define multiple operations in one WebService recommended or bad idea?

    If I have the choice
    1 operation in 1 webService = n WebServices
    or
    n operations in 1 WebService
    which one is preferable?
    What are the pros and cons of putting multiple operations into ONE webservice?
    Peter

    Not sure why you would have a lot of different stylesheets applied to various pages  :-)
    Why not just one stylesheet to cover *all* the styling for *every* page... that makes mroe sense to me.  In this way, you only have stylesheet you need to edit whenever you make *any* changes.
    The more stylesheets you have the more fiddly it becomes in my opinion.
    Saying that, there is no reason why you can't link to multiple stylesheets, just remembering that the last one in the list is the one that takes precedence.
    So if you have a style for a paragraph for example in 2 stylesheets, then the lowest on the ladder will be the one that the paragrah is styled from.
    Nadia
    Adobe® Community Expert : Dreamweaver
    Unique CSS Templates |Tutorials |SEO Articles
    http://www.DreamweaverResources.com
    http://csstemplates.com.au/
    http://twitter.com/nadiap

  • How to define parameter ID for transaction call in query.

    Hi folks,
    In SQ01 I've made report assignment. So now buy double click from ALV table I'm calling a new transaction and to fill fields on first screen I need define parameters ID. So how can I do it in query?
    Thanks.

    hi,
    try this snippet,
    FORM user_command_form  USING p_ucomm    LIKE sy-ucomm
                                  p_selfield TYPE slis_selfield.
      CASE p_ucomm.
        WHEN '&IC1'.        " SAP standard code for double-clicking
               SET PARAMETER ID 'XXX' FIELD p_selfield-value.
          CALL TRANSACTION 'YYYY'.
      ENDCASE.
    ENDFORM.                    "user_command_form
    Hotspot and FM REUSE_ALV_GRID_DISPLAY not working

  • Monitor multiple phone for incoming call

    Hello,
    I want to monitor multiple phone incoming call (retrieve callerID, ...)
    I do that with Tapi, but when you configure TSP, it's only for one phone
    I can install TSP several times, but ... for 40 phones ...
    Are there other solutions ?
    I use CCME

    Yes, you can use packet capture to sniff skinny. It works really well, and transparently across CallManager and CallManager Express. You'll need to perform packet decode which is a bit of work, and connect your server to the appropriate SPAN port, of course.

  • Async call in OSB

    Hi,
    Our requirement is when the front end calls the proxy service, the proxy service should call the back end web service and give the response to front end service, This can be achieved.
    But the other requirement is in case if the back end service is down .. we need to keep on retrying till the back end is UP and then send the response back to front end(Or we can send the response when the front end calls again) . But the front end will not wait for the response. Front end will fire and forget. its proxy service responsibility to keep on trying for the back end service to be up and store/send the response to front end.
    Can we achieve this in OSB 11g? Or we need to go for BEPL.
    Please post the steps to achive this.

    As already being stated by @vladodias, OSB is better fit for stateless designs. If you need to keep the response until a later poll comes, you may be better off with BPEL.
    But not necessary.
    Consider this design:
    1. Front end calls OSB.
    2. OSB generates an unique token for the request and saves this request into an JMS queue. The token is stored into a header.
    3. OSB returns the token to the caller. Caller saves it locally for future poll and closes the connection.
    4. A JMS proxy transactionally reads the message from the queue (along with the token) and calls the backend service.
    5. If the backend service is down, the transaction is rolled back, and the message is returned back to the queue for retry later (retry period is configured on the queue).
    6. If the backend is up, the message is placed into a persistent storage using the token as a key. The storage is not JMS queue, because OSB proxies cannot programmatically read queues with filter, and also cannot read the queues on demand. So the store should be a database. (You cannot use disk as a store in a cluster unless the disk is also shared).
    7. Front end calls OSB with the token.
    8. OSB checks the persistent store and, if the response with the given token is found, sends it back to the the caller.
    Now, you may notice that front-end always initiates the call, i.e. there is no callbacks. I do not like callbacks in OSB designs, makes a mess when you get more than one consumer. However, you may implement it, too -- i.e in step 6, instead of persisting the message, just do an outbound call to the front-end application.
    Also, this design is always asynchronous. You may improve it by trying to do a synchronous call to backend first, and only if it is down, switch into asynchronous mode.
    P.S. If you're not familiar with using JMS/transactions with OSB, read my post: Transactions in OSB. Reliable Messaging.
    P.P.S. You can also use JMS queue as a persistent store for the responses, but then you'll have to use a Java callout that connects to the queue with a filter (by token) to extract the only message.

  • How to do Async call in OSB message flow

    I am calling a service from OSB layer synchronously and when this service gives a response, I am forming another request with this response and storing it in a variable now I want to call another service asynchronously by using this variable. Service call out is not supporting one way call.
    Please suggest a suitable way to do this.

    Use publish action. It is designed fire and forget type of use-cases
    http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/userguide/modelingmessageflow.html
    Manoj

  • How to define multiple recipents for send mail option

    Dear all,
    I am trying to send mail to multiple recipients. can some help me with a solution as we donot have orgnizational chart maintained in our organization.
    also
    is there some study material for how to use expression in send mail option
    thanks in advance.
    Best of regards,
    Gaurav Sood

    I don't know if there is a comparable FM like SO_USER_READ_API1 that uses a table for SOUDNAMEI1. I simply create a table of SOUDNAMEI1, loop SO_USER_READ_API1 adding to recipients and then SEND.
    This what you referring to?
    if there is a comparable FM, let me know. I don't 'see' any in package SO's FGs.
    Rick

  • Defining Business Operations calling remote EJBs

    We would like to define business operations in WLI calling EJBs on a remote machine.
    It seems like the EJB have to be deployed locally to appear in the (JNDI) drop-down
    list when defining the business operation.
    Is the only way to achieve this functionality to write (or generate) some kind
    of wrapper EJB that will be deployed locally, or do you have other suggestions?
    Regards,
    E
    PS: We're using WLI 2.1 running on WLS 6.1 SP1

    I am new to WLPI and have run across this problem as well. Could you
    provide more detail your proxy session bean and maybe include some
    example code? Thanks.
    Regards,
    Rick H.
    "Paul Rooney" <[email protected]> wrote:
    >
    I have come accross the same problem - solved it by using a "proxy" session
    bean
    that knows how to call out to all the Remote EJBS that I need. This "proxy"
    session
    bean is deployed with wlpi application.
    "Erik Godding Boye" <[email protected]> wrote:
    We would like to define business operations in WLI calling EJBs on a
    remote machine.
    It seems like the EJB have to be deployed locally to appear in the (JNDI)
    drop-down
    list when defining the business operation.
    Is the only way to achieve this functionality to write (or generate)
    some kind
    of wrapper EJB that will be deployed locally, or do you have other suggestions?
    Regards,
    E
    PS: We're using WLI 2.1 running on WLS 6.1 SP1

  • Defining Business Operations using remote session EJBs for WLI2.1

    Hello all,
    I'm having a deployment issue with WLI 2.1. Is it true that in order to define
    a Business Operation in WLI 2.1 that uses a session EJB, the EJB MUST be deployed
    in the same JNDI tree (WLS instance) that WLI is running on? Is everyone just
    running one admin server that hosts WLI and all other applications on the same
    instance?
    I'd like to have WLI running on one machine and have my applications running on
    another, but at this point seems unobtainable because you cant supply a t3 URL
    to that separate machine when defining Business Operations...
    Any help would be appreciated,
    Jon

    I am new to WLPI and have run across this problem as well. Could you
    provide more detail your proxy session bean and maybe include some
    example code? Thanks.
    Regards,
    Rick H.
    "Paul Rooney" <[email protected]> wrote:
    >
    I have come accross the same problem - solved it by using a "proxy" session
    bean
    that knows how to call out to all the Remote EJBS that I need. This "proxy"
    session
    bean is deployed with wlpi application.
    "Erik Godding Boye" <[email protected]> wrote:
    We would like to define business operations in WLI calling EJBs on a
    remote machine.
    It seems like the EJB have to be deployed locally to appear in the (JNDI)
    drop-down
    list when defining the business operation.
    Is the only way to achieve this functionality to write (or generate)
    some kind
    of wrapper EJB that will be deployed locally, or do you have other suggestions?
    Regards,
    E
    PS: We're using WLI 2.1 running on WLS 6.1 SP1

  • Biztalk schema exposing as WCF service with multiple operations

    Hi,
    I am working on a design pattern to expose the BizTalk schema as a WCF service and thought of taking expert’s advice. I have a single schema with 30 different nodes and each one is a different message type. For this 30 message types we need to expose WCF
    endpoints to customer for consuming from their application.
    When I exposed this schema as WCF service, a single receive location got created in BizTalk application and in IIS there is one .svc file. I defined 30 operations for this while exposing the endpoint with wizard.
    Currently I came up with the below 2 approaches but I did not like them as there is more redundancy
    Create 30 different orchestrations and each orchestration subscribes to Message Box direct binding with message type as filter.
    Create a single orchestration that binds to single receive location( this location got created by wizard..) and access the operation/message type in the expression shape. Based on this value create 30 IF conditions for each message type. For this the
    single orchestration receive shape should have a message type of xml document and then access the type. Is it possible?
    I don’t like the above approaches as it is very difficult to maintain and also difficult to add for any new message type.
    Does anyone has good ideas for doing this?
    Thanks
    JB

    "Canonical Schemas" are used where multiple source messages need to be addressed by a SINGLE Operation !!!
    Every operation anyway translates to a separate process. Forget that we're dealing with BizTalk for a minute, when you're writing plain we services, you introduce new service contracts (operations) when you deal with different data contracts. To come back,
    in BizTalk your data contracts are your schemas. So when you have multiple schemas, each requiring different processing then you need different orchestrations.
    Let us for a minute assume you've defined a single service schema (very possible with a service header and a service details where the service data contract could differ). Now you use this schema to expose ONE service endpoint (good till now). In that service
    you're suggesting to ADD decisions (something like a switch statement where you'll do 'x' set of activities is the message is of 'x' type and so on... How is this sustainable? Every time you introduce an new operation, you'll have to tear down and redeploy
    the new orchestration which will affect all other operations. During the introduction of ONE op you may touch other parts of the orchestration (multiple branches in a parallel shape anyways make the orchestration very unwieldy from a code management/support
    standpoint) and introduce errors in existing ops.
    Regards. 

  • Multiple Operation in Service Interface

    Hi Experts,
    Here is the problem -
    Scenario:      SOAP Adapter-> PI (7.1) -> XI Adapter -> ERP Proxy
    We have defined multiple operation in Service Interface using Interface pattern "Stateless".
    Message posted using SOAP adapter goes through PI alright. But on ERP is throws the error saying "No implementing class registered for the interface"
    Well the checklist-
    1. Proxy class generated/re-generated. Class/Interface/Methods all activated.
    2. If I remove all the operation from Service interface and just have one with the same name as Service Interface (which is also default when you create new service interface) it works fine.
    Any idea guys ?
    Regards.

    Hi Sreenivas,
    I appreciate your promptness in answering the query.
    1. And I know that if you select Stateless (XI 3.0), in the service interface you just can't have multiple operations.
    2. ID contents are generated fine (I dont do it manually. I just import the scenario from ESR).
    Please, first test yourself and let me know if you succeed or point me to some document explaining that.
    Regards.

  • Mutliple wsdl operations for a port in BPEL Project -- Help

    I was trying to create a BPEL project with multiple operations for one port type. I used a pick activity and on message acitivity to branch out based on the operation. For some reason all the operations are channeled through the same branch (operation). Please share with me your experiences and any simple project.
    -----------------wsdl file -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    &lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;definitions name="MultiWsdl"
    targetNamespace="http://xmlns.oracle.com/MultiWsdl"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:client="http://xmlns.oracle.com/MultiWsdl"
    xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"&gt;
    &lt;!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    TYPE DEFINITION - List of services participating in this BPEL process
    The default output of the BPEL designer uses strings as input and
    output to the BPEL Process. But you can define or import any XML
    Schema type and use them as part of the message types.
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --&gt;
    &lt;types&gt;
    &lt;schema xmlns="http://www.w3.org/2001/XMLSchema"&gt;
    &lt;import namespace="http://xmlns.oracle.com/MultiWsdl" schemaLocation="MultiWsdl.xsd" /&gt;
    &lt;/schema&gt;
    &lt;/types&gt;
    &lt;!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    MESSAGE TYPE DEFINITION - Definition of the message types used as
    part of the port type defintions
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --&gt;
    &lt;message name="MultiWsdlRequestMessage"&gt;
    &lt;part name="payload" element="client:MultiWsdlProcessRequest"/&gt;
    &lt;/message&gt;
    &lt;message name="MultiWsdlResponseMessage"&gt;
    &lt;part name="payload" element="client:MultiWsdlProcessResponse"/&gt;
    &lt;/message&gt;
    &lt;!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    PORT TYPE DEFINITION - A port type groups a set of operations into
    a logical service unit.
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --&gt;
    *&lt;!-- portType implemented by the MultiWsdl BPEL process --&gt;
    *&lt;portType name="MultiWsdl"&gt;
    *&lt;operation name="Create"&gt;
    *&lt;input message="client:MultiWsdlRequestMessage"/&gt;
    *&lt;output message="client:MultiWsdlResponseMessage"/&gt;
    *&lt;/operation&gt;
    *&lt;operation name="Update"&gt;
    *&lt;input message="client:MultiWsdlRequestMessage"/&gt;
    *&lt;output message="client:MultiWsdlResponseMessage"/&gt;
    *&lt;/operation&gt;
    *&lt;/portType&gt;
    &lt;!-- portType implemented by the requester of MultiWsdl BPEL process
    for asynchronous callback purposes
    --&gt;
    &lt;portType name="MultiWsdlCallback"&gt;
    &lt;operation name="TestReply"&gt;
    &lt;input message="client:MultiWsdlResponseMessage"/&gt;
    &lt;/operation&gt;
    &lt;/portType&gt;
    &lt;!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    PARTNER LINK TYPE DEFINITION
    the MultiWsdl partnerLinkType binds the provider and
    requester portType into an asynchronous conversation.
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --&gt;
    &lt;plnk:partnerLinkType name="MultiWsdl"&gt;
    &lt;plnk:role name="MultiWsdlProvider"&gt;
    &lt;plnk:portType name="client:MultiWsdl"/&gt;
    &lt;/plnk:role&gt;
    &lt;plnk:role name="MultiWsdlRequester"&gt;
    &lt;plnk:portType name="client:MultiWsdlCallback"/&gt;
    &lt;/plnk:role&gt;
    &lt;/plnk:partnerLinkType&gt;
    &lt;/definitions&gt;
    ---------------- Bpel File ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    &lt;?xml version = "1.0" encoding = "UTF-8" ?&gt;
    &lt;!--
    Oracle JDeveloper BPEL Designer
    Created: Thu Nov 06 21:46:50 PST 2008
    Author:
    Purpose: Asynchronous BPEL Process
    --&gt;
    &lt;process name="MultiWsdl" targetNamespace="http://xmlns.oracle.com/MultiWsdl"
    xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
    xmlns:xp20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20"
    xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
    xmlns:ldap="http://schemas.oracle.com/xpath/extension/ldap"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:client="http://xmlns.oracle.com/MultiWsdl"
    xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
    xmlns:ora="http://schemas.oracle.com/xpath/extension"
    xmlns:orcl="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc"&gt;
    &lt;!--
    PARTNERLINKS
    List of services participating in this BPEL process
    --&gt;
    &lt;partnerLinks&gt;
    &lt;!--
    The 'client' role represents the requester of this service. It is
    used for callback. The location and correlation information associated
    with the client role are automatically set using WS-Addressing.
    --&gt;
    &lt;partnerLink name="client" partnerLinkType="client:MultiWsdl"
    myRole="MultiWsdlProvider"
    partnerRole="MultiWsdlRequester"/&gt;
    &lt;/partnerLinks&gt;
    &lt;!--
    VARIABLES
    List of messages and XML documents used within this BPEL process
    --&gt;
    &lt;variables&gt;
    &lt;!-- Reference to the message passed as input during initiation --&gt;
    &lt;variable name="inputVariable"
    messageType="client:MultiWsdlRequestMessage"/&gt;
    &lt;!-- Reference to the message that will be sent back to the requester during callback --&gt;
    &lt;variable name="outputVariable"
    messageType="client:MultiWsdlResponseMessage"/&gt;
    &lt;variable name="OnMessage_TestReq_InputVariable"
    messageType="client:MultiWsdlRequestMessage"/&gt;
    &lt;variable name="OnMessage_TestReq_InputVariable_1"
    messageType="client:MultiWsdlRequestMessage"/&gt;
    &lt;variable name="Reply_2_TestReq_OutputVariable"
    messageType="client:MultiWsdlResponseMessage"/&gt;
    &lt;variable name="Reply_1_TestReq_OutputVariable"
    messageType="client:MultiWsdlResponseMessage"/&gt;
    &lt;/variables&gt;
    &lt;!--
    ORCHESTRATION LOGIC
    Set of activities coordinating the flow of messages across the
    services integrated within this business process
    --&gt;
    &lt;sequence name="main"&gt;
    &lt;!-- Receive input from requestor. (Note: This maps to operation defined in MultiWsdl.wsdl) --&gt;
    &lt;!--
    Asynchronous callback to the requester. (Note: the callback location and correlation id is transparently handled using WS-addressing.)
    --&gt;
    &lt;pick name="Pick_1" createInstance="yes"&gt;
    &lt;onMessage portType="client:MultiWsdl" operation="Update"
    variable="OnMessage_TestReq_InputVariable_1"
    partnerLink="client"&gt;
    &lt;sequence name="Sequence_1"&gt;
    &lt;assign name="Assign_1"&gt;
    &lt;copy&gt;
    &lt;from expression="'test'"/&gt;
    &lt;to variable="Reply_1_TestReq_OutputVariable"
    part="payload"
    query="/client:MultiWsdlProcessResponse/client:result"/&gt;
    &lt;/copy&gt;
    &lt;/assign&gt;
    &lt;reply name="Reply_2" partnerLink="client"
    portType="client:MultiWsdl" operation="Update"
    variable="Reply_1_TestReq_OutputVariable"/&gt;
    &lt;/sequence&gt;
    &lt;/onMessage&gt;
    &lt;onMessage portType="client:MultiWsdl" operation="Create"
    variable="OnMessage_TestReq_InputVariable"
    partnerLink="client"&gt;
    &lt;sequence name="Sequence_2"&gt;
    &lt;assign name="Assign_2"&gt;
    &lt;copy&gt;
    &lt;from expression='"AB"'/&gt;
    &lt;to variable="Reply_2_TestReq_OutputVariable"
    part="payload"
    query="/client:MultiWsdlProcessResponse/client:result"/&gt;
    &lt;/copy&gt;
    &lt;/assign&gt;
    &lt;reply name="Reply_1" partnerLink="client"
    portType="client:MultiWsdl" operation="Create"
    variable="Reply_2_TestReq_OutputVariable"/&gt;
    &lt;/sequence&gt;
    &lt;/onMessage&gt;
    &lt;/pick&gt;
    &lt;/sequence&gt;
    &lt;/process&gt;
    ----------xsd -------
    &lt;schema attributeFormDefault="unqualified"
    elementFormDefault="qualified"
    targetNamespace="http://xmlns.oracle.com/MultiWsdl"
    xmlns="http://www.w3.org/2001/XMLSchema"&gt;
    &lt;element name="MultiWsdlProcessRequest"&gt;
    &lt;complexType&gt;
    &lt;sequence&gt;
    &lt;element name="input" type="string"/&gt;
    &lt;/sequence&gt;
    &lt;/complexType&gt;
    &lt;/element&gt;
    &lt;element name="MultiWsdlProcessResponse"&gt;
    &lt;complexType&gt;
    &lt;sequence&gt;
    &lt;element name="result" type="string"/&gt;
    &lt;/sequence&gt;
    &lt;/complexType&gt;
    &lt;/element&gt;
    &lt;/schema&gt;
    -----------------------------------------------------------------------------------------------------bpel.xml--------------------------------------------------
    &lt;?xml version = '1.0' encoding = 'UTF-8'?&gt;
    &lt;BPELSuitcase&gt;
    &lt;BPELProcess id="MultiWsdl" src="MultiWsdl.bpel"&gt;
    &lt;partnerLinkBindings&gt;
    &lt;partnerLinkBinding name="client"&gt;
    &lt;property name="wsdlLocation"&gt;MultiWsdl.wsdl&lt;/property&gt;
    &lt;/partnerLinkBinding&gt;
    &lt;/partnerLinkBindings&gt;
    &lt;/BPELProcess&gt;
    &lt;/BPELSuitcase&gt;

    Thanks a lot. It helped me a lot. It seems this is the problem with the BPEL Console. I tried to create another BPEL Project to invoke the other service/operations. It worked perfectly fine. I had even tested with SoapUI. It worked fine. Thanks for the right pointer.

  • Defining multiple inports in OVP floorplan

    Hello,
    seems to me that you cannot define multiple inports for a single UIBB in the OVP wiring model.
    Is this correct? Does anyone have any experience in building/using any solution where multiple inports have been used?
    Only way I could see currently is some sort of component level sharing (contextual or singleton) to pass data between seperate UIBBs.
    Would be very interested to be able to have multiple inports, but can't figure out how to do it.
    Cheers,
    Chris

    Hi  Saravanan,
    Unfortunately inports are defined at the component level (via requirement for component to implement WDA interface IF_FPM_UIBB_MODEL ) this implements method GET_MODEL_API - when this is called it seems there is no reference to which window/UIBB is being called - so having two windows on the same component doesn't allow for two inports - as only one handler ( IF_FPM_FEEDER_MODEL ) can be defined/returned per instance of a component.  Within that class interface the method GET_INPORT_KEY only seems to allow for the definition of one inport.
    Even in the OVP config if you try to map multiple wires to a single inport you get a warning message. (I guess if you enabled/disabled different UIBBS/wires in the floorplan dynamically, then this would make sense rather than an error).
    I'm thinking that it is a design limitation of the solution - but would love to hear from someone who has direct experience of using multiple inports.
    From prior discussions with @thomas_jung I'm thinking that OVP is really designed for quite tightly coupled solutions rather than loosely coupled reusable components. It seems that is more the domain of CHIPs.
    Unfortunately in the use case I have, I need to move from page to page, rather than just keeping all the objects on the same page - so CHIPs wouldn't appear to work.
    Thanks for the suggestions though!
    Cheers,
    Chris

Maybe you are looking for