Aborting Processes In Bpm

Hello,
We have been using Oracle BM Studio(Version: 10.3.1.0, Build: #94375 to be precise). I have a problem I'd like to share, I have been searching the forums, but could not find a solution to this. I have a grab activity, which grabs a parent instance. When the instance is grabbed, I am trying to kill te child processes of it one by one, via some notification wait at the child process, with the optional method of the grab activity. (The child pocess does the same job, if needed). But whatever I did, I could not get the message to be receieved at the child process. There is no exception thrown, I keep sending the message by 'Notification.send', but nothing happens. I used different versions of Notification.send with different number of parameters, I used the external, parent, internal, child approaches in the message wait activity. But I still could not succeed in making the child process be aborted. I dont want the parent of all processes to be aborted, it must end normally, but the children be killed when the grabbed parent instance is routed. Below is a portion of my code that I have been playing with for a while. Any idea what I might be doing wrong?
if(children != null && children.keys != null) {
     foreach (child in children.keys) {
          if( !children[child].indexOf(SOME_CONSTANT) == 0 ) {
               try{
                    String instanceId = children[child].split(delim : "@")[0];
                    Notification.send(instanceId, "NotificationWaitSelfAbortParent", "In", null);
                    '5s'.sleep();
                    Notification.send(children[child], "NotificationWaitSelfAbortParent", "In", null);
                    }catch(Throwable t){
                              t.printStackTrace();
                              throw t;
Regards
Edited by: user10745623 on 27.Ara.2011 05:40
Edited by: user10745623 on 27.Ara.2011 05:41

Hi,
The other way didn't work because you are using an optional method. Optional methods are read-only (that is to say, that the transaction will be rolled back). When you send the notification using the Notification.send component, the notification and child instance processing is getting done in the same transaction.
I guess that now you are using PAPI to grab the child instances. PAPI components open a new transaction per operation. Therefore, PAPI invocations will succeed even if you are invoking them in a read-only method.
Hope this helps,
Ariel

Similar Messages

  • How to kill an instance process in BPM studio 6.0

    Hi i'm Fabio.
    I'm working on BPM Studio 6.0 and i need to complete a task.
    I have an instance id process, and i need to create a new process in order to kill this istance id.
    I read how to create a PAPI client (http://download.oracle.com/docs/cd/E13154_01/bpm/docs65/papi/index.html?t=modules/papi/c_Writing_Your_First_Java_PAPI_Program.html) but it doesn't work for my purpose.
    First of all, i understood that i have to follow these step:
    * Import the required libraries.
    * Create a process service.
    * Create a process service session.
    * Perform operations with PAPI.
    * Close the process service.
    Now, i'm working on my xpdl file and i'm using the Standard Module "Fuego" and my plan is to create a process servcie, a process service session and then operate with PAPI.
    But using the PAPI module include in the BPM studio 6.0 i'm no able to load the library for the session import fuego.papi.ProcessServiceSession;
    so i'm worng something. Could you tell me how can menage this problem? Really do i need a session? Is possible to abort an istance process in BPM studio or i need to load my ear project in Enterprise environment and then kill my instance process? Thanks, regards Fabio.

    Thanks Dan, i read your suggestion but my boss was to implement a different solution:
    package hp.abort.process;
    import fuego.boot.*;
    import fuego.papi.CommunicationException;
    import fuego.papi.InstanceInfo;
    import fuego.papi.InstanceId;
    import fuego.papi.ProcessService;
    import fuego.papi.ProcessServiceSession;
    import fuego.papi.OperationException;
    import java.util.Properties;
    import javax.transaction.*;
    import java.lang.Exception;
    public class AbortProcess {
    public static void main(String[] args) {
    /////////////////// API Initialization ///////////////////
    Properties configuration = new Properties();
    configuration.setProperty(ProcessService.DIRECTORY_ID, "default");
    configuration.setProperty(ProcessService.PROJECT_PATH, "C:/Documents and Settings/Administrator/AlbpmWorkspace/EarOMatic");
    configuration.setProperty(ProcessService.WORKING_FOLDER, "C:/tmp");
    try {
    ProcessService processService = ProcessService.create(configuration);
    /////////////////// Establish a session ///////////////////
    ProcessServiceSession session = processService.createSession("adminEarOMatic", "adminEarOMatic", "localhost");
    /////////////////// Operate with PAPI ///////////////////
    for (String processId : session.processesGetIds()) {
    System.out.println("\n Process: " + processId);
    for (InstanceInfo instance : session.processGetInstances(processId) ) {
    System.out.println(" -> " + instance.getId());
    System.out.println("ActivityName -> " + instance.getActivityName());
    System.out.println("ActivityId -> "+ instance.getActivityId());
    //Problema: nn vuole ActivityId ma Process Id
    session.activityAbort("/CreateEurekaSRService#Default-1.0/eomWait","/CreateEurekaSRService#Default-1.0/1/0@EarOMatic");
    /////////////////// Close the session ///////////////////
    session.close();
    /////////////////// Release API Resources ///////////////////
    processService.close();
    } catch (CommunicationException e) {
    System.out.println("Could not connect to Directory Service");
    e.printStackTrace();
    } catch (OperationException e) {
    System.out.println("Could not perform the requested operation");
    e.printStackTrace();
    Now, i got the following exception:
    Local folder C:/tmp\system\Schema-4154784351820594721\catalogs found.
    Loading catalogs from local folder: C:/tmp\system\Schema-4154784351820594721\catalogs
    0 jars found locally.
    [CatalogMgrCache] =======================
    Registering CatalogMgr [EarOMatic] ...CatalogManagerCache 10390580:
    Managers:
    Counters:
    [CatalogMgrCache] =======================
    CatalogMgr [EarOMatic] REGISTERED!CatalogManagerCache 10390580:
    Managers:
    {EarOMatic=fuego.util.LocalCatalogManager@106df95}
    Counters:
    Process: /AbortInstanceProcessService#Default-1.0
    Unreachable Engine Tolerance (seconds):
    by default: 0
    to be used: 0
    This papi client will not cache exceptions which imply that an engine could not be reached.
    Changing InstanceCache Entry[processId=/AbortInstanceProcessService#Default-1.0, state=0] to 3
    Changing InstanceCache Entry[processId=/AbortInstanceProcessService#Default-1.0, state=3] to 2
    Process: /CreateEurekaSRService#Default-1.0
    Changing InstanceCache Entry[processId=/CreateEurekaSRService#Default-1.0, state=0] to 3
    Changing InstanceCache Entry[processId=/CreateEurekaSRService#Default-1.0, state=3] to 2
    -> /CreateEurekaSRService#Default-1.0/1/0
    ActivityName -> eomWait
    Adding local catalog for project: 1
    ActivityId -> /CreateEurekaSRService#Default-1.0/eomWait
    Exception in thread "main" fuego.server.exception.InvalidIdRuntimeException: Invalid identification.
    Detail:Invalid identification (Identification value: /CreateEurekaSRService#Default-1.0/eomWait)
         at fuego.server.ActiveProcessImpl.getActivity(ActiveProcessImpl.java:632)
         at fuego.server.execution.microactivity.AbstractProcessExecutionHandler.getExecutableActivity(AbstractProcessExecutionHandler.java:58)
         at fuego.server.AbstractProcessBean.abortActivity(AbstractProcessBean.java:3262)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
         at java.lang.reflect.Method.invoke(Unknown Source)
         at fuego.lang.JavaClass.invokeMethod(JavaClass.java:1410)
         at fuego.lang.JavaObject.invoke(JavaObject.java:227)
         at fuego.component.Message.process(Message.java:587)
         at fuego.component.ExecutionThread.processMessage(ExecutionThread.java:778)
         at fuego.component.ExecutionThread.processBatch(ExecutionThread.java:753)
         at fuego.component.ExecutionThread.doProcessBatch(ExecutionThread.java:142)
         at fuego.component.ExecutionThread.doProcessBatch(ExecutionThread.java:134)
         at fuego.fengine.FEngineProcessBean.processBatch(FEngineProcessBean.java:248)
         at fuego.component.ExecutionThread.work(ExecutionThread.java:837)
         at fuego.component.ExecutionThread.run(ExecutionThread.java:408)
         at fuego.component.CustomExecution.next(CustomExecution.java:172)
         at fuego.component.ExecutorClient.invoke(ExecutorClient.java:118)
         at fuego.papi.impl.rmi.ProcessControlProxy.abortActivity(ProcessControlProxy.java:407)
         at fuego.papi.impl.rmi.ProcessControlProxyWrapper.abortActivity(ProcessControlProxyWrapper.java:683)
         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 fuego.papi.impl.AbstractProcessControlHandler.invokeInternal(AbstractProcessControlHandler.java:72)
         at fuego.papi.impl.rmi.RMIProcessControlHandler.invoke(RMIProcessControlHandler.java:165)
         at $Proxy23.abortActivity(Unknown Source)
         at fuego.papi.impl.ProcessInstanceOperation.abortActivity(ProcessInstanceOperation.java:726)
         at fuego.papi.impl.ProcessServiceSessionImpl.activityAbort(ProcessServiceSessionImpl.java:184)
         at hp.abort.process.AbortProcess.main(AbortProcess.java:45)
    Caused by: fuego.metadata.exception.InvalidIdException: Activity '/CreateEurekaSRService#Default-1.0/eomWait' was not found in process '/CreateEurekaSRService#Default-1.0'.
         at fuego.metadata.Process.getActivity(Process.java:261)
         at fuego.server.ActiveProcessImpl.getActivity(ActiveProcessImpl.java:629)
         at fuego.server.execution.microactivity.AbstractProcessExecutionHandler.getExecutableActivity(AbstractProcessExecutionHandler.java:58)
         at fuego.server.AbstractProcessBean.abortActivity(AbstractProcessBean.java:3262)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
         at java.lang.reflect.Method.invoke(Unknown Source)
         at fuego.lang.JavaClass.invokeMethod(JavaClass.java:1410)
         at fuego.lang.JavaObject.invoke(JavaObject.java:227)
         at fuego.component.Message.process(Message.java:587)
         at fuego.component.ExecutionThread.processMessage(ExecutionThread.java:778)
         at fuego.component.ExecutionThread.processBatch(ExecutionThread.java:753)
         at fuego.component.ExecutionThread.doProcessBatch(ExecutionThread.java:142)
         at fuego.component.ExecutionThread.doProcessBatch(ExecutionThread.java:134)
         at fuego.fengine.FEngineProcessBean.processBatch(FEngineProcessBean.java:248)
         at fuego.component.ExecutionThread.work(ExecutionThread.java:837)
         at fuego.component.ExecutionThread.run(ExecutionThread.java:408)
    I understood that tha activity id's format is not valid, but i obtained it just using the following function: instance.getActivityId()
    Are you abel to give me some suggestion? Is it good this method to kill instance?
    Thanks a lot, regard Fabio.

  • BPM-70830 while deploying process in BPM Composer

    Hi,
    I got these errors When I try to deploy a bpm project which created and developed in BPM Composer(11.1.1.6.0). Can anyone help me? Thanks a lot!
    There're already 34 processes successfully deployed with BPM Composer before this error occur, however, I can not deployed any new process with BPM Composer now.
    === DeploymentResult ====================================================
    Type: VALIDATION
    MSG: BPM-70830: Deployment validation failed. Cause: An unexpected error has occurred during deployment validation
    1.- Fault severity: ERROR should fail: true
    java.lang.NullPointerException
    === DeploymentResult End ================================================
    [2012-05-03T00:06:54.355+08:00] [soa_server1] [NOTIFICATION] [] [oracle.bpm.composer.beans.toolbar.SarExportDialogBean] [tid: [ACTIVE].ExecuteThread: '1' for
    queue: 'weblogic.kernel.Default (self-tuning)'] [userId: weblogic] [ecid: 11d1def534ea1be0:34621b1:1370e472584:-8000-0000000000000320,0] [APP: BPMComposer]
    SEVERITY: ERROR
    [2012-05-03T00:06:54.355+08:00] [soa_server1] [ERROR] [] [oracle.bpm.composer.beans.toolbar.SarExportDialogBean] [tid: [ACTIVE].ExecuteThread: '1' for queue:
    'weblogic.kernel.Default (self-tuning)'] [userId: weblogic] [ecid: 11d1def534ea1be0:34621b1:1370e472584:-8000-0000000000000320,0] [APP: BPMComposer] [[
    java.lang.NullPointerException
         at oracle.soa.scac.ValidateComposite.checkInterfaceInWsdlManager(ValidateComposite.java:388)
         at oracle.soa.scac.ValidateComposite.validateComponentTypeReferences(ValidateComposite.java:980)
         at oracle.soa.scac.ValidateComposite.validateComponentTypeServicesReferences(ValidateComposite.java:1012)
         at oracle.soa.scac.ValidateComposite.doValidation0(ValidateComposite.java:502)
         at oracle.soa.scac.ValidateComposite.doValidation(ValidateComposite.java:481)
         at oracle.bpm.deployment.impl.ScacDeploymentService.validateProject(ScacDeploymentService.java:223)
         at oracle.bpm.deployment.impl.ScacDeploymentService.generateSarFile(ScacDeploymentService.java:85)
         at oracle.bpm.pml.service.impl.ComposerMetadataServiceImpl.generateSarFile(ComposerMetadataServiceImpl.java:369)
         at oracle.bpm.composer.service.ProjectDeploymentService.generateSarFile(ProjectDeploymentService.java:288)
         at oracle.bpm.composer.beans.toolbar.SarExportDialogBean.generateSarFile(SarExportDialogBean.java:563)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
         at java.lang.reflect.Method.invoke(Method.java:611)
         at com.sun.el.parser.AstValue.invoke(AstValue.java:187)
         at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297)
         at org.apache.myfaces.trinidadinternal.taglib.listener.FileDownloadActionListener.processAction(FileDownloadActionListener.java:121)
         at oracle.adfinternal.view.faces.event.rich.FileDownloadActionListener.processAction(FileDownloadActionListener.java:77)
         at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.broadcast(UIXComponentBase.java:675)
         at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:179)
         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 oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.broadcastEvents(LifecycleImpl.java:1018)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:386)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:194)
         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:301)
         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.bpm.web.security.filter.SessionTimeoutFilter.doFilter(SessionTimeoutFilter.java:56)
         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.bpm.composer.filter.MdsInitializationFilter.doFilter(MdsInitializationFilter.java:54)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.security.wls.filter.SSOSessionSynchronizationFilter.doFilter(SSOSessionSynchronizationFilter.java:291)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:179)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.bpm.composer.filter.OpenedProjectCheckFilter.doFilter(OpenedProjectCheckFilter.java:53)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.bpm.composer.filter.UrlHandlerFilter.doFilter(UrlHandlerFilter.java:40)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adfinternal.view.faces.caching.filter.AdfFacesCachingFilter.doFilter(AdfFacesCachingFilter.java:137)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
         at java.security.AccessController.doPrivileged(AccessController.java:284)
         at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
         at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)
         at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
         at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
         at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
         at java.security.AccessController.doPrivileged(AccessController.java:284)
         at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
         at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)
         at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
         at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
         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:139)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
         at java.security.AccessController.doPrivileged(AccessController.java:284)
         at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
         at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)
         at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
         at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
         at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
         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:3730)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3696)
         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:2273)
         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)
         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
    Wishes
    Eleven Xu
    Edited by: Eleven.Xu on 2012-5-2 上午9:52

    You're right, I restarted the server again and again...
    I have just opened the sr in metalink, it has been confirmed as a bug. Unfortunately there's no way to workaround. What I can do now is waiting for the solution.

  • BPEL Process in BPM Studio

    Hello,
    First, are there any examples, tutorials, or documentation on how to create and run a BPEL process within BPM Studio (5.7) ?
    I've gotten quite a ways by trial and error, but am having trouble running / testing out the process.
    I've tried doing a Process->Generate Process Interface and Process->Run but nothing happens in BPM Studio when these are performed. What else do i need to do to test out my BPEL process with external webservice ?
    Here's the steps i've taken so far.
    1. Developed a simple external webservice with netbeans (JAX-WS).
    2. Generated WSDL and XSD with wsgen executable.
    3. Developed WSDL & XSD for BPEL Process request & reply.
    4. Created a new project within BPM Studio.
    5. Created a new module under "Catalog" for wsdl introspection.
    6. Cataloged webservice component with local wsdl/xsd files.
    7. Configured the Server configuration generated under the "External Resources" to point to the webservice host.
    8. Configured the web service under "External Resources" to point to the webservice endpoint on the host (Server configuration)
    9. Created a new BPEL Process.
    10. Created new Instance variables for the process input and output as "component" type that point to the introspected request & response types.
    11. Assigned the port type & method of the BPEL Receive to the introspected service defined in #3.
    12. Assinged the input variable to the request variable created in #10.
    13. Assigned port type & method & output variable to the BPEL reply.
    14. Created a BPEL Invoke node between Request & Reply.
    15. Assigned port type & method on the Invoke node to instrospected web service defined in #2.
    16. Created instance variables for input & output of invoke node based on introspected request & reply
    17. Assigned input & output.
    Once all of this was complete, doing a Process->Check Design yeilded no errors or warnings.
    Thanks for any help,
    Chris

    Hello,
    First, are there any examples, tutorials, or documentation on how to create and run a BPEL process within BPM Studio (5.7) ?
    I've gotten quite a ways by trial and error, but am having trouble running / testing out the process.
    I've tried doing a Process->Generate Process Interface and Process->Run but nothing happens in BPM Studio when these are performed. What else do i need to do to test out my BPEL process with external webservice ?
    Here's the steps i've taken so far.
    1. Developed a simple external webservice with netbeans (JAX-WS).
    2. Generated WSDL and XSD with wsgen executable.
    3. Developed WSDL & XSD for BPEL Process request & reply.
    4. Created a new project within BPM Studio.
    5. Created a new module under "Catalog" for wsdl introspection.
    6. Cataloged webservice component with local wsdl/xsd files.
    7. Configured the Server configuration generated under the "External Resources" to point to the webservice host.
    8. Configured the web service under "External Resources" to point to the webservice endpoint on the host (Server configuration)
    9. Created a new BPEL Process.
    10. Created new Instance variables for the process input and output as "component" type that point to the introspected request & response types.
    11. Assigned the port type & method of the BPEL Receive to the introspected service defined in #3.
    12. Assinged the input variable to the request variable created in #10.
    13. Assigned port type & method & output variable to the BPEL reply.
    14. Created a BPEL Invoke node between Request & Reply.
    15. Assigned port type & method on the Invoke node to instrospected web service defined in #2.
    16. Created instance variables for input & output of invoke node based on introspected request & reply
    17. Assigned input & output.
    Once all of this was complete, doing a Process->Check Design yeilded no errors or warnings.
    Thanks for any help,
    Chris

  • Bussiness Process, Integration Process, cc-BPM, BPM

    Hello Everybody!!! Please help me!
    1) In XI, Business Process = Integration Process = cc-BPM = BPM ??? Are these four the same thing?
    2) Please tell me if I'm wrong: we have two types of message exchange in XI, stateless (through simple message exchange) and (ii) statefull (with BPM). There is no other type, ok?
    thank you
    Julio

    Hi Julio,
    This is an excerpt from one of the posts:-
    BPM- Business Process Management- in XI BPM and ccBPM interchangeably used. for more on BPM- as an SAP standpoint or Business Process level - -/people/thomas.volmering/blog/2005/09/21/welcome-to-the-new-bpm-corner
    ccBPM- Cross Component BPM -
    https://sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/xi/archive-xi_ppts_internal_etc/sap%20netweaver%20rig%20webinar%20-%20cross-component%20business%20process%20management%20with%20xi%203.0.pdf
    http://help.sap.com/saphelp_nw2004s/helpdata/en/3c/831620a4f1044dba38b370f77835cc/frameset.htm
    Hope this helps.
    Regards.
    Praveen

  • How to start a new process in BPM

    There are many ways to start a new process in BPM.However I was wondering whether there is any specific way to kick off an instance in the process with the help of PAPI from external systems.I would be thankful if someone could advise.

    Check the PAPI Javadoc & Samples in the [enterprise_install_dir]/client/papi/ directory.
    Basically, you must:
    a) create a Process Service object
    service = ProcessService.create(properties);
    b) create a PAPI session with a participant
    session = service.createSession(user, pass, "localhost");
    c) create an instance:
    instance = session.createProcessInstance("/Orders", "BeginIn", arguments);
    d) destroy the session
    session.close();
    Hope this helps!
    Fernando

  • How to create automatic timer process in BPM?

    Can anyone tell me how to create an automatic timer process in BPM?
    Can I just create an manual process, and drag the timer event into the swam lane, can connect the timer to the service and then to the end event?
    Thank you

    Hi,
    You can make use of Global Automatic activity to kick off your process at a particular time. Place a Global Automatic activity in your process and right click on the Global Automatic activity and select Properties --> General --> Global Automatic Type: Automatic Schedule, Automatic Schedule: <Configure with your requirement>.
    Else you can make use of due transition/timer activity to get your task done.
    Bibhu

  • ALV grid abort processing, if wrong value

    Hello,
    i've a editable alv grid.
    Is it possible to abort at event data_changed/data_changed_finished, if an value is wrong (f.e. to high < 500), and write the old value back.
    Best regards,
    TomSd

    Hello Thomas
    The sample report <b>ZUS_SDN_ALVGRID_EDITABLE_10</b> provides a possible (perhaps not the most elegant) solution for your problem.
    *& Report  ZUS_SDN_ALVGRID_EDITABLE_10
    *& Description: Reset false values entered in editable ALV list
    *&              to original values
    *& Example:     Column SORT_KEY allows values from '000'-'150'
    *               -> reset if value > '010'
    *& Thread: ALV grid abort processing, if wrong value
    *& Link: https:||<a class="jive_macro jive_macro_thread" href="" __jive_macro_name="thread" modifiedtitle="true" __default_attr="669430"></a>
    REPORT  zus_sdn_alvgrid_editable_10.
    TYPE-POOLS: abap.
    INCLUDE <icon>.  " NOTE: replace by TYPE-POOLS: icon. on >= 6.20
    DATA:
      gd_repid         TYPE syrepid,
      gd_okcode        TYPE sy-ucomm,
      gs_layout        TYPE lvc_s_layo,
      gt_fcat          TYPE lvc_t_fcat,
      go_docking       TYPE REF TO cl_gui_docking_container,
      go_grid          TYPE REF TO cl_gui_alv_grid.
    TYPES: BEGIN OF ty_s_outtab.
    INCLUDE TYPE knb1.
    TYPES: END OF ty_s_outtab.
    TYPES: ty_t_outtab    TYPE STANDARD TABLE OF ty_s_outtab
                          WITH DEFAULT KEY.
    DATA:
      gt_outtab        TYPE ty_t_outtab,
      gt_outtab_pbo    TYPE ty_t_outtab.
    *       CLASS lcl_eventhandler DEFINITION
    CLASS lcl_eventhandler DEFINITION.
      PUBLIC SECTION.
        CLASS-DATA:
          mo_data_changed    TYPE REF TO cl_alv_changed_data_protocol.
        CLASS-METHODS:
          handle_data_changed
            FOR EVENT data_changed OF cl_gui_alv_grid
            IMPORTING
              er_data_changed
              e_onf4
              e_onf4_before
              e_onf4_after
              e_ucomm
              sender,
          handle_data_changed_finished
            FOR EVENT data_changed_finished OF cl_gui_alv_grid
            IMPORTING
              e_modified
              et_good_cells,
          handle_user_command
            FOR EVENT user_command OF cl_gui_alv_grid
            IMPORTING
              e_ucomm,
          handle_toolbar
            FOR EVENT toolbar OF cl_gui_alv_grid
            IMPORTING
              e_object
              e_interactive.
    ENDCLASS.                    "lcl_eventhandler DEFINITION
    *       CLASS lcl_eventhandler IMPLEMENTATION
    CLASS lcl_eventhandler IMPLEMENTATION.
      METHOD handle_data_changed.
    *   define local data
        DATA:
          ld_idx     TYPE i,
          ls_cell    TYPE lvc_s_modi,
          ls_msg     TYPE symsg.
        FIELD-SYMBOLS:
          <lt_outtab>  TYPE ty_t_outtab,
          <ls_outtab>  TYPE ty_s_outtab.
        ASSIGN er_data_changed->mp_mod_rows->* TO <lt_outtab>.
        LOOP AT er_data_changed->mt_mod_cells INTO ls_cell
                WHERE ( fieldname = 'ZUAWA' ).
          ld_idx = syst-tabix.
          IF ( ls_cell-value <= '010' ).
            READ TABLE <lt_outtab> ASSIGNING <ls_outtab> INDEX ld_idx.
            MODIFY gt_outtab FROM <ls_outtab> INDEX ls_cell-row_id. " !!!
          ELSE.
            CLEAR: ls_msg.
            ls_msg-msgv1 = 'Value'.
            ls_msg-msgv2 = ls_cell-value.
            ls_msg-msgv3 = 'too high (> 010)'.
            CALL METHOD er_data_changed->add_protocol_entry
              EXPORTING
                 i_msgid     = '00'
                 i_msgty     = 'E'
                 i_msgno     = '398'
                 i_msgv1     = ls_msg-msgv1
                 i_msgv2     = ls_msg-msgv2
                 i_msgv3     = ls_msg-msgv3
    *             I_MSGV4     =
                 i_fieldname = ls_cell-fieldname
                 i_row_id    = ls_cell-row_id
                 i_tabix     = ls_cell-tabix.
            DELETE er_data_changed->mt_mod_cells  INDEX ld_idx.
            DELETE er_data_changed->mt_good_cells INDEX ld_idx.
          ENDIF.
        ENDLOOP.
        IF ( syst-subrc = 0 ).
          er_data_changed->display_protocol( ).
        ENDIF.
    **    cl_gui_cfw=>set_new_ok_code( 'REFRESH' ). " not possible on 4.6c
        CALL METHOD cl_gui_cfw=>set_new_ok_code
          EXPORTING
            new_code = 'DUMMY'
    *      IMPORTING
    *        RC       =
      ENDMETHOD.                    "handle_data_changed
      METHOD handle_data_changed_finished.
    *   define local data
        DATA:
          ls_outtab      TYPE ty_s_outtab,
          ls_cell        TYPE lvc_s_modi.
      ENDMETHOD.                    "handle_data_changed_finished
      METHOD handle_user_command.
      ENDMETHOD.                    "handle_user_command
      METHOD handle_toolbar.
    *   define local data
        DATA:
          ls_button    TYPE stb_button.
        ls_button-function  = 'DEFAULT'.
        ls_button-icon      = icon_mass_change.
        ls_button-quickinfo = 'Set default value for column'.
        APPEND ls_button TO e_object->mt_toolbar.
      ENDMETHOD.                    "handle_toolbar
    ENDCLASS.                    "lcl_eventhandler IMPLEMENTATION
    START-OF-SELECTION.
      SELECT * FROM knb1 INTO TABLE gt_outtab UP TO 20 ROWS
        WHERE bukrs = '1000'.
      gt_outtab_pbo = gt_outtab.  " store PBO data
    * Create docking container
      CREATE OBJECT go_docking
        EXPORTING
          parent                      = cl_gui_container=>screen0
          ratio                       = 90
        EXCEPTIONS
          OTHERS                      = 6.
      IF sy-subrc <> 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    * Create ALV grid
      CREATE OBJECT go_grid
        EXPORTING
          i_parent          = go_docking
        EXCEPTIONS
          OTHERS            = 5.
      IF sy-subrc <> 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    * Build fieldcatalog
      PERFORM build_fieldcatalog.
      PERFORM set_layout.
      SET HANDLER:
        lcl_eventhandler=>handle_toolbar               FOR go_grid,
        lcl_eventhandler=>handle_data_changed          FOR go_grid,
        lcl_eventhandler=>handle_data_changed_finished FOR go_grid.
    * Display data
      CALL METHOD go_grid->set_table_for_first_display
        EXPORTING
          is_layout       = gs_layout
        CHANGING
          it_outtab       = gt_outtab
          it_fieldcatalog = gt_fcat
        EXCEPTIONS
          OTHERS          = 4.
      IF sy-subrc <> 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      go_grid->set_toolbar_interactive( ).
      CALL METHOD go_grid->register_edit_event
        EXPORTING
          i_event_id = cl_gui_alv_grid=>mc_evt_enter
        EXCEPTIONS
          error      = 1
          OTHERS     = 2.
      IF sy-subrc <> 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    * Link the docking container to the target dynpro
      gd_repid = syst-repid.
      CALL METHOD go_docking->link
        EXPORTING
          repid                       = gd_repid
          dynnr                       = '0100'
    *      CONTAINER                   =
        EXCEPTIONS
          OTHERS                      = 4.
      IF sy-subrc <> 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    * ok-code field = GD_OKCODE
      CALL SCREEN '0100'.
    * Flow logic (no elements on screen):
    *  PROCESS BEFORE OUTPUT.
    *    MODULE STATUS_0100.
    *  PROCESS AFTER INPUT.
    *    MODULE USER_COMMAND_0100.
    END-OF-SELECTION.
    *&      Module  STATUS_0100  OUTPUT
    *       text
    MODULE status_0100 OUTPUT.
      SET PF-STATUS 'STATUS_0100'.
    *  SET TITLEBAR 'xxx'.
      CALL METHOD go_grid->refresh_table_display
    *      EXPORTING
    *        IS_STABLE      =
    *        I_SOFT_REFRESH =
        EXCEPTIONS
          finished       = 1
          OTHERS         = 2.
      IF sy-subrc <> 0.
    *     MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDMODULE.                 " STATUS_0100  OUTPUT
    *&      Module  USER_COMMAND_0100  INPUT
    *       text
    MODULE user_command_0100 INPUT.
      TRANSLATE gd_okcode TO UPPER CASE.
    * Fetch changes on ALV grid
      go_grid->check_changed_data( ).
      CASE gd_okcode.
        WHEN 'BACK' OR
             'END'  OR
             'CANC'.
          SET SCREEN 0. LEAVE SCREEN.
        WHEN 'DUMMY'. " do nothing but pass PAI -> list refresh at PBO
        WHEN OTHERS.
      ENDCASE.
      CLEAR: gd_okcode.
    ENDMODULE.                 " USER_COMMAND_0100  INPUT
    *&      Form  BUILD_FIELDCATALOG_KNB1
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM build_fieldcatalog .
    * define local data
      DATA:
        ls_fcat        TYPE lvc_s_fcat.
      CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
        EXPORTING
    *     I_BUFFER_ACTIVE              =
          i_structure_name             = 'KNB1'
    *     I_CLIENT_NEVER_DISPLAY       = 'X'
    *     I_BYPASSING_BUFFER           =
    *     I_INTERNAL_TABNAME           =
        CHANGING
          ct_fieldcat                  = gt_fcat
        EXCEPTIONS
          inconsistent_interface       = 1
          program_error                = 2
          OTHERS                       = 3.
      IF sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      " Set required fields editable
      LOOP AT gt_fcat INTO ls_fcat
                      WHERE ( fieldname = 'ZUAWA'  OR
                              fieldname = 'BUSAB' ).
        ls_fcat-edit    = abap_true.
        MODIFY gt_fcat FROM ls_fcat.
      ENDLOOP.
      DELETE gt_fcat WHERE ( fieldname = 'ZINRT' ).
    ENDFORM.                    " BUILD_FIELDCATALOG
    *&      Form  SET_LAYOUT
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM set_layout .
      CLEAR: gs_layout.
      gs_layout-cwidth_opt = abap_true.
      gs_layout-zebra      = abap_true.
    **  gs_layout-stylefname = 'CELLTAB'.
    ENDFORM.                    " SET_LAYOUT
    Regards,
      Uwe

  • Human interaction process using BPM

    Hi Experts,
    Is it possible to create Human interaction process using BPM?
    Regards
    Sara

    An insurance analyst has access only access to the backend, not to XI. So send the message to the backend, start a workflow here and send a message back.
    You can use ABAP proxy to implement this.
    In PI 7.1 there will be human interaction in BPM, but this requires a user in the PI system and is useful only for administrators, as there are no application data in PI which enables the user to decide, whether he should approve or reject the request.
    In PI 3.0/7.0 there is no user interaction in BPM.
    Regards
    Stefan

  • Migration of GP process to BPM

    Hi,
        Can we migrate our GP process to BPM ? Do we have any migration tool available? If yes then how and if no then do we have to re-modell our whole process in BPM?
    Regards,
    Pratik

    Hi Pratik,
    unfortunately, there is no migration tool to autmatically convert GP processes to SAP NetWeaver BPM.
    You will have to re-model them with SAP NetWeaver BPM manually.
    Best regards,
    Oliver

  • BPM 11g - Abort process instance

    I have a BPMN process that does 3 things:
    1. Calls the third party interface
    2. Starts the Timer proces aynchronously. This timer process is to make sure that the task gets picked up up an admin user (Human Task);if we don't get the response within the agreed time limit.
    3. Awaits the response.
    So, when we get the response back from the backend system, it should do 2 things:
    1. Stop the timer process.This could either be in a waiting state (i.e if the timer hasn't expired) or might have moved to the Human task step.
    2. Notify the awaiting instance so that it is then moved onto the next step in the process.
    I have used correlationId to match the request and response.It is working (with Send/Receive task) and notifying the waiting instance, but I am not sure how to abort the running Timer process.
    Should I use an interrupting event subprocess in my Timer process, that if called should throw an exception. This will then move the Timer process instance to the Exception handling flow and that will lead to the termination of the process instance, or is there a better way to achieve this. TaskService is the other option I thought of, but to achieve this simple thing, I thought that would be an overkill. Is there a re-commended pattern to meet this requirement.
    Thanks
    Raj
    Edited by: user588394 on 21-Feb-2013 09:04

    Hi Raj
    1. Terminate means you want to End that Process no matter where it is at any instance of time. Say if I have BPM Process with 10 SwimLanes it can be at any of the Lanes with any User. I am taking simple Example with Human Tasks, but you can apply for other component like Timer servces etc.
    2. I hope you are aware of 2 things specially for Human Tasks: Action named "Withdraw" and a role named "Process Owner". For any human task, under Actions menu you should See a Withdraw option. You can code your application to capture this output using XOR gateway and if outcome is "WITHDRAW" directly end the process and go to End Node. If you have many places like this, there is easy way instead of running wires eveywhere. Create a simple throw even that goes to End Node. And after each human task check outcome if Withdraw, that that error, which will end the process. I hope you got the point.
    b) The reason I mentioned Process Owner is, generally I do NOT give Withdraw control to each User who can work on any Task. If accidentally that User do this action, thats it. The process ENDS and you can never retriive it back. So under .TASK file, I preven Withdraw action to Asssignee and Instead give this action only to OWNER (Process Owner). Process owner is like admin who can pretty much see any tasks and I would give him all the permissions like these Withdraw, Reassing, Suspend etc etc. This gives more controlled power to your application. Anyhow, in bpm workspace, login as process owner and search for any Task aged for long time and jus Withdraw it.
    You can do all the above using APIs also as far as you have Withdraw action going to the End Node.
    If your requirement is something else, ignore above notes. But still you can think along the above lines, if all you want is to Kill a Running Process anytime.
    Thanks
    Ravi Jegga

  • How to get the assignees for a specific role in process in BPM 11g

    Hi, Gurus,
    I am using BPM 11g. I am trying to retrieve all the assignees for a a specific role in process. It will be a parameter for a business rule to do further routing rule. But it seems there is no way to get the information. I found that there are Identity Service Functions in Human Task Assignment. But Identity Service Functions are not listed in Business Rule Activity, neither listed in other activities except Human Task Assignment. I cannot get the assignees in my process.
    Is there any way to get all the assignees for a role? I also tried to retrieve the assignees out engine with Worklist API, but it cannot get either. Actually we can get all the assignees information in automatic activity in OBPM 10g. Maybe I am still not familiar with 11g. Any advice is appreciated.
    FYI:
    My scenario:
    Suppose we have a role named ApprovalTeam. In this role, there will be several different department manager (BPM User) added in the role through Workspace. At run time, a request (With department info) with go through the approval by ApprovalTeam. A Business Rule Activity with decide which department manager will approve this request. Different department request will be dispatched dedicate managers, not all the managers in the role. I have an external JavaBean to get the department information from LDAP. To do the routing, I also need know all the department managers (BPM User) in the ApprovalTeam role. Then I can compare which department manager is matched with the request and assign the task to him.
    Thanks a lot,
    James
    Edited by: James Piao on May 31, 2010 6:25 PM

    or this?
    SQL> select text from ALL_VIEWS
      2  where VIEW_NAME
      3  ='EMP_VIEW';
    TEXT
    SELECT empno,ename FROM EMP
    WHERE empno=10

  • How to trigger Sequence of processes in BPM

    Hi!  I am trying to implement process sequencing with BPM.Its like i have to trigger a set of processes(say 1,2 &3 ) if certain flag in input msg is set.If the flag is not set then processes (1,2&4 ).
          the procecess should occur in a sequence like ..if 1 is completed then it should send ackgmnt and start the 2nd process.
    If any body has worked on similar scenario , please reply :).
    Srinivas
    Edited by: Srinivas Subramanyam Karnam on Jul 4, 2008 2:16 PM

    I tried using switch control to check the condition (particular element(say JV) in the input msg is 0or 1 ) .But donno how to get ack and based on ack how to start other process.
                 Let me take an example to make things clear.
    say  1st process is creation of batch No.
           2nd  -
    do -
    of sales order.
           3rd -
    do----
    of STO.
           4th -
    do----
    of SOD(SO dispatch).
    If JV element in input msg is 1 ...flow should be like(1->2->4) 
    create BatchNo-> get ack->
    if ack positive(:if ack Negative->end.)->create SO
    ->get ack->if ack positive(:if ack Negative->end.)->create SOD.End.
    If JV =0 say...then similarly 1->2->3 end.
    Not sure if i have to use  while loop .. new to bpm :).Request  to Reply with what controls to be used .
    with due thanks srinivas.:)

  • Business process management (BPM)

    How do business process mangement implmentation related to SAP BASIS guys.

    Hi,
    If you are talking about Solution manager BPM(Business Process Monitoring), its upto you how much you can relate, generally we used to do configuration on based upon inputs from fuctional consultants, so in case you dont have any solution mnaager consultant , you can collect the busness scenario related information and map the business process in solman setup , finally need to configre monitring based on scopes.Maximum input should come from business users to map.
    Hope it will clear ,
    Regards,

  • Permanent error in BPE inbound processing for BPM Mesg Split

    Hi Friends,
    i have done the below scenario. i had done everything what theys mentioned in the blog but i am getting the error in smq2 as "Permanent error in BPE inbound processing" sysfail please helpme on this issue.
    Illustration of Multi-Mapping and Message Split using BPM in SAP Exchange Infrastructure

    Hi Uday,
    Please check this blog for your error, This is really interesting. Permanent solution for your question.
    Delivery Modes in BPM.
    Thanks!

