Dynamic PartnerLink ?

Well, when I am developing my business process, I wish to use one partnerlink to call different BPELs dynamically. So I find the sample of DynamicPartnerLink. But actually it is not what i need. I mean based on the sample I need to rewrite a partnerlink wsdl file to bind the other service which looks like adding <service></service> in the partnerlink wsdl file for dynamic binding. If we have so many services to dynamic call, how could we manage them, i think that there will so many <service></service> in this partnerlink wsdl file. it is not easy to sustain.
I am wondering if there is another way to dynamic call in one partnerlink, which is only one <service></service> block in the partnerlink wsdl file, and all i need is to provide the related endpoints, soapAction, request to this partnerlink as the entry for dynamic invoke.
Thanks in advance

Well, when I am developing my business process, I wish to use one partnerlink to call different BPELs dynamically. So I find the sample of DynamicPartnerLink. But actually it is not what i need. I mean based on the sample I need to rewrite a partnerlink wsdl file to bind the other service which looks like adding <service></service> in the partnerlink wsdl file for dynamic binding. If we have so many services to dynamic call, how could we manage them, i think that there will so many <service></service> in this partnerlink wsdl file. it is not easy to sustain.
I am wondering if there is another way to dynamic call in one partnerlink, which is only one <service></service> block in the partnerlink wsdl file, and all i need is to provide the related endpoints, soapAction, request to this partnerlink as the entry for dynamic invoke.
Thanks in advance

