Use of BPM Sub-Process

Hello Experts,
I'm beginner and I wanna know when we will go for BPM sub process.
I know there are two types of process(embedded and reference), but I wanna know when we will go for embedded sub process and for reference sub process.
If possible please share some examples for both the process.
Thanks in advance.
Regards,
Sriram

You can use embedded sub-process in BPM when the child process (sub-process) is dependent on the parent process. By this it means that the sub-process cannot execute by itself.
An embedded sub-process cannot have start and end events, although it can have other sub-set of events like timer, escalation and boundary events.
You can use a referenced sub-process when you want to re-use an existing process. A referenced process is an independent process, which can exist of its own. If you want to use that existing process in your BPM Process then you can call it using referenced sub-process. Also make note that your main process will wait till the referenced sub-process completes its flow.
Also if you feel that some process can be re-used by others then you can make it as a separate process and use it in the main process using referenced sub-process. This way others can also re-use the sub-process.

Similar Messages

  • Calling BPM Sub Process from another BPM Process - Stuck at Sub Process

    Hi
    JDeveloper 11.1.1.6, BPM 11.1.1.6, WLS 10.3.6
    I am trying to Call a BPM Process from another BPM Process. Both the processes are defined in the same BPM Project.
    Both the Processes have 'None' Start and End activities.
    The 'Parent Process' has a 'Call Activity' which calls the 'Sub Process'.
    The Sub process takes a parameter of payload object as input and returns output (also same payload object)
    I have passed the payload object from parent to sub process in the 'Data Associations'.
    The Start and End activities in the sub process also have the data associations set where I am passing the payload object from parent process to child process.
    When I run the process and see the Enterprise Manager console - Audit Trail / Flow tabs,
    Flow Tab - The progress of the process is showing only till the Calling of the sub process in the Parent Process. It does not show the Sub Process.
    Audit Trail Tab - Shows that the Sub Process is called but has not reached to the End of the Sub process.
    The audit trail does not have links to the sub process activities.
    I cannot see any exceptions as well in the audit trail.
    How can I find out why the process is stuck? Or what is going on in the process?
    Please let me know if my explanation is not clear?
    Thanks for any help
    Regards
    Sameer

    Thanks for replying.
    I have another Sub Process with Start and End events as Message Events and used Send Task and Receive Task (Implementation : Process Call) in the Main process to invoke the sub process asynchronously.
    Then, the Sub Process is shown in the 'Flow Trace' as child of the main process.
    In this particular one, I used 'Call Activity' to call the sub process.
    So the Audit trail is showing the sub process as a child.
    But what I was trying to say is that the audit trail did not have links to the entries in the 'Event' column (in Enterprice manager - instance window). (like Instance entered activity, Instance left activity etc).
    I was intending to use these links to see the payload information and try to debug if there is any problem with the code.
    The actual problem I was trying to say in the post is that, even after the user responds to the activity (User Task - Approval) in the Sub process,
    the audit trail is not proceeding further.
    In the Sub process definition, after the user task, there is End with none implementation.
    Hope it is clear now.
    Thanks and Regards
    Sameer

  • Use of BPM for processing XML message

    I have got a requirement for updating X-number and X- status into the SAP system from a non SAP system. I am getting the message which contains both these values in the form of xml and using HTTP and should be posted as 2 different IDOCs at the SAP system.
    But the requirement is to post the X-number first and once it is updated X-status should be posted based on the number.
    Assuming that X-number is available first and the status next in the non SAP system can we use BPM and if so how what needs to be done to make sure status doesnt update before number.

    Hi,
    Proceed as follows:
    1) Receive the X-message
    2) have  a transformation step....and map only the x-number into the target IDOC
    3) have a synchronous send step....why a sync send....because in that you can get the confirmation for success/failure of your x-number upload....this is only if you want a confirmation...this will make sure that your x-number is updated first.....
    4) now if you do not want to have a response back then...have a transformation step to map the x-status to your IDOC...then have a async send step...
    5)
    a)If sync send used: then you can have a condition like check the status of upload of x-number and if successful then send the x-status.
    b) if failure then you can resend the x-number message.
    c) if async send then you can directly send your x-status message.
    Steps 3, 5(a), 5(b) can be avoided if async commn is used. If you want that your BPM runs somewhat faster then you can avoid the transformation steps....instead you can use the mappings in the respective interface detemination.
    Regards,
    Abhishek.

  • BPM parllel processing

    HI,
    i am using a BPM to process bulk messages at a time, but all the messages are send to one queue and messages are getting processed very slowly from the queue.
    i have 2 questions here,
    1)for what reason, Queue is processing messages very slowly?
    2)is there any way that BPM keeps the messges in the different queues ???
    Thank You,
    Madhav

    Hi Madhav,
    Refer to the parallel processing section of this document:
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/c0968c17-8cca-2b10-7594-c9105e304be0?quicklink=index&overridelayout=true
    Thanks!

  • BPM 11g Workspace Audit Trail not showing Sub process inner activities

    Hi all,
    I have been developing some BPM Process in JDev 11.1.1.5 and have deployed them in BPM Suite 11.1.1.5 over Windows Server 2003. I've found the following and would like to hear your opinion:
    1- The Process audit trail in BPM 11g Workspace shows the activities of the process but the Sub-Process call activity appears as just a single activity and you can not see the inner activities of the sub-process... making impossible to track the sub-process.
    2- In the EM Instance trail you can track the subprocess activities, but they appear wrong; diffrent names, diferente types (ex: interactive activity shown as service call)..etc..
    Are these known issues? is this the expected behaviour? Is it just some configuration I missed?
    Thanks for your time.

    For anyone with the same question, I got this from Oracle support about both questions:
    1- I checked with our Engineering team and regarding the expanding of the subprocess activity , it is planned to be released in 12g. So right now , it is a work in progress feature being addressed by our developers.
    2- Thanks a lot. I have reported a bug 12909848 to our Engineering team. You can track the status of the bug from the SR.

  • Sub Processes -- BPM

    Hi,
        I have designed a Process havins  a sub process and a human Activity , the output of the subprocess will be displayed in the human activity. the subprocess has a human activity and a automated activity .the automated activity returns a string which needs to be passed out of the sub process .
    I have assigned a corresponding process to the sub process., but still i could not get any output from the sub process. the end process event is assigned to default service in the subprocess.the output from the subprocess is always the empty response.
    Also i could not expand the subprocess in the main process.
    How can i acheive communication between main process and sub process.
    Thanks and Regards
    Fazal

    hi,
        I have changed the  service for the event end in the sub process from default service to some other service which will get the input the automated activity and gives the response .
    now i am able to get the Output response for the sub process in the main process , but when i try to deploy , i am getting deployment exception
    full trace of the exception :
    com.sap.engine.services.dc.api.deploy.DeployException: [ERROR CODE DPL.DCAPI.1027] DeploymentException.
    Reason: ASJ.dpl_dc.001085 [ERROR CODE DPL.DC.3077] An error occurred while deploying the deployment item [demo.sap.com_submission_process].
    ; nested exception is:
         com.sap.engine.services.dc.gd.DeliveryException: <Localization failed: ResourceBundle='com.sap.engine.services.dc.util.exception.resources.ResourceBundle', ID='dc_1207', Arguments: ['demo.sap.com_submission_process']> : Can't find bundle for base name com.sap.engine.services.dc.util.exception.resources.ResourceBundle, locale en
         at com.sap.engine.services.dc.api.deploy.impl.DeployProcessorImpl.deployItems(DeployProcessorImpl.java:715)
         at com.sap.engine.services.dc.api.deploy.impl.DeployProcessorImpl.deploy(DeployProcessorImpl.java:226)
         at com.sap.ide.eclipse.deployer.dc.deploy.DeployProcessor70.deploy(DeployProcessor70.java:112)
         at com.sap.ide.tools.services.dc.EngineDcDeployService.deployFiles(EngineDcDeployService.java:251)
         at com.sap.ide.tools.services.dc.EngineDcDeployService.deploy(EngineDcDeployService.java:125)
         at com.sap.ide.dii05.ui.internal.actions.dc.DcDeployAction$3.run(DcDeployAction.java:224)
         at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
    Caused by: com.sap.engine.services.dc.cm.deploy.DeploymentException: ASJ.dpl_dc.001085 [ERROR CODE DPL.DC.3077] An error occurred while deploying the deployment item [demo.sap.com_submission_process].
    ; nested exception is:
         com.sap.engine.services.dc.gd.DeliveryException: <Localization failed: ResourceBundle='com.sap.engine.services.dc.util.exception.resources.ResourceBundle', ID='dc_1207', Arguments: ['demo.sap.com_submission_process']> : Can't find bundle for base name com.sap.engine.services.dc.util.exception.resources.ResourceBundle, locale en
         at com.sap.engine.services.dc.cm.deploy.impl.OnlineDeployProcessor.performDelivery(OnlineDeployProcessor.java:188)
         at com.sap.engine.services.dc.cm.deploy.impl.BulkOnlineDeployProcessor.deploy(BulkOnlineDeployProcessor.java:57)
         at com.sap.engine.services.dc.cm.deploy.impl.AbstractDeployProcessor$DeployProcessorHelper.visit(AbstractDeployProcessor.java:229)
         at com.sap.engine.services.dc.cm.deploy.impl.DeploymentItemImpl.accept(DeploymentItemImpl.java:83)
         at com.sap.engine.services.dc.cm.deploy.impl.AbstractDeployProcessor.deploy(AbstractDeployProcessor.java:91)
         at com.sap.engine.services.dc.cm.deploy.impl.DeployThread.run(DeployThread.java:34)
         at com.sap.engine.core.thread.execution.Executable.run(Executable.java:109)
         at com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:314)
    Caused by: com.sap.engine.services.dc.gd.DeliveryException: <Localization failed: ResourceBundle='com.sap.engine.services.dc.util.exception.resources.ResourceBundle', ID='dc_1207', Arguments: ['demo.sap.com_submission_process']> : Can't find bundle for base name com.sap.engine.services.dc.util.exception.resources.ResourceBundle, locale en
         at com.sap.engine.services.dc.gd.impl.ApplicationDeployer.deploy(ApplicationDeployer.java:118)
         at com.sap.engine.services.dc.gd.impl.InitialApplicationDeployer.performDeployment(InitialApplicationDeployer.java:108)
         at com.sap.engine.services.dc.gd.impl.InitialGenericDeliveryImpl.deploy(InitialGenericDeliveryImpl.java:51)
         at com.sap.engine.services.dc.cm.deploy.impl.OnlineDeployProcessor.performDelivery(OnlineDeployProcessor.java:163)
         ... 7 more
    Caused by: com.sap.engine.services.deploy.server.utils.DSRemoteException: [ERROR CODE DPL.DS.6193] Error while ; nested exception is:
         com.sap.engine.services.deploy.container.DeploymentException:
         at com.sap.engine.services.deploy.server.DeployServiceImpl.catchDeploymentExceptionWithDSRem(DeployServiceImpl.java:4714)
         at com.sap.engine.services.deploy.server.DeployServiceImpl.deploy(DeployServiceImpl.java:325)
         at com.sap.engine.services.dc.gd.impl.ApplicationDeployer.deploy(ApplicationDeployer.java:104)
         ... 10 more
    Caused by: com.sap.engine.services.deploy.container.DeploymentException:
         at com.sap.engine.services.webservices.server.deploy.WebServicesDeployManager.deploy(WebServicesDeployManager.java:269)
         at com.sap.engine.services.deploy.server.utils.container.ContainerWrapper.deploy(ContainerWrapper.java:195)
         at com.sap.engine.services.deploy.server.application.DeploymentTransaction.makeComponents(DeploymentTransaction.java:526)
         at com.sap.engine.services.deploy.server.application.DeployUtilTransaction.commonBegin(DeployUtilTransaction.java:249)
         at com.sap.engine.services.deploy.server.application.DeploymentTransaction.begin(DeploymentTransaction.java:188)
         at com.sap.engine.services.deploy.server.application.ApplicationTransaction.makeAllPhasesOnOneServer(ApplicationTransaction.java:493)
         at com.sap.engine.services.deploy.server.application.ApplicationTransaction.makeAllPhases(ApplicationTransaction.java:544)
         at com.sap.engine.services.deploy.server.DeployServiceImpl.makeGlobalTransaction(DeployServiceImpl.java:2536)
         at com.sap.engine.services.deploy.server.DeployServiceImpl.deploy(DeployServiceImpl.java:378)
         at com.sap.engine.services.deploy.server.DeployServiceImpl.deploy(DeployServiceImpl.java:323)
         ... 11 more
    Caused by: java.lang.Exception: com.sap.engine.interfaces.webservices.server.deploy.WSDeploymentException: Exception occured during web services deployment. Unable to extract web services deployment data for archive demo.sap.com~_submission_process.wsar, application demo.sap.com/submission_process.
         at com.sap.engine.services.webservices.server.deploy.ws.WSDeployProcess.extractWebServicesJ2EEEngineDescriptors(WSDeployProcess.java:293)
         at com.sap.engine.services.webservices.server.deploy.ws.WSDeployProcess.extractWebServicesJ2EEEngineDescriptors(WSDeployProcess.java:254)
         at com.sap.engine.services.webservices.server.deploy.ws.WSDeployProcess.init(WSDeployProcess.java:149)
         at com.sap.engine.services.webservices.server.deploy.WSBaseAbstractDProcess.makeProcess(WSBaseAbstractDProcess.java:308)
         at com.sap.engine.services.webservices.server.deploy.WebServicesDeployManager.deployWebServices(WebServicesDeployManager.java:1092)
         at com.sap.engine.services.webservices.server.deploy.WebServicesDeployManager.deploy(WebServicesDeployManager.java:257)
         at com.sap.engine.services.deploy.server.utils.container.ContainerWrapper.deploy(ContainerWrapper.java:195)
         at com.sap.engine.services.deploy.server.application.DeploymentTransaction.makeComponents(DeploymentTransaction.java:526)
         at com.sap.engine.services.deploy.server.application.DeployUtilTransaction.commonBegin(DeployUtilTransaction.java:249)
         at com.sap.engine.services.deploy.server.application.DeploymentTransaction.begin(DeploymentTransaction.java:188)
         at com.sap.engine.services.deploy.server.application.ApplicationTransaction.makeAllPhasesOnOneServer(ApplicationTransaction.java:493)
         at com.sap.engine.services.deploy.server.application.ApplicationTransaction.makeAllPhases(ApplicationTransaction.java:544)
         at com.sap.engine.services.deploy.server.DeployServiceImpl.makeGlobalTransaction(DeployServiceImpl.java:2536)
         at com.sap.engine.services.deploy.server.DeployServiceImpl.deploy(DeployServiceImpl.java:378)
         at com.sap.engine.services.deploy.server.DeployServiceImpl.deploy(DeployServiceImpl.java:323)
         at com.sap.engine.services.dc.gd.impl.ApplicationDeployer.deploy(ApplicationDeployer.java:104)
         at com.sap.engine.services.dc.gd.impl.InitialApplicationDeployer.performDeployment(InitialApplicationDeployer.java:108)
         at com.sap.engine.services.dc.gd.impl.InitialGenericDeliveryImpl.deploy(InitialGenericDeliveryImpl.java:51)
         at com.sap.engine.services.dc.cm.deploy.impl.OnlineDeployProcessor.performDelivery(OnlineDeployProcessor.java:163)
         at com.sap.engine.services.dc.cm.deploy.impl.BulkOnlineDeployProcessor.deploy(BulkOnlineDeployProcessor.java:57)
         at com.sap.engine.services.dc.cm.deploy.impl.AbstractDeployProcessor$DeployProcessorHelper.visit(AbstractDeployProcessor.java:229)
         at com.sap.engine.services.dc.cm.deploy.impl.DeploymentItemImpl.accept(DeploymentItemImpl.java:83)
         at com.sap.engine.services.dc.cm.deploy.impl.AbstractDeployProcessor.deploy(AbstractDeployProcessor.java:91)
         at com.sap.engine.services.dc.cm.deploy.impl.DeployThread.run(DeployThread.java:34)
         at com.sap.engine.core.thread.execution.Executable.run(Executable.java:109)
         at com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:314)
    Caused by: com.sap.engine.services.webservices.jaxrpc.exceptions.ProxyGeneratorException: Proxy Generator Error. The passed WSDL is not supported by the proxy generator. It does not contain any WSDL bindings. 
         at com.sap.engine.services.webservices.espbase.client.ProxyGeneratorNew.initInterfaceMappings(ProxyGeneratorNew.java:994)
         at com.sap.engine.services.webservices.espbase.client.ProxyGeneratorNew.generateAll(ProxyGeneratorNew.java:425)
         at com.sap.engine.services.webservices.server.deploy.ws.WSAltConvertor.convertServiceAltDescriptor(WSAltConvertor.java:208)
         at com.sap.engine.services.webservices.server.deploy.ws.WSAltConvertor.convertServiceAltDescriptors(WSAltConvertor.java:182)
         at com.sap.engine.services.webservices.server.deploy.ws.WSAltConvertor.convertWebServicesJ2EEEngineAltDescriptors(WSAltConvertor.java:162)
         at com.sap.engine.services.webservices.server.deploy.ws.WSAltConvertor.convert(WSAltConvertor.java:111)
         at com.sap.engine.services.webservices.server.deploy.ws.WSDeployProcess.extractWebServicesJ2EEEngineDescriptors(WSDeployProcess.java:276)
         ... 25 more
         at com.sap.engine.interfaces.webservices.server.deploy.WSDeploymentException.writeReplace(WSDeploymentException.java:60)
         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:585)
         at java.io.ObjectStreamClass.invokeWriteReplace(ObjectStreamClass.java:1004)
         at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1036)
         at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)
         at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:391)
         at com.sap.exception.BaseExceptionInfo.writeObject(BaseExceptionInfo.java:1033)
         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:585)
         at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:917)
         at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1339)
         at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
         at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
         at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)
         at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347)
         at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
         at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
         at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)
         at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347)
         at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
         at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
         at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)
         at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:391)
         at com.sap.exception.BaseExceptionInfo.writeObject(BaseExceptionInfo.java:1033)
         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:585)
         at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:917)
         at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1339)
         at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
         at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
         at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)
         at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347)
         at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
         at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
         at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)
         at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347)
         at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
         at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
         at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302)
         at com.sap.engine.services.rmi_p4.DispatchImpl.throwException(DispatchImpl.java:135)
         at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:358)
         at com.sap.engine.services.rmi_p4.server.ServerDispatchImpl.run(ServerDispatchImpl.java:69)
         at com.sap.engine.services.rmi_p4.P4Message.process(P4Message.java:67)
         at com.sap.engine.services.rmi_p4.P4Message.execute(P4Message.java:41)
         at com.sap.engine.services.cross.fca.FCAConnectorImpl.executeRequest(FCAConnectorImpl.java:977)
         at com.sap.engine.services.rmi_p4.P4Message.process(P4Message.java:57)
         at com.sap.engine.services.cross.fca.MessageReader.run(MessageReader.java:55)
         ... 2 more
    Please help on this
    Thanks and Regards
    Edited by: Fazal Ahamed on Dec 17, 2008 3:22 PM

  • BPM 11g Process Hierarchy?

    Hi,
    In the BPA Suite I can define a process hierachy by assigning a BPMN process diagram to a function like a subprocess.
    (How) can I do this in the BPM Suite 11g?

    I believe you have to use the Send/Receive tasks now in order to call a reusable subprocess in BPM 11g. This requires the sub process to be message based where as the Call activity allowed non message based processes.

  • Sub-Process Main Process Web-Service

    Hi,
    I have a main Process and a sub-process inside this main process.
    I have a Wait activity inside this sub-process, which waits for an external call from another system to call my Web-Service at this Wait activity. This Web-Service is built as Process As a Web-Service Call.
    But I fail to get any information back from this Wait Activity which keeps waiting for the call from the external system which calls my Web-Service at this Wait Activity.
    But the external system is calling my Web-Service and it gets a error notification from BPM..
    Why is that so?
    Is it because its a sub-process inside a main process or something else?

    Did you use PAPI code inside your web service or did u just use PAPI Web Services ( like did u just pressed the button Launch PAPI Web Services ) and it created the WSDL for you and u used it to create the client?
    I am using the latest version of OBPM..
    Oracle 10.3.10
    Can you let me know what do u mean by PAPI interface.. Is it the PAPI code of is the PAPI Web Service which is built by BPM automatically and could be used?
    Edited by: user8707382 on Sep 10, 2009 9:00 AM

  • Sub process

    Hi,
    I would like to know if there is a way to call a subprocess or a different process from global interactive activity. The requirement is. once the subprocess is called, the user should not be able to execute the parent instance. Only when the instance returns from the sub process, the user should be able to proceed. Please suggest.
    Thanks in advance

    Hi,
    Since the Global Interactive has instance access there'd be a lot of moving parts. I apologize in advance - I have completely obsessed over this.
    I put a project out on http://www.4shared.com/file/117294058/7685a219/InvokeSubProcessFromGlobalInteractive.html that you could download and import to Oracle BPM 10g to see what you think.
    I obsessed over this a little too much (ok - way too much), but it was an interesting challenge. If you're not comfortable with this, it's completely my fault that I've made it seem too difficult. Not that hard, but it takes a knowledge of Message Wait activities, creating Correlations, sending notifications and creating instances in another process using logic (ok - maybe you should try to talk the customer out of going this route and lean them towards a simple SubFlow activity).
    Here's what I did to get this to work if you're curious. If your Global Interactive activity has instance access, you could have checkbox in the UI that is presented when you invoke the Global Interactive. The checkbox would be tied to a Boolean attribute in the instance's BPM Object. I'm calling this attribute "spawnSubprocessAndLockParent" in this scenario. This will act as a flag to tell the Global Interactive to spawn a subprocess and to lock the parent instance if checked.
    Here are the steps I did:
    In the parent process:
    1) created a correlation as the first activity in the process and terminated the correlation in the last activity in the process
    2) added the Boolean "spawnSubprocessAndLockParent" attribute to my instance's BPM Object
    3) created a presentation with this attribute
    4) added this presentation to the Global Interactive's screenflow
    5) inside the same screenflow, if the user checks the checkbox it goes to a new Automatic task in the screenflow that uses logic to create an instance in the child process.
    6) changed the screenflow for the parent process's activity to detect if the "spawnSubprocessAndLockParent" Boolean variable is true when it enters the Screenflow. If it is false, end users can edit the normal UI presentations and submit in the normal way it does now. If it is true, however, end users can only bring up read only UI presentations and have them exit the Screenflow via an Automatic task that has the logic "action = CANCEL".
    7) in the parent process, added a Message Wait activity that has no transitions coming into it or going out of it. Its "Runtime" property setting for "Waits for" need to be set to set to "External" and the "Allows interruptions" property needs to be checked.
    8) in the parent process, added an Automatic activity with just this one line of logic: "action = SKIP"
    9) added an unconditional transition from the Message Wait activity to the Automatic activity added in step 8
    In the spawned child subprocess:
    10) in the subprocess spawned in step 5, just before it reaches the End activity add an automatic activity that sends a notification to the parent process's Message Wait activity.
    Hope this helps - again sorry for obsessing,
    Dan

  • BPM Integration Process that correlates 2 messages.

    I have an BPM Integration Process defined that collects Deliveries for an Order number and when an Invoice arrives for the same Order number it merges the messages to produce another file that is for a 3rd party.
    I correctly receive in the Delivery and the Invoice u2013 I can see them in SXMB_MONI with a checkered flag and they are directed to my BPM.  I can see this also in SXMB_MONI_BPE.  I can also see the correlation correctly found in both messages.  No error is reported by either SXBM.. transaction.
    However it does nothing except receive the files u2013 I am expecting a transformation and then the send step to execute.
    Start >  CollectIDOCBlock  > Collect Fork
    Fork1
    Infinite Loop for Receive Delivery (Start process) and Collect in Container. It uses and activates Correlation OrderNum
    Fork2
    Receive Invoice uses Correlation OrderNum (it does not activate the correlation)
    At the end of the Fork (when Delivery collected and an Invoice is received)
    It will then do the Transformation and Send Step.
    <End
    I have tried various combinations of the correlations and which receive step starts the process.  Any ideas ?

    Yes that did work.  Now does somebody know what exactly the FORK parameter number of branches does ?
    The SAPHelp is here
    http://help.sap.com/saphelp_nw04/helpdata/en/08/16163ff8519a06e10000000a114084/frameset.htm
    +You can specify the required number of branches and then define whether the process must run through all branches, or just a particular number of branches+
    But it does not explain why you need to have 1 as necessary branches rather than 2.  There are 2 branches in the FORK - so why does having 1 as the parameter work and not 2.
    In this SAPHelp for Message-Dependent Loop
    http://help.sap.com/saphelp_nw04/helpdata/en/08/16163ff8519a06e10000000a114084/frameset.htm
    it indicates to me that the parameter should be 2.
    BUT the SAP pattern (BpmPatternCollectMessage) I have used as a base for mine has this as 1 and not 2.
    Why is 1 the correct value and not 2 ??

  • BPM for Processing Multiple records in a file

    Hello All:
    I using BPM to process Goods issue using BAPI BAPI_GOODSMVT_CREATE. The BPM setps are as
    Step 1  Receive Request from Asyn File Interface
    Step 2  Transformation Map to Bapi request Structure
    Step 3  Send Sync Request to Bapi
    Step 4  Transformation Map Bapi Response to file
    Step 5  Send Asyn Message to File
    My input file  is as fallows
    H,20050613,20050613,9999,HEAD TXT,03,
    P,000001000108,0001,COMMON,2,EA,1000,1011,261,ITM TXT,
    H,20050613,20050613,9999,HEAD TXT,03,
    P,000001000108,0001,COMMON,3,EA,1000,1011,261,ITM TXT,
    The output file is as fallows
      <?xml version="1.0" encoding="UTF-8" ?>
    - <ns1:MT_SAP_RESPONSE_ITMS_DATA xmlns:ns1="http://testcompany.com/xi/ITMS">
    - <BAPI_STR>
    - <HEADER>
      <MAT_DOC>4900000696</MAT_DOC>
      </HEADER>
      </BAPI_STR>
      </ns1:MT_SAP_RESPONSE_ITMS_DATA>
    The problem I am facing is although my file has 2 records of goods issue data (Header and Item data) , the BPM processes only one record (Header and Item) and creates a material doc in SAP and outputs a file with the material doc number as above. Ideally I would like the XI system to process both the records and produce 2 material docs as output .
    Also my input file adapter has been picking up both the records as this is visible in the SXMB_MONITOR logs.
    Do I need to introduce a loop in the BPM ?. If so can any can any body give me an example or point me in the right direction.
    Many Thanks
    TBH

    Udo:
    <b>you need a mapping splitting one message with multiple entries into multiple messages with one entry, which you put into a multiple line BPM container.</b>
       Are you implying loop Step 1 Receive Request from Asyn File Interface and collect them into a multiline container ?. How does the loop know how many times to loop.
    Would appreciate your comments
    Thorsten

  • Can we define a function in a sub process?

    Hi ,
    I want to know whether we can define a function in a sub-process ? coz I see only notifications defined in the sub_process in seeded oracle workflows .
    also highlight if we are the running the workflow from developer studio do we need call the main process first or the sub-process first ?
    Regards,
    Shashk

    Hello Shashk,
    Yes functions can be used in sub-processes. If you are creating a custom function, it must be defined in a specific fashion to work with WF. See the Workflow Developer Guide for your version. 2.6.2 available here:
    [http://download.oracle.com/docs/cd/B10501_01/workflow.920/a95265/toc.htm|http://download.oracle.com/docs/cd/B10501_01/workflow.920/a95265/toc.htm]
    Not sure about Developer Studio per se but typically you can run any process in a workflow that is marked 'runnable'.
    - James

  • Question on BPM Integration Process

    Hello Experts,
    I am following this BPM article which is very similar to what I want to do.
    We are using PI 7.1 without EP1.
    I have an XML to IDoc scenario where my XML's external definition resides in a seperate SCV (SCV1) and my imported IDoc resides in a seperate SCV (SCV2). We did this to follow the Sender-Mapper-Receiver model. We have a different SCV for Mapping which holds MM and OM (SCV3). Now, I have my Abstract Service Interfaces for external definition in SCV1 and abstract interface for IDoc in SCV2. And, Integration Process in SCV1 (no good reason). But, now I am not able to access SCV2 abstract interfaces (IDoc abs) in my Integration Process since it sits in SCV1. I am thinking if I have to crate my external definitions, idoc, abstract service interfaces, MM, OM and Ingtration Process in one SCV instead of having them in three different SCVs. I was trying to follow sender-mapper-reciever model but seems like for BPM you need to have all your stuff in one SCV. Please help if you know how to resolve this issue wiithout getting rid of sender-mapper-receiver concept.
    Thank you in advance for your help.
    - Mayur

    Thanks Jose. I think creating dependencies is a away to go. I also found this this where Stefan suggested same thing.
    So, now Sender (SCV1) and Receiver (SCV3) have been added under Mapper (SCV2)'s dependencies list and I will have my BPM Integration Process in the SCV2 which will give me access to both sender and receiver abstract service interfaces.
    Re: Software Component Dependencies PI 7.1
    Thanks,
    Mayur

  • Error in 'eMail Response - Process Message' --- Error running sub-process 'eMail Response - Create Activity' at step 'Create Activity Process'.(

    Hi,
    When I was simulating the 'eMail Response - Process Message', I had been getting the below error when entering to 'Create activity Process' step.(provided all the inputs per testmode.xml file)
    Error running sub-process 'eMail Response - Create Activity' at step 'Create Activity Process'.(SBL-BPR-00183)
    I increased the log level to 5 and got the below message in log file
    ObjMgrBusServiceLog    InvokeMethod    4    0000000251b51f04:0    2013-06-10 01:30:12    Begin: Business Service 'XML Hierarchy Converter' invoke method: 'DocToHier' at 12cc4240
    ObjMgrBusServiceLog    Error    1    0000000251b51f04:0    2013-06-10 01:30:12    (xmlcnvsv.cpp (548)) SBL-EAI-00246: XML Hierarchy Converter error - empty input message, expecting an XML document in <Value> of input arguments
    I was wondering I could not find 'XML Hierarchy Converter' business service in 'eMail Response - Process Message' and 'eMail Response - Create Activity' sub process.
    Can any body help me out in this regard.
    Thanks in advance..
    Jagadeesh

    Hi Naresh,
    yes, I am using the delete polling strategy. Here is the .jca file:
    <adapter-config name="Pozadavky" adapter="Database Adapter" wsdlLocation="Pozadavky.wsdl" xmlns="http://platform.integration.oracle/blocks/adapter/fw/metadata">
    <connection-factory location="eis/DB/PozadavkyConn" UIConnectionName="PozadavkyConn" adapterRef=""/>
    <endpoint-activation portType="Pozadavky_ptt" operation="receive">
    <activation-spec className="oracle.tip.adapter.db.DBActivationSpec">
    <property name="DescriptorName" value="Pozadavky.Pozadavky"/>
    <property name="QueryName" value="PozadavkySelect"/>
    <property name="MappingsMetaDataURL" value="Pozadavky-or-mappings.xml"/>
    <property name="PollingStrategy" value="DeletePollingStrategy"/>
    <property name="PollingInterval" value="120"/>
    <property name="MaxRaiseSize" value="1"/>
    <property name="MaxTransactionSize" value="10"/>
    <property name="NumberOfThreads" value="1"/>
    <property name="ReturnSingleResultSet" value="false"/>
    </activation-spec>
    </endpoint-activation>
    </adapter-config>

  • Unable to start from sub process

    The scenario of our application is :
    We have multiple processes,each again having multiple activities inside them.
    There is one main processes and the others are all sub processes.
    The main process looks something like below :
    Start->Sub-process1->Sub-Process2->Sub-Process3->Sub-Process4->Sub-Process5->End
    My requirement is to start the main process from Sub-Process2,rather than the usual way of instantiating the main process.
    I tried configuring Sub-Process2 as an alternative Start (in the Work Flow Builder),but that doesnt seem to be working.
    I am using Java APIs to interact with Oracle Work Flow.
    Any ideas ??
    Amit.

    One possibility is to call WF_ENGINE.CompleteActivity() if you need to start a process with an activity node that is mid-stream in a process thread and not at the beginning of a process thread. The activity node you specify as the beginning of the process must be set to 'Start' in the Node tab of its property page.
    http://download-west.oracle.com/docs/cd/B10501_01/workflow.920/a95265/wfapi42.htm#comact

Maybe you are looking for