Maybe you are looking for

  • Doc. type/item cat.not picking from Purchase Requisition

    Hi, While making purchase order from link with Purchase Requisition, system provides the error message :-      Doc. type/item cat. ZSUP/ (requisition) <-> ZSUP/ (purch. order)      Message no. 06054      Diagnosis      Purchase requisitions of docume

  • How to remove the list of on-line ids that appear when logging on

    I have several people logging on to my computer. Every time I begin my id, a list of all the ids that have been used appears. I want to delete that list and in fact prevent any such list from being kept,

  • Attachment to workitem

    Hi, I need to attach a document to user decision step and i have converted the document to Xstring and generated the SOFM instance. Now i am binding this SOFM instance to "_ATTACH_OBJETCS" of UD step. I am getting the attachment link in UD but when i

  • How to reinstall iPhoto (Lion)?

    Hi Apple Support, At the very first stage, whenever I opened the Mac App Store, there was one update of iPhoto. However, it was impossible to carry on the update after I type in the ID and PSW which I registered my MBA. After this issue, I delete the

  • How to realize summarized display of stock values on storage location level

    Hi all, we have implemented in Release 3.5 a report to analyze Stock values on storage location level according to the "How to...realize summarized display of stock values on storage location level"- paper. The report is running witout problems. Now