Similar Messages

  • Unable to get the response from dynamic partnerlink

    Hi
    I used dynamic partnerlink, in this i am able to invoke the services dynamcially but i am unable to get the response from the services which i had invoked dynamically. In my dynamic partnerlink wsdl i had included callback binding and call back service in the wsdl you can see them below
    <binding name="LoanServiceCallbackBinding" type="tns:LoanServiceCallback">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="onResult">
    <soap:operation soapAction="onResult" style="document"/>
    <input>
    <soap:header message="tns:RelatesToHeader" part="RelatesTo" use="literal" required="false"/>
    <soap:body use="literal"/>
    </input>
    </operation>
    </binding>
    <service name="LoanServiceCallbackService">
    <port name="LoanServiceCallbackPort" binding="tns:LoanServiceCallbackBinding">
    <soap:address location="http://openuri.org"/>
    </port>
    </service>
    please help me on this
    thanks
    Srikanth

    Hi, thanks for the input
    Actually My partnerLink had two messageTypes one for Input message request and the other for the Output message request and for the input message i had used the operation as initiate also for the output messsage type operation as result.For both of them binding is defined.
    With these am passing the values from myBPELl to the service which am nvoking dynamically but unable to capture the response the variables are local to myBPEL.

  • Got the mismatchedAssignmentFailure in the Dynamic partnerlink

    Hi Friends,
    while i am trying to implementing the Dynamic partnerlink, i got the mismatchedAssignmentFailure. can you please find the below exceptionn and suggest me what should i needs to do.
    java.lang.Exception: oracle.sysman.emSDK.webservices.wsdlapi.SoapTestException: faultName: {{http://docs.oasis-open.org/wsbpel/2.0/process/executable}mismatchedAssignmentFailure} messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage} at oracle.sysman.emas.model.wsmgt.WSTestModel.invokeOperation(WSTestModel.java:575) at oracle.sysman.emas.view.wsmgt.WSView.invokeOperation(WSView.java:381) at oracle.sysman.emas.view.wsmgt.WSView.invokeOperation(WSView.java:299) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.el.parser.AstValue.invoke(Unknown Source) at com.sun.el.MethodExpressionImpl.invoke(Unknown Source) at org.apache.myfaces.trinidadinternal.taglib.util.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:53) at org.apache.myfaces.trinidad.component.UIXComponentBase.broadcastToMethodBinding(UIXComponentBase.java:1256) at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:183) at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:93) at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:361) at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:96) at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:102) at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:93) at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:361) at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:96) at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:96) at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:475) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:756) at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._invokeApplication(LifecycleImpl.java:789) at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:306) at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:186) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:27) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57) at oracle.help.web.rich.OHWFilter.doFilter(Unknown Source) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57) at oracle.sysman.emSDK.license.LicenseFilter.doFilter(LicenseFilter.java:102) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57) at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:205) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57) at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:106) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:447) at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:447) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:271) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:177) at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57) at oracle.sysman.emas.fwk.MASConnectionFilter.doFilter(MASConnectionFilter.java:41) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57) at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:176) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57) at oracle.sysman.eml.app.AuditServletFilter.doFilter(AuditServletFilter.java:183) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57) at oracle.sysman.eml.app.EMRepLoginFilter.doFilter(EMRepLoginFilter.java:203) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57) at oracle.sysman.core.model.targetauth.EMLangPrefFilter.doFilter(EMLangPrefFilter.java:158) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57) at oracle.sysman.core.app.perf.PerfFilter.doFilter(PerfFilter.java:141) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57) at oracle.sysman.eml.app.ContextInitFilter.doFilter(ContextInitFilter.java:542) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57) at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111) at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313) at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413) at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94) at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161) at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57) at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57) at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277) at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454) at weblogic.work.ExecuteThread.run(ExecuteThread.java:178) Caused by: oracle.sysman.emSDK.webservices.wsdlapi.SoapTestException: faultName: {{http://docs.oasis-open.org/wsbpel/2.0/process/executable}mismatchedAssignmentFailure} messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage} at oracle.sysman.emSDK.webservices.wsdlapi.dispatch.DispatchUtil.invoke(DispatchUtil.java:260) at oracle.sysman.emSDK.webservices.wsdlparser.OperationInfoImpl.invokeWithDispatch(OperationInfoImpl.java:992) at oracle.sysman.emas.model.wsmgt.PortName.invokeOperation(PortName.java:729) at oracle.sysman.emas.model.wsmgt.WSTestModel.invokeOperation(WSTestModel.java:570) ... 76 more Caused by: javax.xml.ws.soap.SOAPFaultException: faultName: {{http://docs.oasis-open.org/wsbpel/2.0/process/executable}mismatchedAssignmentFailure} messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage} at oracle.j2ee.ws.client.jaxws.DispatchImpl.throwJAXWSSoapFaultException(DispatchImpl.java:1024) at oracle.j2ee.ws.client.jaxws.DispatchImpl.invoke(DispatchImpl.java:808) at oracle.j2ee.ws.client.jaxws.OracleDispatchImpl.synchronousInvocationWithRetry(OracleDispatchImpl.java:235) at oracle.j2ee.ws.client.jaxws.OracleDispatchImpl.invoke(OracleDispatchImpl.java:106) at oracle.sysman.emSDK.webservices.wsdlapi.dispatch.DispatchUtil.invoke(DispatchUtil.java:256) at oracle.sysman.emSDK.webservices.wsdlparser.OperationInfoImpl.invokeWithDispatch(OperationInfoImpl.java:992) at oracle.sysman.emas.model.wsmgt.PortName.invokeOperation(PortName.java:729) at oracle.sysman.emas.model.wsmgt.WSTestModel.invokeOperation(WSTestModel.java:569) at oracle.sysman.emas.view.wsmgt.WSView.invokeOperation(WSView.java:381) at oracle.sysman.emas.view.wsmgt.WSView.invokeOperation(WSView.java:298) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.el.parser.AstValue.invoke(Unknown Source) at com.sun.el.MethodExpressionImpl.invoke(Unknown Source) at org.apache.myfaces.trinidadinternal.taglib.util.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:53) at org.apache.myfaces.trinidad.component.UIXComponentBase.broadcastToMethodBinding(UIXComponentBase.java:1256) at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:183) at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:92) at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:361) at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:96) at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:102) at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:92) at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:361) at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:96) at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:96) at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:475) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:756) at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._invokeApplication(LifecycleImpl.java:788) at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:306) at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:186) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.help.web.rich.OHWFilter.doFilter(Unknown Source) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.sysman.emSDK.license.LicenseFilter.doFilter(LicenseFilter.java:101) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:205) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:106) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446) at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:271) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:177) at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.sysman.emas.fwk.MASConnectionFilter.doFilter(MASConnectionFilter.java:41) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:175) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.sysman.eml.app.AuditServletFilter.doFilter(AuditServletFilter.java:179) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.sysman.eml.app.EMRepLoginFilter.doFilter(EMRepLoginFilter.java:203) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.sysman.core.model.targetauth.EMLangPrefFilter.doFilter(EMLangPrefFilter.java:158) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.sysman.core.app.perf.PerfFilter.doFilter(PerfFilter.java:141) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.sysman.eml.app.ContextInitFilter.doFilter(ContextInitFilter.java:542) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111) at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313) at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413) at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94) at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161) at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277) at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209) ... 1 more
    Thanks
    Hari Mandadapu.

    Do you assign a WS-Addressing based variable to the PartnerLink you want to invoke? And do you initialize this variable with e.g. an xml fragment.
    Regards,
    Melvin

  • Are dynamic partnerlinks really dynamic

    I am trying to develop dynamic partnerlinks for my BPEL process. As I understand, if I want to call one out of n number of partnerlinks say service1,service2,service3 at runtime, all having the same interface, i have to know atleast the names of these n services at designtime so that i can make an entry into the wsdl file.
    Now suppose, i want to add another service (Service 4 ) with same interface , I still have to modify the wsdl file and redeploy the process.
    Is there any way by which, i dont need to modify the wsdl file/redeploy the process.
    Ideally i would like to maintain the name and url of all the services, externally to BPEL say a DB table or configuration file and based on my input to BPEL process would read from this configuration and call the partner service so that as and when the number of services grows, i dont need to redeploy the BPEL process.
    is this achievable ?
    Message was edited by:
    user564313

    I have been trying to get this to work with my processes.
    However the examples given in BPEL sample/references/Dynamic Partner link and http://www.oracle.com/technology/pub/articles/bpel_cookbook/carey.html are using a LoanService.wsdl to create the partnerlink to which they later assign the endpoint references.
    But none of the document says, how to create this LoanService.wsdl or how it is arrived at.
    I have three bpel processes service1,service2,service3 having the same input schema. So their wsdl's service1.wsdl,service2.wsdl and service3.wsdl are same except the endpoint address.
    Now I have another BPEL process CallXXService which will be calling either of the three services based on some input. My problem is how to create something similar to LoanService.wsdl which I can use to create the partnerlink.The three wsdl's for these services(service1.wsdl,service2.wsdl,service3.wsdl) are totally different in structure to the given LoanService.wsdl.
    Any idea/suggestions please ?
    anks

  • Dynamic partnerlink binding problem

    I am trying to create a dynamic partnerlink as in http://www.oracle.com/technology/pub/articles/bpel_cookbook/carey.html .
    When I am trying to create this with LoanService.wsdl, it works correctly for me but when I try to create it for my own service, it is showing up some errors which I fail to understand.
    I have three services service1,service2,service3.
    I have created another web service called CallPartnerService in which I have imported the service.wsdl to create the partnerlink. After that I am following the instructions in the cookbook to create the create the partner reference variable, copy the partnerReference variable into the Service partner link etc
    However, when I run it, I get the following error on invoking the partner service.
    Cannot find binding operation.
    in WSDL located at "file:/D:/product/10.1.3.1/OracleAS_1/bpel/domains/default/tmp/.bpel_CallPartnerService_1.0_a8cb48601311c51027d61ee288d499df.tmp/Service.wsdl", cannot find a binding operation of "process", portType "{http://xmlns.oracle.com/}Service"
    Please make sure the WSDL is valid.
    Any suggestions
    This is the structure of my Service.wsdl.
    <?xml version="1.0" encoding="UTF-8"?>
    <definitions name="Service"
    targetNamespace="http://xmlns.oracle.com/"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
                   xmlns:tns="http://xmlns.oracle.com/"
    xmlns:client="http://xmlns.oracle.com/Service"
         xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
         xmlns:wsa="http://schemas.xmlsoap.org/ws/2003/03/addressing"
    xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/">
         <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         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.
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
         <types>
              <schema attributeFormDefault="qualified" elementFormDefault="qualified"
    targetNamespace="http://schemas.xmlsoap.org/wsdl/"
    xmlns="http://www.w3.org/2001/XMLSchema">
    <import namespace="http://schemas.xmlsoap.org/ws/2003/03/addressing"
    schemaLocation="http://CWSEOW01:8888/orabpel/xmllib/ws-addressing.xsd" />
    </schema>
    <schema attributeFormDefault="unqualified"
         elementFormDefault="qualified"
         targetNamespace="http://xmlns.oracle.com/Service"
         xmlns="http://www.w3.org/2001/XMLSchema">
    <!--     <element name="ServiceProcessRequest" type="ServiceProcessRequestType"/>
    <element name="ServiceProcessResponse" type="ServiceProcessResponseType"/> -->
         <element name="ServiceProcessRequest">
              <complexType >
                   <sequence>
                        <element name="input" type="string"/>
                   </sequence>
              </complexType>
         </element>
         <element name="ServiceProcessResponse">
              <complexType >
                   <sequence>
                        <element name="result" type="string"/>
                   </sequence>
              </complexType>
         </element>
    </schema>
         </types>
         <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         MESSAGE TYPE DEFINITION - Definition of the message types used as
         part of the port type defintions
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
         <message name="RelatesToHeader">
    <part name="RelatesTo" element="wsa:RelatesTo" />
    </message>
    <message name="MessageIDHeader">
    <part name="MessageID" element="wsa:MessageID" />
    </message>
    <message name="ReplyToHeader">
    <part name="ReplyTo" element="wsa:ReplyTo" />
    </message>
         <message name="ServiceRequestMessage">
              <part name="payload" element="client:ServiceProcessRequest"/>
         </message>
         <message name="ServiceResponseMessage">
              <part name="payload" element="client:ServiceProcessResponse"/>
         </message>
         <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         PORT TYPE DEFINITION - A port type groups a set of operations into
         a logical service unit.
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    <portType name="Service">
              <operation name="process">
                   <input message="tns:ServiceRequestMessage" />
                   <output message="tns:ServiceResponseMessage"/>
              </operation>
         </portType>
    <binding name="ServiceBinding" type="tns:Service">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="process">
    <soap:operation soapAction="tns:process" style="document"/>
    <input>
    <soap:header message="tns:MessageIDHeader" part="MessageID" use="literal" />
    <soap:header message="tns:ReplyToHeader" part="ReplyTo" use="literal" />
    <soap:body use="literal"/>
    </input>
         <output>
    <soap:body use="literal"/>
         </output>
    </operation>
    </binding>
    <!--binding name="ServiceCallbackBinding" type="client:ServiceCallback">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="onResult">
    <soap:operation soapAction="onResult" style="document"/>
    <input>
    <soap:header message="tns:RelatesToHeader" part="RelatesTo" use="literal" required="false"/>
    <soap:body use="literal"/>
    </input>
    </operation>
    </binding-->
    <service name="Service1">
    <port name="ServiceCallbackPort" binding="tns:ServiceBinding">
    <soap:address location="http://CWSEOW01:8888/orabpel/default/Service1"/>
    </port>
    </service>
    <service name="Service2">
    <port name="ServiceCallbackPort" binding="tns:ServiceBinding">
    <soap:address location="http://CWSEOW01:8888/orabpel/default/Service2"/>
    </port>
    </service>
    <service name="Service3">
    <port name="ServiceCallbackPort" binding="tns:ServiceBinding">
    <soap:address location="http://CWSEOW01:8888/orabpel/default/Service3"/>
    </port>
    </service>
         <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         PARTNER LINK TYPE DEFINITION
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
         <plnk:partnerLinkType name="Service">
              <plnk:role name="ServiceProvider">
                   <plnk:portType name="tns:Service"/>
              </plnk:role>
         </plnk:partnerLinkType>
    </definitions>

    Hi Kavitha,
    //Iterate to get the attributes
           Iterator itr1 = wdContext.nodeDetails().getNodeInfo().iterateAttributes();
           IWDTransparentContainer container = (IWDTransparentContainer)view.getElement("<Your Root Container>");
           while(itr1.hasNext())
           //  Input Field for each attribute
           IWDInputField input= (IWDInputField)view.createElement(IWDInputField.class,null);
           IWDAttributeInfo iWDInfo = (IWDAttributeInfo) itr1.next();
           input.bindValue("Details."+iWDInfo.getName());
           //Add to the container
           container.addChild(input);
    Regards
    Ayyapparaj

  • Dynamic partnerlinks using a wrapped wsdl

    Hi all,
    My current situation is as follows:
    Im using a webservice which doesn't define partnerlinks and as a result I've created a new wsdl which wraps the original webservice. In the wrapping wsdl I've defined the missing partnerlink. In the bpel.xml I reference the wrapping wsdl and not the wrapped wsdl. The result is that I have a webservice which includes a partnerlink def. - so far everything is fine.
    The wrapping wsdl is shown below:
    <definitions
    name="CCSSecurityServiceRemote"
    targetNamespace="http://com.scandihealth.ccs.webservices.security.common/CCSSecurityServiceRemote.wsdl"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:tns="http://com.scandihealth.ccs.webservices.security.common/CCSSecurityServiceRemote.wsdl"
    xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
    xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    >
    <!-- import namespace="http://com.scandihealth.ccs.webservices.security.common/CCSSecurityServiceRemote.wsdl"
    location="CCSSecurityServiceRemote.wsdl"/ -->
    <import namespace="http://com.scandihealth.ccs.webservices.security.common/CCSSecurityServiceRemote.wsdl"
    location="http://becks:8002/ccswebservices/CCSSecurityService?wsdl"/>
    <plnk:partnerLinkType name="CCSSecurityServiceRemotePortType_PL">
    <plnk:role name="CCSSecurityServiceRemotePortType_Role">
    <plnk:portType name="tns:CCSSecurityServiceRemotePortType"/>
    </plnk:role>
    </plnk:partnerLinkType>
    </definitions>
    My problem is the location attribute which is hardcoded! I would like to be able to define it as a preference in the bpel.xml file but how can I achive that? I've been looking at dynamic partnerlink, which seemed to be the tool to solve my problem but I can get it right.
    Any clues?
    Best regards and good weekend to you all!
    Stig

    Since you also make use of the wrapper wsdl for the dynamic partnerlink..maybe this can help you :
    http://www.oracle.com/technology/pub/articles/bpel_cookbook/carey.html
    <variable name="partnerReference" element="wsa:EndpointReference"/>
    with this you're able to assign the endpoint dynamically.

  • Dynamic Partnerlink with WSIF HTTP Binding

    Hi,
    I have been trying to change the endpoint location details of my HTTP Binding Partnerlink during runtime / deploy-time. AFAIK, there are two ways to do this.
    1. Deployment Descriptor : Change the "location" property in bpel.xml to point to a different location. Ideally this can be done at deployment using ant or use the Java APIs to change them during runtime. This works for partnerlinks which use a SOAP Binding, but does not work for HTTP Get/Post Bindings.
    2. Using WS-Addressing : Again this works with a SOAP WSDL, but no go with HTTP GET/POST WSDLs.
    Has anybody been able to get dynamic partnerlinks working for non SOAP Partnerlinks?
    Regards,
    DK
    Oracle SOA Suite 10.1.3.3.0
    AIA For Communications 2.0.1

    I get a collection of endpoint url and have created a single dummy WSDL and invoked in a parallel flow within a scope.
    I have created partner reference variable, input and out variable for the service within the scope.
    You can find the code snippet below.
    <bpelx:flowN name="FlowN_1"
    N="count(bpws:getVariableData('UserUpdateRoutingService_OutputVariable','payload','/ns9:UserUpdateProviderInfoCollection/ns9:UserUpdateProviderInfo'))"
    indexVariable="flowIndex">
    <sequence name="Sequence_1">
    <scope name="Scope_1">
    <variables>
    <variable name="InvokeEnterprisePingService_pingUserBySmsId_InputVariable"
    messageType="ns5:EnterprisePingServiceRequestMessage"/>
    <variable name="InvokeEnterprisePingService_pingUserBySmsId_OutputVariable"
    messageType="ns5:EnterprisePingServiceResponseMessage"/>
    <variable name="partnerReference"
    element="wsa:EndpointReference"/>
    </variables>
    <sequence name="Sequence_2">
    <assign name="ClearEndpointEnterprisePingService">
    <copy>
    <from>
    <EndpointReference xmlns="http://schemas.xmlsoap.org/ws/2003/03/addressing"
    xmlns:ns7="http://services.otn.com">
    <Address/>
    </EndpointReference>
    </from>
    <to variable="partnerReference"/>
    </copy>
    </assign>
    <assign name="SetEndpointEnterprisePingService">
    <copy>
    <from expression="bpws:getVariableData('UserUpdateRoutingService_OutputVariable','payload','/ns9:UserUpdateProviderInfoCollection/ns9:UserUpdateProviderInfo[bpws:getVariableData(&quot;flowIndex&quot;)]/ns9:enterprisepingurl') "/>
    <to variable="partnerReference"
    query="/ns7:EndpointReference/ns7:Address"/>
    </copy>
    </assign>
    <assign name="DoPartnerlinkEnterprisePingService">
    <copy>
    <from variable="partnerReference"/>
    <to partnerLink="EnterprisePingService"/>
    </copy>
    </assign>
    <assign name="AssignEnterprisePingServiceInput">
    <copy>
    <from variable="inputVariable" part="payload"
    query="/ns2:updatePersonRequest/ns2:person/ns3:userId/ns4:userIdValue"/>
    <to variable="InvokeEnterprisePingService_pingUserBySmsId_InputVariable"
    part="payload"
    query="/ns6:pingUserBySmsId/ns6:smsUserId"/>
    </copy>
    </assign>
    <invoke name="InvokeEnterprisePingService"
    partnerLink="EnterprisePingService"
    portType="ns5:EnterprisePingService"
    operation="pingUserBySmsId"
    inputVariable="InvokeEnterprisePingService_pingUserBySmsId_InputVariable"
    outputVariable="InvokeEnterprisePingService_pingUserBySmsId_OutputVariable"/>
    </sequence>
    </scope>
    </sequence>
    </bpelx:flowN>

  • Dynamic Partnerlink to ESB dbAdapter service

    I have many stored procedures (around 40!) to call from a BPEL process. To handle errors coming back from these (sqlerrm) and the associated human interaction to suspend then resume the process, I have the partnerlink call inside a double loop. I don't want to repeat this 40 times, and also may want to be able to reconfigure the calls (execution order, exclude/add some etc.). So far to achieve this, I've created and tested the double loop, created a dbAdapter to get the endpoints from a db table, and am now trying to get dynamic partner linking to work with this. Each service call is registered in the ESB as a dbAdapter and exposed as an invokable service (not via a routing service). I can successfully call each of these individually.
    I've read Carey's cookbook article in detail (great article!) and got it working nicely with a plain ol' web service and am able to loop through the dbAdapter results to get the endpoint addresses. Now I'm having trouble getting it to work with one of these ESB-exposed dbAdapters. I've tried using the concrete WSDL from the ESB in the dynamic partnerlink - but even though I can dynamically assign the endpoint at runtime, it seems to ignore this and always calls the same service. I've then spent many frustrating hours trying to create a WSDL template from the ESB concrete WSDL to import into my process at design-time - so far to no avail.
    I notice that the WSDL for these ESB-exposed dbAdapters is about "3 levels deep" that is they each import another WSDL or schema including one for the dbAdapter itself. Even though I think the db interaction should not be exposed outside of the ESB (to the caller) - only the "front" of the service should be.
    Am I completely on the wrong track here? or will more perseverance pay off and I will get it working? Has anyone successfully done this? please help...
    http://www.oracle.com/technology/pub/articles/bpel_cookbook/carey.html

    I figured that in bpel 2.0 EndpointReference element needs to be wrapped in a <service-ref> element BPEL 2.0 Dynamic Partnerlink mismatchedAssignmentFailure error . However it requires it to be static configuration.
    How can I make it dynamic to get set the address from a variable ?
    Please help.
    Edited by: 925432 on Jun 18, 2012 6:13 PM

  • Dynamic partnerlink example

    Hello,
    I am quite new to Oracle BPEL Process Manager. I was reading about the dynamic partnerlink and I checked the example. What I want to learn is: Do I need a separate wsdl file for the dynamic partnerlink as LoanService.wsdl in the example? If I want to make calls to public web services, do I have to write that wsdl file myself?
    When I searched the forum I found this: ' As a workaround you can try dynamic partnerlink but your partnerlinks should be defined at design time. For details please refer to sample "orabpel\samples\references\DynamicPartnerLink" '.
    Does it mean that I have to define the addresses of the web services that I might call during the execution of the process, at design time (in a separate wsdl)?
    Thank you in advance.

    Hi 55555 55555,
    I'm not sure that I understand what you mean. It is true that you need to have a WSDL file in advance. But this WSDL file is necessary mainly to be able to define the port types and the SOAP binding information. The URLs of the services that your process uses at runtime do not necessarily need to be match those that you put in the element "service" of the WSDL file. Concretely, if you look at the file "Supplier.wsdl" in:
    http://sky.fit.qut.edu.au/~dumas/ServiceInteractionPatterns/BPELCode/OneToManySendReceive-Dynamic.zip
    You will see that there are three "service" declarations:
    <service name="Supplier1">
    <port name="SupplierServiceP" binding="tns:SupplierServiceBinding">
    <soap:address location="http://localhost:9700/orabpel/default/Supplier1"/>
    </port>
    </service>
    <service name="Supplier2">
    <port name="SupplierServiceP" binding="tns:SupplierServiceBinding">
    <soap:address location="http://localhost:9700/orabpel/default/Supplier2"/>
    </port>
    </service>
    <service name="Supplier3">
    <port name="SupplierServiceP" binding="tns:SupplierServiceBinding">
    <soap:address location="http://localhost:9700/orabpel/default/Supplier3"/>
    </port>
    </service>
    These "service" elements are important, because they define the service names (i.e. "Supplier1", "Supplier2", and "Supplier3" in this example). However, the URLs that you put here ARE NOT IMPORTANT if you're doing dynamic addressing in the BPEL code. These URLs are only used by the BPEL engine if you're not doing dynamic addressing. Indeed, try replacing these lines in the WSDL file with the following ones:
    <service name="Supplier1">
    <port name="SupplierServiceP" binding="tns:SupplierServiceBinding">
    <soap:address location="http://www.dummy.com"/>
    </port>
    </service>
    <service name="Supplier2">
    <port name="SupplierServiceP" binding="tns:SupplierServiceBinding">
    <soap:address location="http://www.dummy.com"/>
    </port>
    </service>
    <service name="Supplier3">
    <port name="SupplierServiceP" binding="tns:SupplierServiceBinding">
    <soap:address location="http://www.dummy.com"/>
    </port>
    </service>
    And then try running again the process OneToManySendReceive.bpel. You will notice that it works! This is because in the process OneToManySendReceive.bpel, the addresses of the services Supplier1, Supplier2 and Supplier3 are determined by the "assign" statement between lines 74 through 83 of OneToManySendReceive.bpel. Thus, you can put "dummy" addresses in the "location" element of your WSDL file(s). Note that you do need to define the "service" and "location" elements in your WSDL file and it is important that the service names that you use in the BPEL code match the service names in the WSDL files (but the choice of these names is up to you and it doesn't matter if this is the actual name of the process that you're calling!). Importantly, the URLs that you use in the BPEL file and those that you use in the WSDL file do not need to match, and this allows you to achieve "dynamic addressing". Just try out the OneToManySendReceive.bpel process and you'll see.
    If you wish, I can send you the whole Oracle BPEL project for the OneToManySendReceive. Please contact me at my e-mail (m.dumas at qut.edu.au). And for more information about what this process does, see http://www.serviceinteraction.com
    Cheers
    Marlon Dumas

  • Dynamic Partnerlink Properties?

    I am doing a HTTP Post "web service" call - and setting up some necessary HTTP header properties by adding them in my bpel.xml as custom partnerLink properties...
    <partnerLinkBinding name="MyHTTPWebService">
    <property name="From">DIATOCCD</property>
    <property name="MessageName">D8_REQ_CREATE</property>
    <property name="OrigUser">MyUsername</property>
    <property name="Password">MyPassword</property>
    </partnerLinkBinding>
    This works fine. These properties come across in the HTTP Post as HTTP Headers. Now the customer wants me to add a new HTTP Header - and make the value dynamic at run-time. As far as I can tell, this is not possible. But maybe I'm missing something obvious. So they'd want something like this ...
    <partnerLinkBinding name="MyHTTPWebService">
    <property name="From">DIATOCCD</property>
    <property name="MessageName">D8_REQ_CREATE</property>
    <property name="OrigUser">MyUsername</property>
    <property name="Password">MyPassword</property>
    <property name="TransactionID">10001</property> (this value would be determined at run-time)
    </partnerLinkBinding>
    Any ideas?
    Thanks!
    Rod

    I am now attacking this a bit differently. I have abandoned the WSIF method of doing HTTP Binding - and am writing some Java code in a Java Embedding component to do the HTTP POST "manually". Not pretty - but it allows me to dynamically set my HTTP Headers in the Java code. Does anyone know what disadvantages this may cause (performance, robustness, etc.)?
    Thanks for any help.
    Rod

  • Dynamic PartnerLink wsdlLocation

    Hello,
    I am working on a billing process that needs to be able to determine which partner (i.e. the wsdl location) to connect to at run-time. I've read this can be done via WS-Addressing, but I don't see a way to do this using Oracle's BPEL implementation. I see that the wsdlLocation property is defined in the bpel.xml, but I don't see an api call or other place where I can dynamically set this.
    Any help is appreciated.
    Thanks,
    Chris Natali

    Hi Chris,
    C:\[orabpel install dir]\samples\references\DynamicPartnerLink shows how you can use an assign activity within a BPEL process to dynamically set the location of partnerLink.
    Please note that this information can also be dynamically set by the client/partner as it is initiating the BPEL process ( kind of "please process this request and call me back at this location with this correlation id"). In that use case the client/partner passes in the callback location and the correlation id in a WS-addressing header embedded in the header of the initiating request. Under the hood the BPEL engine, reads the WS-Addressing header and associates the client partnerLink with the provided information. That information is automatically used by the BPEL engine when it runs an invoke activity to call back the client.
    I hope this addresses your question.
    Edwin

  • FTP how to pass dynamic filename/directory location - reading a file in 11g

    Hi All,
    We r using FTP adapter(SOA 11g) for getting files in remote server, May i know how to pass dynamic filename and directory where the file exists for reading in server.
    Thanks,
    Rak

    Hey according to my understanding, the Dynamic partner links are set only for the Outbound invocations only. Is my understanding right? if so, how do we create the dynamic partnerlinks for the ftp get kind of stuff...??
    Thanks in advance

  • Dynamic activity naming

    Hi
    Is there a way to dynamiquely rename activities within a BPEL process ?
    For example, when I use flowN w/dynamic partnerLinks, I'd like to rename my invokes and receives in order to reflect the name of the invoked services in each branch of the flow within the soa console flow diagram.
    Dominique

    Dominique,
    I see your problem and it's a good one. But activity names are static and there is no way around that. That's okay because you are really only looking for something visual in the flow view, not to change the language. What would solve this is if we would render the flow view drawing to include some sort of user defined dynamic value. But what value? We'd have to create a tag that could be attached to any activity whose value could be generated at runtime and also rendered in the flow view drawing.....right?
    Tell me how this fits with your request and if you want to change it at all. After all, when we submit this as a feature request, we might as well ask for what we want!
    Heidi.

  • How to set hostname using dynamic binding for FTP, AQ, SMTP adaptersin BPEL

    I am using Oracle BPEL and SOA 11g and my requirement is to send files and messages to different destinations ( hostname ) using dynamic JCA bindings. All hostname to be used other related information for destination is stored in database. My BPEL flow should retrieves the hostnames using one webservice and then set the hostname in FTP, AQ and SMTP adapters using dynamic JCA bindings.
    I came across http://rahullahiri.blogspot.in/2011/09/configuring-ftp-adapters-in-oracle-soa.html and http://www.soabyte.com/2010/11/jca-dynamic-partnerlinks-in-soa-11g.html but unsure if we can dynamically set the hostname also for the adapters mentioned in the BPEL flow.
    Can you please advice how it can be achieved in BPEL and what is the best way?
    Thanks for help in advance.
    Shail

    Hi,
    Its good that u pasted the complete log file. In your environment you have to run this upgrade tool only once from any of the middle tier.
    And with respect to your error that u got in precheck is quite simple. All u have to do is just run this script from by connecting to portal schema using sqlplus.
    Run dropupg.sql
    Location-------- /raid/product/OraHome_1/upgrade/temp/portal/prechktmp/dropupg.sql
    Later you re-run the upgrade tool and let me know the status.
    Good luck
    Tanmai

  • How to create a BPEL dynamic process?

    Hi gurus,
    We have encountered the following scenario, hope somebody can help!
    The client will manage some provisioning activities with an end system that will service them, BPEL is required to be the "Activity Manager", and handle these as they come; meaning, the client will send an array message describing the order in sequence on how they should be sent to the end system. This activities can have dependencies between them, also defined within the input message. The following is a muck up example of input message structure:
    <ActivityOrder>
    <!-- Some descriptions about the ActivityOrder>
    <Id/>
    <Status/>
    <DateInitiated/>
    <!-- This can have N number of ListActivity descriptions-->
    <ListActivity>
    <ListAtivityHeader>
    <SequenceNumber/>
    <Dependency/>
    <ActivityId/>
    <Status/>
    <Description/>
    <!-- ListActivityItem will contain message details to send to partnerLink>
    <ListActivityItem>
    </ListActivityItem>
    </ListActivity>
    </ActivityOrder>
    The order in which these activities are processed in BPEL will be dynamic, and they will be sent at run time, so to support this approach, a dynamic orchestration process will be needed on the integration layer. The client will send an array containing the sequential activities described by <SequenceNumber>, and also the dependencies between them, if that activity requires it, described by <Dependency> which will contain the sequence number that has to be completed before the current activity can be performed. After the end system resolves and replies to the activity requestin BPEL, an update must be sent to the client notifying status.
    All these interactions are assynchronous and could take as long as 6-8 weeks. Is it technically feasable the implementation of the above requirements? If so, how can we accomplish this?
    We are on SOA Suite 10.1.3.1
    Regards,
    Wilver
    Edited by: user633514 on Feb 4, 2010 8:21 AM

    Thanks for the reply, and yes, I have taken ideas from it that sample, but this is not the case I'm stating, parterLink is wellknown at design time, so its not a Dynamic partnerLink type of scenario since its the process flow the one that needs to be determined at run time. Dependant activities can't start until reply of the activity that it depends on has being received. How can I verify that an activity sent has being received?
    I've been weightin options; Can't use flowN since there could exists dependencies between processes. It can be accomplished by doing a combination of logical while structures or to call recursively another bpel process that will manage the Invoke/Receive, depending on the nature of the flow. Is there any other way of doing this that we haven't seen? What are the pros and cons I could encounter? What is the best practice recommendation for such scenario?
    Right now we have the following algorithm:
    Channel Initiates process
    Receive Input
    While Message has Activity
    If Activity has no Dependencies
    Invoke CurrentActivityCreationService
    End-If
    Else
    Set $receiveStatus = 'NO'
    While Activity Dependancy NOT Received
    Verify Activity Dependancy Receive Status (Where I get this info??)
    Update $receiveStatus with the outcome of the Verify activity above
    If $receiveStatus = 'NO'
    Receive ActivityCreationServiceResponse
    Update Channel
    End-If
    Else
    Invoke CurrentActivityCreationService
    Set $receiveStatus = 'NO'
    End-Else
    End-While
    getNextActivity
    End-Else
    While Exist a Pending Activity Responses to be Received
    Receive ActivityCreationServiceResponse
    Update Channel
    End-While
    Invoke Channel Callback
    The above algorithm creates me the following restrictions:
    • Activities are needed to be sent sequentially ordered.
    • Each activity may only have one dependency.
    • An activity can never depend on another that is later in the sequence.
    • Before sending activities that depend on previous one, it needs to know the state of that previous activity dependency, if already received or not.
    • For better performance, all independent activities should be first in the sequence, and activities with dependancies last.
    As usual most of these restriction are a hard sell since the activity stack will be tailored by a functional end user, so their not desired. Any fresh idea will be more than welcome, thanks for the time.
    Regards, Wilver
    Edited by: Wilver Cortes on Feb 5, 2010 6:34 AM
    Edited by: Wilver Cortes on Feb 5, 2010 6:38 AM

Maybe you are looking for

  • Reading DLL function and parameters from a header file

    Hallo to everyone, I am trying to find a cute way

  • How many fans does a MacBook have?

    Must be pretty amusing for most of you, but this is my first mac and the Fan utility (installed by me, forgot the name ... something smcXXXX ...) from the Control Panel (sorry, long time Windows user) is reporting Fan 1 with some normal value, and Fa

  • My MacBook Pro pwers up but does not get past the the Apple logo.

    I have a MacBook Pro with Mountain Lion.  It powers up but does not get past the Apple logo.  The hardware test did not reveal any problems.  It will also not get any further when I try to start up in Safe Mode.  The last thing I was trying to do was

  • SSH isn't working

    Hi. I'm having trouble enabling SSH. I have remote login enabled in the sharing preferences, but when I try to log on to my computer from my iPad (using pterm) I get the error "Server unexpectedly closed network connection". I can't connect from anot

  • IW31/32/33 - Maintain Order Text

    Dear All, I am creating one Order using IW31. I have written one FM to change the long text of the item. I used SAVE_TEXT also I tryed to commit that with COMMIT_TEXT. The text is getting saved in  table STXH, but when I opend the same order in IW32