5 Replies Latest reply: Aug 7, 2012 10:14 AM by Rakesh JS RSS

    How to invoke concurrent request set from BPEL?

    Rakesh JS
      I am trying to invoke a concurrent request set from BPEL.
      In my case i have created 2 apps adapters : one for calling the api APPS.FND_SUBMIT.SET_REQUEST_SET and the next for calling the API APPS.FND_SUBMIT.SUBMIT_SET. i am getting a success response for the first one however the second invoke is failing to register the concurrent job.

      the output from the 2nd invoke is:-

      <OutputParameters>
      <FND_SUBMIT-24SUBMIT_SET>0</FND_SUBMIT-24SUBMIT_SET>
      </OutputParameters>

      I am unable to identify where it is specifically failing.

      regards
      Rakesh
        • 1. Re: How to invoke concurrent request set from BPEL?
          702566
          Try to pull the two invokes into a Flow Activity and set thebpelX: Non blocking property=true. This actually triggers the two processes at the same time.
          Use a Scope(The flow activity should be in a scope) error handler for this and try to log the fault.

          Edited by: user10359791 on Jul 17, 2012 2:37 PM
          • 2. Re: How to invoke concurrent request set from BPEL?
            Rakesh JS
            I am unable to locate the bpelx:property non-blocking with the invoke operations. could you please give further details on this property & is it to be configured to the flow activity.

            I dragged the 2 invoke activities into the flow activity without setting any property. but still my request is not working. no request id is being generated for the submit_set operation.

            Details of the submit_set invoke activity is below.

            <messages>
            <InvokeSubmitAccrualJob_SubmitRunAccruals_InputVariable><part name="InputParameters" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><InputParameters xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/APPS/XX_BPEL_SUBMITRUNACCRUALS/FND_SUBMIT-24SUBMIT_SET/"/></part></InvokeSubmitAccrualJob_SubmitRunAccruals_InputVariable>
            <InvokeSubmitAccrualJob_SubmitRunAccruals_OutputVariable><part name="OutputParameters" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><OutputParameters xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/APPS/XX_BPEL_SUBMITRUNACCRUALS/FND_SUBMIT-24SUBMIT_SET/"><FND_SUBMIT-24SUBMIT_SET>0</FND_SUBMIT-24SUBMIT_SET></OutputParameters></part></InvokeSubmitAccrualJob_SubmitRunAccruals_OutputVariable></messages>

            thanks
            Rakesh
            • 3. Re: How to invoke concurrent request set from BPEL?
              veejai24
              To setup non-blocking invoke activity, check the below url.

              http://stefankoser.blogspot.co.uk/2012/07/new-bpel-thread-pool-in-soa-11g-for-non.html

              Thanks,
              Vijay
              • 4. Re: How to invoke concurrent request set from BPEL?
                Rakesh JS
                thanks for the coments, but my problem is still not resolved. I set the unblockinginvoke parameter for both the invokes under each flow as true. however, still the set_request_set returns 1(success) response but the submit set returns 0(failure).


                I am also able to run the request set from system administrator responsibility. please suggest what could be done...


                below is the bpel source:-






                <?xml version = "1.0" encoding = "UTF-8" ?>
                <!--
                ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                Oracle JDeveloper BPEL Designer

                Created: Wed Jul 18 23:50:54 IST 2012
                Author: RJS
                Type: BPEL 1.1 Process
                Purpose: Empty BPEL Process
                ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                -->
                <process name="ProcessNShoreAccurals"
                targetNamespace="http://xmlns.oracle.com/NShoreAccruals/NShoreAccuralR12Service/ProcessNShoreAccurals"
                xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
                xmlns:client="http://xmlns.oracle.com/NShoreAccruals/NShoreAccuralR12Service/ProcessNShoreAccurals"
                xmlns:ora="http://schemas.oracle.com/xpath/extension"
                xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
                xmlns:ns1="http://xmlns.oracle.com/pcbpel/adapter/ftp/NShoreAccruals/NShoreAccuralR12Service/GetNShoreAccurals"
                xmlns:ns2="http://xmlns.oracle.com/pcbpel/adapter/ftp/NShoreAccruals/NShoreAccuralR12Service/PutNShoreAccuralFiles"
                xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
                xmlns:ns3="http://xmlns.oracle.com/pcbpel/adapter/file/attachment/"
                xmlns:ns4="http://xmlns.oracle.com/pcbpel/adapter/apps/NShoreAccruals/NShoreAccuralR12Service/NShoreAccurals_Set_Request_Set"
                xmlns:ns5="http://xmlns.oracle.com/pcbpel/adapter/apps/NShoreAccruals/NShoreAccuralR12Service/NShoreAccurals_Submit_Set"
                xmlns:xp20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20"
                xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
                xmlns:oraext="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xmlns:dvm="http://www.oracle.com/XSL/Transform/java/oracle.tip.dvm.LookupValue"
                xmlns:hwf="http://xmlns.oracle.com/bpel/workflow/xpath"
                xmlns:ns7="http://xmlns.oracle.com/pcbpel/adapter/db/APPS/XX_BPEL_NSHOREACCURALS_SUBMIT_/FND_SUBMIT-24SUBMIT_SET/"
                xmlns:ids="http://xmlns.oracle.com/bpel/services/IdentityService/xpath"
                xmlns:ns6="http://xmlns.oracle.com/pcbpel/adapter/db/APPS/XX_BPEL_NSHOREACCURALS_SET_REQ/FND_SUBMIT-24SET_REQUEST_SET/"
                xmlns:bpm="http://xmlns.oracle.com/bpmn20/extensions"
                xmlns:xdk="http://schemas.oracle.com/bpel/extension/xpath/function/xdk"
                xmlns:xref="http://www.oracle.com/XSL/Transform/java/oracle.tip.xref.xpath.XRefXPathFunctions"
                xmlns:ldap="http://schemas.oracle.com/xpath/extension/ldap"
                xmlns:ns8="http://www.hitachiconsulting.com/pmi/NotificationManagerBPEL_Service"
                xmlns:ns9="http://www.hitachiconsulting.com/pmi/NotificationManagerService">

                <!--
                ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                ORCHESTRATION LOGIC
                Set of activities coordinating the flow of messages across the
                services integrated within this business process
                ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                -->
                <partnerLinks>
                <partnerLink name="GetNShoreAccurals" partnerLinkType="ns1:Get_plt"
                myRole="Get_role"/>
                <partnerLink name="PutNShoreAccuralFiles" partnerLinkType="ns2:Put_plt"
                partnerRole="Put_role"/>
                <partnerLink name="NShoreAccurals_Set_Request_Set"
                partnerLinkType="ns4:NShoreAccurals_Set_Request_Set_plt"
                partnerRole="NShoreAccurals_Set_Request_Set_role"/>
                <partnerLink name="NShoreAccurals_Submit_Set"
                partnerLinkType="ns5:NShoreAccurals_Submit_Set_plt"
                partnerRole="NShoreAccurals_Submit_Set_role"/>
                <partnerLink name="AccrualsNotifications"
                partnerLinkType="ns8:NotificationManagerBPEL_Service"
                partnerRole="NotificationManagerBPEL_ServiceProvider"
                myRole="NotificationManagerBPEL_ServiceRequester"/>
                </partnerLinks>
                <variables>
                <variable name="ReceiveNShoreAccurals_Get_InputVariable"
                messageType="ns1:Get_msg"/>
                <variable name="InvokeNShoreAccurals_Put_InputVariable"
                messageType="ns2:Put_msg"/>
                <variable name="InvokeAccuralsSet_Request_set_NShoreAccurals_Set_Request_Set_InputVariable"
                messageType="ns4:args_in_msg"/>
                <variable name="InvokeAccuralsSet_Request_set_NShoreAccurals_Set_Request_Set_OutputVariable"
                messageType="ns4:args_out_msg"/>
                <variable name="InvokeNShoreAccural_Submit_Set_NShoreAccurals_Submit_Set_InputVariable"
                messageType="ns5:args_in_msg"/>
                <variable name="InvokeNShoreAccural_Submit_Set_NShoreAccurals_Submit_Set_OutputVariable"
                messageType="ns5:args_out_msg"/>
                <variable name="InvokeAccrualsMailer_notify_InputVariable"
                messageType="ns8:NotificationManagerBPEL_ServiceRequestMessage"/>
                </variables>
                <sequence name="main">
                <receive name="ReceiveNShoreAccurals" createInstance="yes"
                variable="ReceiveNShoreAccurals_Get_InputVariable"
                partnerLink="GetNShoreAccurals" portType="ns1:Get_ptt"
                operation="Get"/>
                <assign name="CopyOverAccurals">
                <copy>
                <from variable="ReceiveNShoreAccurals_Get_InputVariable" part="attach"
                query="/ns3:attachmentElement/@href"/>
                <to variable="InvokeNShoreAccurals_Put_InputVariable" part="body"
                query="/ns3:attachmentElement/@href"/>
                </copy>
                </assign>
                <invoke name="InvokeNShoreAccurals"
                inputVariable="InvokeNShoreAccurals_Put_InputVariable"
                partnerLink="PutNShoreAccuralFiles" portType="ns2:Put_ptt"
                operation="Put" bpelx:invokeAsDetail="no"/>
                <wait name="Wait_30_Secs" for="'PT30S'"/>
                <scope name="Scope1">
                <sequence name="Sequence2">
                <assign name="SetConc_Req_Set_Details">
                <copy>
                <from expression="'XXHCC'"/>
                <to variable="InvokeAccuralsSet_Request_set_NShoreAccurals_Set_Request_Set_InputVariable"
                part="InputParameters"
                query="/ns6:InputParameters/ns6:APPLICATION"/>
                </copy>
                <copy>
                <from expression="'FNDRSSUB1013'"/>
                <to variable="InvokeAccuralsSet_Request_set_NShoreAccurals_Set_Request_Set_InputVariable"
                part="InputParameters"
                query="/ns6:InputParameters/ns6:REQUEST_SET"/>
                </copy>
                </assign>
                <flow name="Flow1">
                <sequence name="Sequence">
                <invoke name="InvokeAccuralsSet_Request_set"
                inputVariable="InvokeAccuralsSet_Request_set_NShoreAccurals_Set_Request_Set_InputVariable"
                outputVariable="InvokeAccuralsSet_Request_set_NShoreAccurals_Set_Request_Set_OutputVariable"
                partnerLink="NShoreAccurals_Set_Request_Set"
                portType="ns4:NShoreAccurals_Set_Request_Set_ptt"
                operation="NShoreAccurals_Set_Request_Set"
                bpelx:invokeAsDetail="no"/>
                </sequence>
                <sequence name="Sequence1">
                <invoke name="InvokeNShoreAccural_Submit_Set"
                inputVariable="InvokeNShoreAccural_Submit_Set_NShoreAccurals_Submit_Set_InputVariable"
                outputVariable="InvokeNShoreAccural_Submit_Set_NShoreAccurals_Submit_Set_OutputVariable"
                partnerLink="NShoreAccurals_Submit_Set"
                portType="ns5:NShoreAccurals_Submit_Set_ptt"
                operation="NShoreAccurals_Submit_Set"
                bpelx:invokeAsDetail="no"/>
                </sequence>
                </flow>
                </sequence>
                </scope>
                <assign name="AssignAccrualsMailerDetails">
                <copy>
                <from expression="'EMAIL'"/>
                <to variable="InvokeAccrualsMailer_notify_InputVariable" part="payload"
                query="/ns9:processNotificationServiceRequest/ns9:NotificationType"/>
                </copy>
                <copy>
                <from expression="'EmailDBLookup'"/>
                <to variable="InvokeAccrualsMailer_notify_InputVariable" part="payload"
                query="/ns9:processNotificationServiceRequest/ns9:Email/ns9:EmailDetailsLocation"/>
                </copy>
                <copy>
                <from expression="'NShoreAccruals'"/>
                <to variable="InvokeAccrualsMailer_notify_InputVariable" part="payload"
                query="/ns9:processNotificationServiceRequest/ns9:Email/ns9:EmailType"/>
                </copy>
                <copy>
                <from expression="'NShore Accrual Service Completion Details'"/>
                <to variable="InvokeAccrualsMailer_notify_InputVariable" part="payload"
                query="/ns9:processNotificationServiceRequest/ns9:Email/ns9:EmailInfo/ns9:subject"/>
                </copy>
                <copy>
                <from expression="concat('NShore Accruals SOA Service completed. The Set request set activity completed with status:',bpws:getVariableData('InvokeAccuralsSet_Request_set_NShoreAccurals_Set_Request_Set_OutputVariable','OutputParameters','/ns6:OutputParameters/ns6:FND_SUBMIT-24SET_REQUEST_SET'),' The Concurrent request have be raised with ID: ',bpws:getVariableData('InvokeNShoreAccural_Submit_Set_NShoreAccurals_Submit_Set_OutputVariable','OutputParameters','/ns7:OutputParameters/ns7:FND_SUBMIT-24SUBMIT_SET'))"/>
                <to variable="InvokeAccrualsMailer_notify_InputVariable" part="payload"
                query="/ns9:processNotificationServiceRequest/ns9:Email/ns9:EmailInfo/ns9:body"/>
                </copy>
                </assign>
                <invoke name="InvokeAccrualsMailer"
                inputVariable="InvokeAccrualsMailer_notify_InputVariable"
                partnerLink="AccrualsNotifications"
                portType="ns8:NotificationManagerBPEL_Service" operation="notify"
                bpelx:invokeAsDetail="no"/>
                </sequence>
                </process>
                • 5. Re: How to invoke concurrent request set from BPEL?
                  Rakesh JS
                  have anyone implemented request set with BPEL..