Synchronizing on Process Instance Object

Hi,
We have a process web service, which is used to create, notify and update BPM process instances.
This process web service is accessed from Java code.
The java code uses a re-try mechanism to talk to the process web service.
We want this to be changed using wait-notify. But we have only the string value for Process Instance ID.
Can anybody help me on how could we get the BPM process instance object with the Process Instance ID?
I hope for this case we should synchronize on the BPM process Instance Object.
Please find below the current code snippet with re-try which needs to be changed as wait-notify.
for(int i = retryCount; i >= 0; i--) {
try {
sResult = wsClient.notifyUpdate(oEvent, oTG, sInstId);
break;
catch(Exception e) {
if(i == 0) {
throw e;
logger.error(getClass().getName() + " - Failed to call wsClient.notifyUpdate()");
try {
logger.info(getClass().getName() + " - Retrying bpmUpdateProcessInstance ... " + (retryCount - i + 1) + " times in "
+ (System.currentTimeMillis() - startTimeMillis) + " millis.");
Thread.sleep(retryInterval);      
catch(InterruptedException ignore) {
     //silent catch is fine here
}// end for loop

Hi,
Please correct me if I miss-understood your question.
You want to know the process instance Id of a particular BPM process ?
You want to do it through java code or in BPM process layer ?
Which version of OBPM/ALBPM you are using ?
Bibhu

Similar Messages

  • How to pass process instance id to callable object?

    Hello,
    using the SAP NetWeaver CE 7.1 EhP 1 SP 2 I have modeled a small approval workflow with Guided Procedures.
    At runtime, I want to pass the id of the running process instance to a callable object (WD4VC composite view). Is this possible and how?
    Alternatively, is there any way to fetch the id of the current process instance from withina WD4VC composite view?
    Kind regards
    Alexander

    Hi,
    I hope you have executionContext in callable object.
    You can get the ProcessID by calling function "executionContext.getProcessId()".
    Regards,
    Niraj

  • Querying instances in 11g and filtering by process data object

    Hi all,
    I have tried to query instance following this link: http://soadev.blogspot.com/2011/07/querying-oracle-bpm-process-instances.html. It works fine, but I need to filter the instances by a process data object with a String type. Is it possible to do this?

    Thanks Mihai
    Does it mean that if the admin user does not purge instances specifically, the uses will continue to find them by querying for completed instances in their worklist (when they have already taken action for their human task, and when the related BPEL instance is finished)?
    Thanks
    Satinder

  • Create new process instance

    Hi,
    How can we create a new instance of process other than global activity. Is there any way out for this?

    Hi Anuraq,
    Know I'm leaving out a couple, but here are ways you can create a new work item instance in a process:
    1) Here's how you can create an instance in a process using logic in an Automatic activity's method. This uses the "Fuego.Lib.ProcessInstance.create()" method shown below inside a process:
    // "args" is an associative string array (Any[String])
    argsIn as Any[String]
    // this assumes that the Begin activity has two argument variables
    //   named "nameArg" and "amountArg" and you're setting them
    //   to the variables "name" and "amount" respectively
    argsIn["someArgVarName"] = "Hello"
    argsIn["someBpmObject"] = myBpmObject
    // logic here to determine the name of the process to create an instance in
    idOfProcess as String
    idOfProcess = <hard coded string that has the id (not the name of the process to instantiate>
    ProcessInstance.create(processId : "/" + idOfProcess, arguments : argsIn, argumentsSetName : "BeginIn") ProcessInstance is in the Catalog inside Fuego.Lib.
    The processId parameter (the "idOfProcess" variable in the above logic) is the thing I most commonly screw up with this. It is the text you see when you right mouse click the process in the Project Navigator tab -> "Properties". Look at the value in the "Id" field and not the "Name" field here (the name without any space characters). Prefix it with a "/" as is shown here and if you've deployed this using an organization unit (OU) then prefix this to the string also.
    The third parameter is almost always "BeginIn". Begin activities in a process can have many incoming argument mappings, the default is "BeginIn". To see yours, double click the process's Begin activity and look at the mapping's name in the upper left corner of the dialog.
    "argsIn" is the set of incoming argument variables you want passed into the process. A common mistake is to type in the names of the incoming argument variables without the double quotes like this:
    // this will *NOT* work
    argsIn[someArgVarName] = "Hello"
    argsIn[someBpmObject] = myBpmObject
    . . .Here is the correct syntax:
    // this *WILL* work
    argsIn["someArgVarName"] = "Hello"
    argsIn["someBpmObject"] = myBpmObject
    . . .In this example, the process has two argument variables. It does not matter if the incoming argument variables are primitive type arguments (e.g. String, Integer, Decimal...) or BPM Objects, it is always done the same way. In this example, there is a String incoming argument called "someArgVarName" and a BPM Object incoming argument called "someBpmObject".
    2) Global Creation Activity - automatically creates an instance based on human interaction - requires no logic other than to set the argument variables you want passed into the process mapped to instance variables. If it's decided in the screenflow associated with this activity that you do not want to create an instance after all, it just needs to hit an Automatic task in the Global Creations's screenflow that has the logic "action = CANCEL"
    3) Global Interactive Activity - also based on human interaction it can create an instance if inside the Global Interactive activity's screenflow it hits an Automatic task that has the Instance.create() logic shown above.
    4) Using the Fuego.Papi.Instance.create method using logic inside a process.
    5) Using the Java PAPI:
    fuego.papi.Arguments arguments = Arguments.create();
    arguments.putArgument("inArgument", "MyArgument");
    String consolidatedProcessId = "/SomeProcessNameId";
    String argumentSetName = "BeginIn";
    fuego.papi.InstanceInfo instance = session.createProcessInstance(consolidatedProcessId,argumentSetName,arguments);6) Using the PAPI-WS (Web Service) API you can create an instance in a process using a web service call.
    7) A process can create a new instance in another process using the Subflow activity which synchronously creates an instance in a child subprocess and waits for the result to return once the instance in the child subprocess reaches the End activity in the process. From the parent process, you'd match the incoming and outgoing argument variables of the called child process with instance variables in your parent process.
    8) A process can create a new instance in another process using the Process Creation activity which asynchronously creates an instance in a child subprocess (fire and forget) but does not wait for the child to respond to the parent. Once the child process begins, the parent continues its flow. From the parent process, you'd match the incoming argument variables of the called child process with instance variables in your parent process.
    Dan

  • SharePoint Foundation Sandboxed Code Service - Unable to activate worker process proxy object within the worker process

    Issue:
    On a vanilla installation, the sandboxed code service (e.g. SPUCHostService.exe) is started; however, SPUCWorkerProcessProxy.exe and subsequently SPUCWorkerProcess.exe fails to start.
    Resolution/Workarounds attempted:
    Attempted 2 different Load balancing settings – local and remote (i.e. affinity)
    Ensured local computer policy on server for ‘RPC Endpoint Mapper Client Authentication’ and ‘Restrictions for Unauthenticated RPC clients’ is disabled.
    Ensured following key in registry is set properly - HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\RPC
    Attempted to bypass SharePoint’s check for certificate revocations at crl.microsoft.com
    Ensured the service account is added to the respective groups (e.g. Performance Log Users, Performance Monitor Users, IIS_IUSRS, WSS_ADMIN_WPG, WSS_WPG)
    Increased limit of ‘AbnormalProcessTerminationCount’ of SPUserCodeService via Powershell
    We have tried all possible workarounds from the following MSDN reference:
    http://blogs.msdn.com/b/sharepointdev/archive/2011/02/08/error-the-sandboxed-code-execution-request-was-refused-because-the-sandboxed-code-host-service-was-too-busy-to-handle-the-request.aspx
    ULS:
    02/21/2014 05:24:50.64  SPUCHostService.exe (0x0230)  0x0F74  SharePoint Foundation Sandboxed Code Service              fe8a               
    Medium               -  - Unable to activate worker process proxy object within the worker process: ipc://38432b45-2f32-4926-ade2-ef53ae1cd501:7000  
    02/21/2014 05:24:50.64  SPUCHostService.exe (0x0230)  0x0F74  SharePoint Foundation Sandboxed Code Service              fe8c               
    Medium               -  - Error activating the worker process manager instance within the worker process. - Inner Exception: System.InvalidOperationException: Unable to activate worker
    process proxy object within the worker process: ipc://38432b45-2f32-4926-ade2-ef53ae1cd501:7000     at Microsoft.SharePoint.UserCode.SPUserCodeWorkerProcess.CreateWorkerProcessProxies()    
    02/21/2014 05:24:50.64  SPUCHostService.exe (0x0230)  0x0F74  SharePoint Foundation Sandboxed Code Service              ei0t               
    Medium               - Process creation/initialization threw an exception. Stopping this process. "ipc://38432b45-2f32-4926-ade2-ef53ae1cd501:7000"
    02/21/2014 05:24:50.65  SPUCHostService.exe (0x0230)  0x0F74  SharePoint Foundation Sandboxed Code Service             
    fe87                Medium               -  - Error activating the worker process manager instance within
    the worker process. - Starting worker process threw - Inner Exception: System.InvalidOperationException: Unable to activate worker process proxy object within the worker process: ipc://38432b45-2f32-4926-ade2-ef53ae1cd501:7000     at Microsoft.SharePoint.UserCode.SPUserCodeWorkerProcess.CreateWorkerProcessProxies()   
    Any other insights on how I can troubleshoot the issue described?
    Thanks in advance!

    Hi ,
    For resolving your issue , you can do as the followings:
    1. Logged into the Web Server with the Timer Service Account.
    2. Ran the powershell command to check the SID of the account running the spucworkerprocessproxy.exe:  
    $(Get-SPManagedAccount -Identity "THE SERVICE ACCOUNT").Sid.Value
    3. Checked the registry :
    HKEY_USERS\[SID OF THE SERVICE ACCOUNT]\Software\Microsoft\Windows\CurrentVersion\WinTrust\Trust Providers\Software Publishing\State
    4. Changed the value 0x00023c00 to 0x00023e00
    In addition, here are some similar posts for you to take a look at:
    http://social.technet.microsoft.com/Forums/en-US/aae497df-5f0d-4f86-a724-c7b805ccd07f/sharepoint-sandboxed-code-service-troubles?forum=sharepointgeneralprevious
    http://blogs.technet.com/b/operationsguy/archive/2011/01/17/sharepoint-2010-sandboxed-code-solutions-and-web-proxy.aspx
    http://social.msdn.microsoft.com/Forums/en-US/c21e2c3a-a259-4d5f-8071-eff52b7bddc3/issue-sandbox-solution-too-busy-to-handle-the-request?forum=sharepointgeneralprevious
    I hope this helps.
    Thanks,
    Wendy
    Forum Support
    Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact
    [email protected]
    Wendy Li
    TechNet Community Support

  • [OIM 9.1.0.2] Process Instance.Key missing with provisionResource API

    Hi guys,
    I face issue when i provision resource, i checked and it doesn't works because when resource is provisioned ORC_KEY in OIU table is not setted and i don't know why.. Resource is created in "Ready" state.
    This is what i do:
    ResourceData resData = moUserUtility.provisionResource(UserKey, 522);
    String userOiuKey = resData.getOiuKey().toString();
    String userObiKey = resData.getObiKey().toString();
    $logger.debug("provisionUnipassResource - Getting userOiuKey : " + userOiuKey);     
    $logger.debug("provisionUnipassResource - Getting userObiKey : " + userObiKey);     
    //Getting objectKey of userObjectInstanceKey
    String ObjectKey = "";
    String ProcessInstanceKey = "";
    tcResultSet resultSetObjects = moUserUtility.getObjects(UserKey);
    for (int i1 = 0; i1 < resultSetObjects.getRowCount(); i1++) {
    resultSetObjects.goToRow(i1);
    ObjectKey = resultSetObjects.getStringValue("Object Instance.Key");
    ProcessInstanceKey = resultSetObjects.getStringValue("Process Instance.Key");
    if (Long.valueOf(ObjectKey).equals(userObiKey))
    $logger.debug("provisionUnipassResource - ProcessInstanceKey found with value [" + ProcessInstanceKey + "] for ObjectKey [" + ObjectKey + "]");     
    break;
    //Add form datas
    if ("".equals(ProcessInstanceKey)) {
    $logger.debug("provisionUnipassResource - Can't find ProcessInstanceKey");
    return "KO";
    else {
    long LongProcessInstanceKey = Long.valueOf(ProcessInstanceKey);
    moFormInstanceUtility.setProcessFormData(LongProcessInstanceKey, resourcetHash);
    $logger.debug("provisionUnipassResource - Resource has been created");          
    return "OK";
    Is someone can help me? May i do something wrong?
    Thanks in advance for your help
    Edited by: 993041 on 11 mars 2013 05:34
    Edited by: 993041 on 11 mars 2013 05:34

    Hi guys,
    I face issue when i provision resource, i checked and it doesn't works because when resource is provisioned ORC_KEY in OIU table is not setted and i don't know why.. Resource is created in "Ready" state.
    This is what i do:
    ResourceData resData = moUserUtility.provisionResource(UserKey, 522);
    String userOiuKey = resData.getOiuKey().toString();
    String userObiKey = resData.getObiKey().toString();
    $logger.debug("provisionUnipassResource - Getting userOiuKey : " + userOiuKey);     
    $logger.debug("provisionUnipassResource - Getting userObiKey : " + userObiKey);     
    //Getting objectKey of userObjectInstanceKey
    String ObjectKey = "";
    String ProcessInstanceKey = "";
    tcResultSet resultSetObjects = moUserUtility.getObjects(UserKey);
    for (int i1 = 0; i1 < resultSetObjects.getRowCount(); i1++) {
    resultSetObjects.goToRow(i1);
    ObjectKey = resultSetObjects.getStringValue("Object Instance.Key");
    ProcessInstanceKey = resultSetObjects.getStringValue("Process Instance.Key");
    if (Long.valueOf(ObjectKey).equals(userObiKey))
    $logger.debug("provisionUnipassResource - ProcessInstanceKey found with value [" + ProcessInstanceKey + "] for ObjectKey [" + ObjectKey + "]");     
    break;
    //Add form datas
    if ("".equals(ProcessInstanceKey)) {
    $logger.debug("provisionUnipassResource - Can't find ProcessInstanceKey");
    return "KO";
    else {
    long LongProcessInstanceKey = Long.valueOf(ProcessInstanceKey);
    moFormInstanceUtility.setProcessFormData(LongProcessInstanceKey, resourcetHash);
    $logger.debug("provisionUnipassResource - Resource has been created");          
    return "OK";
    Is someone can help me? May i do something wrong?
    Thanks in advance for your help
    Edited by: 993041 on 11 mars 2013 05:34
    Edited by: 993041 on 11 mars 2013 05:34

  • BPEL process instances remain in-flight

    Hi
    I've got a BPEL process (GetUpdates) that calls a couple of other asynchronous BPEL processes (CommitPerson, CommitAddress etc) all of which are deployed on the same SOA server.
    Although most of the processes complete, quite a few instances of the GetUpdates process just sit in an Active state. The BPEL console shows GetUpdates has made a call to another process (for example CommitAddress) and it is apparently waiting for a response. However when I examine the cube_instance table in the dehydration store I can only find 1 instance relating to the particular process. Is that correct?
    If I then try to re-run these particular failed updates (by modifying the sequencing table that GetUpdates polls) the processes complete without any issue (and records exist in the cube_instance table for each of the processes that have been called as well).
    There can be a large number of requests being processed so could this problem be due to the server being under too much load, with the invoke being lost in the ether somewhere?!?
    Is there any documentation that explains the workings of the dehydration store or the BPEL server itself? Also what log files I should be looking at? (I'd really like to understand what's happening under the covers!!!)
    We're currently only using 10.1.3.1 SOA Suite so we should probably upgrade to 10.1.3.3 to see if that fixes anything.
    Any help or advice in the meantime would be great.
    Thanks
    Robin

    Hi
    Just thought I'd update this posting with my findings ....
    I think that the reason the instances remained inflight was simply because they were making calls to synchronous processes that were timing out.
    The default timeout setting for synchronous processes is from what I've read 45 seconds. The process instances that remained inflight were calling other (asynchronous) BPEL processes, that in turn called synchronous E-Business suite APIs that were timing out.
    I managed to simulate the above some time ago with dummy BPEL processes, however I have only just now (after several months of dealing with Oracle Support!) managed to resolve the E-Business suite problem that was causing the synchronous process to timeout.
    Anyway now that is resolved, we no longer get the large number of process instances remaining inflight ... and the updates are now flying along on the server!!
    Therefore the issue was a very simple one - timeout of synchronous processes. Unfortunately it wasn't all that obvious that it was happening in the first place(!) ... and it took some time to trace the actual culprit ... and even longer to find a solution (which we had to come up with ourselves ... without much help from support!) ... hence the amount of time that has passed from me creating this message and replying to it!
    Anyway I hope this post may help others in case they stumble upon a similar issue.

  • Imlementing synchronized access to shared objects in LabVIEW OOP

    Many objects in object-oriented programming have an
    identity, such as a file, a front-panel object or a hardware device.
    These objects cannot be modelled using present LabVOOP (LabVIEW Object Oriented Programming) objects as
    LabVOOP objects gets copied as wire is branched; multiple different
    wires cannot all represent a single object. This issue has been
    irritating the community of LabVIEW users since the release of LabVOOP
    a few months ago.
    It seems that there is a huge demand for
    objects with unique identity i.e. by-reference objects in LabVIEW. The
    central problem why LabVOOP propably doen't have these objects is the
    difficulty in implementing synchronized access to these objects from
    multiple parallel threads. The problem of synchronized access can be
    divided into two different separate topics. First how the
    sychronization should be implemented in LabVIEW runtime engine. Second
    how this synchronization mechanism should be visible to the developer.
    I'd like to start this thread to discuss these two issues.
    Synhronization under the hood
    Traditionally
    people talk about locking of an object and about get-modify-set pass
    when accessing the object. Locking is traditionally done by acquiring a
    mutex for an object, modifying the object and releasing the mutex so
    that other threads can access the same object instance. This is how
    inter-thread synchronization is traditionally done. However, besides
    the mutex based locking, the computer science community has innovated
    also different kinds of methods on synchronizing the access to objects.
    One way to get object-level synchronization is modify the
    runtime engine so that it only allows a single method of a synchronized
    object to run at any time. This mechanism of syncrhonization is
    implemented in programming languages like O'Haskell, which is a Haskell
    variant with object orirented features.
    Also different
    transactional mechanisms[1,2] have been successful. In transactional
    mechanisms multiple threads are allowed to access a synchronized object
    simultaneously. As each method accessing an object commits their
    changes, they verify that no other object has modified the object
    simultaneously in a manner than would break the transaction. If such a
    modification has occurred, everything is rolled back. Transactional
    mechanism do not suit to every possible situation as not everything can
    be rolled back. For example it's hard to roll back an action that
    somehow modifies the physical world.
    User experience of synchronization
    How
    the synchronization is generally implemented in LabVIEW shouldn't be
    directly visible to the developer end-user. The developer should
    understand the general concepts of synchronization to take full
    advantage of it, but in general the synhronization mechanism should be
    integrated directly to development environment. There should in general
    be no need to acquire a mutex by calling acquire mutex node but instead
    the end-user should be able to specify which data needs synhronized
    access in more sophisticated way.
    In the following I propose a
    mechanism of integrating the synchronized access of by-ref objects to
    the development environemnt of LabVIEW. The proposal is very
    preliminary but I hope it breaks the ice and the community would start
    innovating in how should NI implement the syncrhonization support in
    the user interface of LabVIEW.
    Wire level synchronization
    Only
    methods can access object private data members. In synchronized access
    to the object, it's the methods accessing the private data members that
    need to be synchronized. The private data members are accessed by
    applying unbundle node to the class wire and data is written back to
    the object using bundle node.
    What I propose is the following.
    An unbundle node could either be normal or "synchronized". A
    synchronized unbundle would guarantee the access to the private data
    members in synchronized manner. All data wires originating from
    synchronized unbundle would be of synchronized type, in a little
    similar manner as a dynamic dispatch wire is of special dynamic
    dispatch type. Such a wire must evetually be connected to a bundle
    node. When the wire is bundled back to the originating object, the
    synchronization requirement is released.
    These synchronized
    wires would look somewhat different from normal wires so that the
    developer instantly knows that the wire is synchronized. The developer
    can branch the wire, but only one wire branch can own the synchronized
    type. The developer could easily select which wire would be
    syncrhonized by Ctrl+clicking the wire. Such a wire can be considered
    as a combination of a data and a mutex, even though mutexes don't need
    to be the underlying synchronization method. The wire just guarantees
    that there is a mechanism in the runtime engine that makes sure the
    access to the wire data is synchronized.
    There is a need to wire
    data originating from a non-synchronized wire to a synchronized wire so
    that it can replace the private data member of the class. This is
    accomplished with a new node similar to bundle node, that would allow
    replacing the data in a syncrhonized wire with some data originating
    from a non-synchronized wire.
    The synchronized wire can be
    connected to a front panel controls of special syncrhonized type. This
    way the synchronized wire can originate from a method and allow passing
    the synchronized data to the calling VI and back to another method.
    This is practical for example in a situation when the developer wants
    to run different analyzes to a data class but don't want to rewrite all
    the existing data analysis tools as class members. So the developers
    writes a syncrhonization acquiring getData method that let's the
    calling VI to access the syncrhonized data. Then the developer passes
    this data to an analysis VI and passes the result back to a setData
    method that writes the result back to the class wire.
    There
    will probably be technical problems in allowing the user to connect
    such a synchronized wire to all existing VIs since these VIs. Therefore
    the programming model for all nodes that do not support such
    synchronized wires will be branching the wire and passing the
    non-synchronized wire branch to the node and then bundling the result
    back to the synchronized wire.
    To increase performance and
    decrease unnecessary buffer copies when a syncrhonized wire is
    branched, if the syncrhonized wire continues directly to the new bundle
    synchronized wire node, no buffer copy is made.
    Discussion
    The
    syncrhonized access to a by-ref LabVOOP objects can be implemented in
    multiple ways by National Instruments. The synchronized access should
    be divided to two different and independent parts: 1) the user
    experience of synchronization and 2) the runtime engine synchronization
    mechanisms. As LabVOOP objects have special properties compared to
    other LabVIEW data types, optimal user experience can be gained by
    designing the user experience specifically for LabVOOP objects. From
    user experience point-of-view this syncrhonization mechanism may not
    work for other data types. Separating object syncrhonization from
    synchronization of other data types is advantageous also for other
    reasons. Due to the fact that object data can only be accessed via
    object methods, more advanced synchronization methods may be used with
    objects than can be used with other data types. O'Haskell
    synchronization implementation is an example of this. Integrating the
    synchronization directly to the user interface allows NI to change the
    mehcanisms under the hood, when computer science comes up with more
    advanced methods. Therefore NI could begin with traditional and quite
    easy mutex-based synchronization and later move to more advanced
    perhaps transaction based syncrhonization methods or even combinations
    of multiple different methods.
    I hope this topic generates
    discussion that would help NI to implement an excellent synchronization
    mechanism in LabVOOP. I hope that all talented individuals in the
    community participate this discussion to help NI to reach this goal. I
    also hope that if you just have time, it would be great if you could
    surf the computer science resources to find out what kinds of new
    techniques there exists for synchronizing access to shared resources. A
    Large community may find much more innovative solutions than a few engineers at NI. Let's give NI the power of open source design
    Tomi Maila

    Hello Tomi,
    First, thank you for taking the time to write such a well
    though-out suggestion.  Are you familiar
    with the “LabVIEW Object-Oriented Programming: The Decisions Behind the Design”
    document?  I think the reason we chose to implement a ‘by
    value’ strategy, is that is more in line with the LabVIEW programming paradigm
    of dataflow, and would make sense to most of our LabVIEW users.
    I think your suggestion is interesting, and it does
    highlight the need to think outside of the conventional LabVIEW box and look to
    some of the innovative things other languages do.  However, I think we all agree that
    synchronization takes careful planning and extra work for the programmer.  Even with an ‘ideal’ solution I see no way
    around this.  For LabVIEW users today,
    one great way to get synchronized ‘by reference’ semantics with your objects is
    to use a single-element queue to pass your object.  The queue itself is passed ‘by reference’ and
    is inherently synchronized!  The does
    have the disadvantage of adding one more small layer of complexity to your
    program, but some complexity would have to be introduced in any situation.  The other disadvantage with this is that it
    is not always an intuitive way to implement your program and requires some
    amount of LabVIEW knowledge before one would generally come across this
    technique.
    In any case, I appreciate the time and effort you put in to
    your suggestion.  Please make sure that
    you submit the suggestion formally through the NI Product Suggestion Center so
    that it can be reviewed by some of the decision makers here.
    Thanks again,
    Travis M
    LabVIEW R&D
    National Instruments

  • Getting Process instance with key '0' does not exist.

    I am doing a request based provisioning task.When I request for a resource the approvers are able to approve the request but the user is not created.
    I am getting the below exception at the backend:-
    [XELLERATE.APIS],Class/Method: tcProvisioningOperationsBean/getProcessDetailData encounter some problems: Process instance with key '0' does not exist.
    [11/2/12 0:30:13:640 EDT] 00000097 SystemOut O ERROR,02 Nov 2012 00:30:13,639,[XELLERATE.WEBAPP],Class/Method: RequestApprovalDetailAction/requestDetail encounter some problems: Process instance with key '0' does not exist.
    Thor.API.Exceptions.tcAPIException: Process instance with key '0' does not exist.
         at com.thortech.xl.ejb.beansimpl.tcProvisioningOperationsBean.getProcessDetailData(Unknown Source)
         at com.thortech.xl.ejb.beansimpl.tcProvisioningOperationsBean.getProcessDetail(Unknown Source)
         at com.thortech.xl.ejb.beans.tcProvisioningOperationsSession.getProcessDetail(Unknown Source)
         at com.thortech.xl.ejb.interfaces.EJSRemoteStatelesstcProvisioningOperations_6b2f800a.getProcessDetail(Unknown Source)
         at com.thortech.xl.ejb.interfaces._tcProvisioningOperations_Stub.getProcessDetail(Unknown Source)
         at Thor.API.Operations.tcProvisioningOperationsClient.getProcessDetail(Unknown Source)
         at sun.reflect.GeneratedMethodAccessor309.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at Thor.API.Base.SecurityInvocationHandler$1.run(Unknown Source)
         at java.security.AccessController.doPrivileged(Native Method)
         at javax.security.auth.Subject.doAs(Subject.java:337)
         at com.ibm.websphere.security.auth.WSSubject.doAs(WSSubject.java:118)
         at Thor.API.Security.LoginHandler.websphereLoginSession.runAs(Unknown Source)
         at Thor.API.Base.SecurityInvocationHandler.invoke(Unknown Source)
         at $Proxy6.getProcessDetail(Unknown Source)
         at com.thortech.xl.webclient.actions.RequestApprovalDetailAction.setStandardApprovalDetail(Unknown Source)
         at com.thortech.xl.webclient.actions.RequestApprovalDetailAction.requestDetail(Unknown Source)
         at sun.reflect.GeneratedMethodAccessor665.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:280)
         at com.thortech.xl.webclient.actions.tcLookupDispatchAction.execute(Unknown Source)
         at com.thortech.xl.webclient.actions.tcActionBase.execute(Unknown Source)
         at com.thortech.xl.webclient.actions.tcAction.execute(Unknown Source)
         at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
         at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
         at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
         at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
         at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1096)
         at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1037)
         at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:145)
         at com.thortech.xl.webclient.security.CSRFFilter.doFilter(Unknown Source)
         at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190)
         at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:130)
         at com.thortech.xl.webclient.security.SecurityFilter.doFilter(Unknown Source)
         at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190)
         at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:130)
         at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:87)
         at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:832)
         at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:679)
         at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:566)
         at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478)
         at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:90)
         at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:748)
         at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1466)
         at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:119)
         at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:458)
         at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:387)
         at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:102)
         at com.ibm.ws.ssl.channel.impl.SSLReadServiceContext$SSLReadCompletedCallback.complete(SSLReadServiceContext.java:1818)
         at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
         at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
         at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
         at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
         at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:195)
         at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:743)
         at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:873)

    Process instance with key '0' does not exist
    Such issue typically appears when the Provisioning is initiated without "Auto Save" i.e. before ORC_KEY entry goes in the OIU table...
    Second possibility can be that the mandatory attributes in the process form are not populated..
    Third possibility can be that the Status is Waiting... And Resource is dependent on another Resource...
    Are you able to Direct Provision the account? I mean without raising Request Based provisioning?
    Please give us following details:
    (1) Resource Profile:-status of Auto Save
    (2) Approval Process:- status of Auto Save and Auto Pre-Pop
    (3) Prov Process:-status of Auto Save and Auto Pre-Pop.
    (4) Is the object form properly populated?
    (5) Is the Process form properly populated?
    (6) Any Exception occurred during Approval process?
    (6) In the OIM Database, fire the following query:-
    SELECT OIU.ORC_KEY
    FROM OIU, USR, OBI
    WHERE OIU.USR_KEY=USR.USR_KEY
    AND UPPER(USR.USR_LOGIN)=UPPER('ABCDEFGH_USER')
    AND OBI.OBI_KEY=OIU.OBI_KEY
    AND OBI.OBI_KEY IN (SELECT OBI.OBI_KEY FROM OBI,OBJ WHERE OBI.OBJ_KEY=OBJ.OBJ_KEY AND
    UPPER(OBJ.OBJ_NAME)=UPPER('AD USER'))
    This will show whether any proper ORC_KEY was generated for this resource instance..

  • BPM Process Data Object vs Managed Bean

    I need to store an ID which is the primary key of a record in a database in my BPM process so that I can use that to set the bind variable on my view object query. Is it better to store this ID in a process data object or in a managed bean and why is one better than the other?

    I suggest to do the other way.
    Store the BPM Process Instance Id in the Database when you create data in the table.
    Pass this Instance Id to the VO query parameters.
    You can create a page binding of this instance Id from the Data Controls
    I am assuming there is a 1-1 relation between your BPM Process and Database Row.

  • How to create process instance throught PAPI?

    Hi,
    Can someone share how do we use PAPI to create a process instance for the Expense Management process (process in the BPM tutorial)?
    I believe it is through calling the processCreateInstance() method from a ProcessServiceSession object, however, what exactly do we pass in as a parameter? I tried simply by passing in the process name and an empty Arguments object and the following exception was logged:
    Feb 18, 2009 9:08:43 PM com.sun.corba.se.impl.orbutil.CacheTable put_table
    WARNING: "IOP00710275: (INTERNAL) Old entry in serialization indirection table has a different value than the value being added with the same key"
    org.omg.CORBA.INTERNAL: vmcid: SUN minor code: 275 completed: No
         at com.sun.corba.se.impl.logging.ORBUtilSystemException.duplicateIndirectionOffset(ORBUtilSystemException.java:5589)
         at com.sun.corba.se.impl.logging.ORBUtilSystemException.duplicateIndirectionOffset(ORBUtilSystemException.java:5611)
         at com.sun.corba.se.impl.orbutil.CacheTable.put_table(CacheTable.java:97)
         at com.sun.corba.se.impl.orbutil.CacheTable.put(CacheTable.java:86)
         at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1068)
         at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:879)
         at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_abstract_interface(CDRInputStream_1_0.java:873)
         at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_abstract_interface(CDRInputStream_1_0.java:863)
         at com.sun.corba.se.impl.encoding.CDRInputStream.read_abstract_interface(CDRInputStream.java:269)
         at com.sun.corba.se.impl.io.IIOPInputStream.readObjectDelegate(IIOPInputStream.java:363)
         at com.sun.corba.se.impl.io.IIOPInputStream.readObjectOverride(IIOPInputStream.java:526)
         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:345)
         at java.util.TreeMap.buildFromSorted(TreeMap.java:2442)
         at java.util.TreeMap.buildFromSorted(TreeMap.java:2384)
         at java.util.TreeMap.readObject(TreeMap.java:2330)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at com.sun.corba.se.impl.io.IIOPInputStream.invokeObjectReader(IIOPInputStream.java:1694)
         at com.sun.corba.se.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1212)
         at com.sun.corba.se.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:400)
         at com.sun.corba.se.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:327)
         at com.sun.corba.se.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:293)
         at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1034)
         at com.sun.corba.se.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:253)
         at com.sun.corba.se.impl.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:1989)
         at com.sun.corba.se.impl.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:2213)
         at com.sun.corba.se.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1221)
         at com.sun.corba.se.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:400)
         at com.sun.corba.se.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:327)
         at com.sun.corba.se.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:293)
         at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1034)
         at com.sun.corba.se.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:253)
         at com.sun.corba.se.impl.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:1989)
         at com.sun.corba.se.impl.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:2213)
         at com.sun.corba.se.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1221)
         at com.sun.corba.se.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:400)
         at com.sun.corba.se.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:327)
         at com.sun.corba.se.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:293)
         at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1034)
         at com.sun.corba.se.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:253)
         at com.sun.corba.se.impl.io.ValueHandlerImpl.read_Array(ValueHandlerImpl.java:756)
         at com.sun.corba.se.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:325)
         at com.sun.corba.se.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:293)
         at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1034)
         at com.sun.corba.se.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:253)
         at fuego.papi.impl.j2ee._EJBSecureEngineInterface_Stub.getProcesses(Unknown Source)
         at fuego.papi.impl.j2ee.EJBSecureEngineInterfaceWrapper.getProcesses(EJBSecureEngineInterfaceWrapper.java:297)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at fuego.papi.impl.AbstractSecureEngineHandler.invokeInternal(AbstractSecureEngineHandler.java:49)
         at fuego.papi.impl.j2ee.EJBSecureEngineHandler.doInvoke(EJBSecureEngineHandler.java:105)
         at fuego.papi.impl.j2ee.EJBSecureEngineHandler.invoke(EJBSecureEngineHandler.java:56)
         at $Proxy14.getProcesses(Unknown Source)
         at fuego.papi.impl.AbstractProcessLoader.createProcess(AbstractProcessLoader.java:49)
         at fuego.papi.impl.AbstractProcessLoader.createProcess(AbstractProcessLoader.java:36)
         at fuego.papi.impl.SessionProcessLoader.load(SessionProcessLoader.java:254)
         at fuego.papi.impl.ProcessManager.get(ProcessManager.java:894)
         at fuego.papi.impl.ProcessServiceImpl.getProcess(ProcessServiceImpl.java:1364)
         at fuego.papi.impl.SessionProcessManager.getProcess(SessionProcessManager.java:143)
         at fuego.papi.impl.ProcessServiceSessionImpl.processGet(ProcessServiceSessionImpl.java:2601)
         at fuego.papi.impl.ProcessServiceSessionImpl.checkBeginPermissions(ProcessServiceSessionImpl.java:4222)
         at fuego.papi.impl.ProcessServiceSessionImpl.processCreateInstance(ProcessServiceSessionImpl.java:3113)
         at fuego.papi.impl.ProcessServiceSessionImpl.processCreateInstance(ProcessServiceSessionImpl.java:3099)
         at com.test.papi.TestPAPI.main(TestPAPI.java:39)
    Could not perform the requested operation
    fuego.papi.ProcessNotAvailableException: Process '/ExpenseReport#Default-1.0' not available.
         at fuego.papi.impl.AbstractProcessLoader.createProcess(AbstractProcessLoader.java:71)
         at fuego.papi.impl.AbstractProcessLoader.createProcess(AbstractProcessLoader.java:36)
         at fuego.papi.impl.SessionProcessLoader.load(SessionProcessLoader.java:254)
         at fuego.papi.impl.ProcessManager.get(ProcessManager.java:894)
         at fuego.papi.impl.ProcessServiceImpl.getProcess(ProcessServiceImpl.java:1364)
         at fuego.papi.impl.SessionProcessManager.getProcess(SessionProcessManager.java:143)
         at fuego.papi.impl.ProcessServiceSessionImpl.processGet(ProcessServiceSessionImpl.java:2601)
         at fuego.papi.impl.ProcessServiceSessionImpl.checkBeginPermissions(ProcessServiceSessionImpl.java:4222)
         at fuego.papi.impl.ProcessServiceSessionImpl.processCreateInstance(ProcessServiceSessionImpl.java:3113)
         at fuego.papi.impl.ProcessServiceSessionImpl.processCreateInstance(ProcessServiceSessionImpl.java:3099)
         at com.test.papi.TestPAPI.main(TestPAPI.java:39)
    Caused by: fuego.papi.impl.EngineExecutionException: Process execution engine execution error.
         at fuego.papi.impl.j2ee.EJBSecureEngineHandler.doInvoke(EJBSecureEngineHandler.java:146)
         at fuego.papi.impl.j2ee.EJBSecureEngineHandler.invoke(EJBSecureEngineHandler.java:56)
         at $Proxy14.getProcesses(Unknown Source)
         at fuego.papi.impl.AbstractProcessLoader.createProcess(AbstractProcessLoader.java:49)
         ... 10 more
    Caused by: org.omg.CORBA.INTERNAL: vmcid: SUN minor code: 275 completed: No
         at com.sun.corba.se.impl.logging.ORBUtilSystemException.duplicateIndirectionOffset(ORBUtilSystemException.java:5589)
         at com.sun.corba.se.impl.logging.ORBUtilSystemException.duplicateIndirectionOffset(ORBUtilSystemException.java:5611)
         at com.sun.corba.se.impl.orbutil.CacheTable.put_table(CacheTable.java:97)
         at com.sun.corba.se.impl.orbutil.CacheTable.put(CacheTable.java:86)
         at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1068)
         at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:879)
         at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_abstract_interface(CDRInputStream_1_0.java:873)
         at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_abstract_interface(CDRInputStream_1_0.java:863)
         at com.sun.corba.se.impl.encoding.CDRInputStream.read_abstract_interface(CDRInputStream.java:269)
         at com.sun.corba.se.impl.io.IIOPInputStream.readObjectDelegate(IIOPInputStream.java:363)
         at com.sun.corba.se.impl.io.IIOPInputStream.readObjectOverride(IIOPInputStream.java:526)
         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:345)
         at java.util.TreeMap.buildFromSorted(TreeMap.java:2442)
         at java.util.TreeMap.buildFromSorted(TreeMap.java:2384)
         at java.util.TreeMap.readObject(TreeMap.java:2330)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at com.sun.corba.se.impl.io.IIOPInputStream.invokeObjectReader(IIOPInputStream.java:1694)
         at com.sun.corba.se.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1212)
         at com.sun.corba.se.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:400)
         at com.sun.corba.se.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:327)
         at com.sun.corba.se.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:293)
         at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1034)
         at com.sun.corba.se.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:253)
         at com.sun.corba.se.impl.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:1989)
         at com.sun.corba.se.impl.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:2213)
         at com.sun.corba.se.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1221)
         at com.sun.corba.se.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:400)
         at com.sun.corba.se.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:327)
         at com.sun.corba.se.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:293)
         at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1034)
         at com.sun.corba.se.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:253)
         at com.sun.corba.se.impl.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:1989)
         at com.sun.corba.se.impl.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:2213)
         at com.sun.corba.se.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1221)
         at com.sun.corba.se.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:400)
         at com.sun.corba.se.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:327)
         at com.sun.corba.se.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:293)
         at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1034)
         at com.sun.corba.se.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:253)
         at com.sun.corba.se.impl.io.ValueHandlerImpl.read_Array(ValueHandlerImpl.java:756)
         at com.sun.corba.se.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:325)
         at com.sun.corba.se.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:293)
         at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1034)
         at com.sun.corba.se.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:253)
         at fuego.papi.impl.j2ee._EJBSecureEngineInterface_Stub.getProcesses(Unknown Source)
         at fuego.papi.impl.j2ee.EJBSecureEngineInterfaceWrapper.getProcesses(EJBSecureEngineInterfaceWrapper.java:297)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at fuego.papi.impl.AbstractSecureEngineHandler.invokeInternal(AbstractSecureEngineHandler.java:49)
         at fuego.papi.impl.j2ee.EJBSecureEngineHandler.doInvoke(EJBSecureEngineHandler.java:105)
         ... 13 more
    I'm wondering why does it complain that "fuego.papi.ProcessNotAvailableException: Process '/ExpenseReport#Default-1.0' not available.", when the ExpenseReport process is indeed a process that was published?
    P.S.: I know this thread is sort of a duplicate of another thread, however I hope we can get some real examples of how to create a process instance for the Expense Management project, using PAPI (instead of PAPI webservice).
    Edited by: sylarchong on Feb 18, 2009 5:20 AM
    Edited by: sylarchong on Feb 18, 2009 5:21 AM

    Hi Mark,
    Thanks for your prompt reply.. I tried with the above option but still am facing the same problem.
    Let me give you the brief idea of what am working on;
    1) I created a process using Oracle BPM Studio V: 10.3.1.0 & Build: #94375
    2) I publish & deploy the process using Oracle BPM Admin Center which running on top of tomcat. But in the configuration I configure the directory as well as weblogic server.
    3) I created a "Java Project" & included following jar file "b1base.jar","b1oracle.jar","b1util.jar","bcel.jar","ejb-api.jar","fuegopapi-client.jar","jms-api.jar","ojdbc14.jar","weblogic.jar","wljmsclient.jar".
    4) I am using below program to create a PAPI Process Instance;
    package ibm.com.papi;
    import java.util.Properties;
    import fuego.papi.CommunicationException;
    import fuego.papi.InstanceInfo;
    import fuego.papi.OperationException;
    import fuego.papi.ProcessService;
    import fuego.papi.ProcessServiceSession;
    public class PAPIWithDirectoryFileExample {
         public static void main(String[] args) {
              // ///////////////// API Initialization ///////////////////
              Properties configuration = new Properties();
              configuration.setProperty(ProcessService.DIRECTORY_ID, "default");
              configuration.setProperty(ProcessService.DIRECTORY_PROPERTIES_FILE, "C://tmp//directory.xml");
              configuration.setProperty(ProcessService.INSTANCES_CACHE_SIZE, "50000");
              configuration.setProperty(ProcessService.WORKING_FOLDER, "c://tmp");
              configuration.setProperty(ProcessService.UPDATE_SESSIONS_VIEWS, "true");
              System.setProperty("fuego.j2ee.initialctx.file","C:\\tmp\\engine.properties");
              System.setProperty("fuego.j2ee.initialctx.resource","engine.properties");
              System.setProperty("fuego.j2ee.initialctx.url","file://tmp/engine.properties");
              //engine.properties include below settings
              //System.setProperty("java.naming.factory.initial", "weblogic.jndi.WLInitialContextFactory");
              //System.setProperty("java.naming.provider.url", "t3://localhost:7001");
              try {
                   ProcessService processService = ProcessService.create(configuration);
                   ///////////////// Establish a session ///////////////////
                   ProcessServiceSession session = processService.createSession(
                             "username", "pwd", "host");
                   for (String processId : session.processesGetIds()) {
                        System.out.println("\n Process: " + processId);
                        for (InstanceInfo instance : session
                                  .processGetInstances(processId)) {
                             System.out.println(" -> " + instance.getId());
                   fuego.papi.Arguments papiArgs= fuego.papi.Arguments.create();
                   papiArgs.putArgument("inputNameArg", "inputString");
                   InstanceInfo instInfo = null;
                   instInfo = session.processCreateInstance("/Process#Default-1.0",papiArgs);
                   String strInstanceID = instInfo.getId();
                   System.out.println ("strInstanceID => [" + strInstanceID + "]" );
                   // ///////////////// 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();
    5) Error Log;
    Feb 19, 2010 12:23:16 PM com.sun.corba.se.impl.orbutil.CacheTable put_table
    WARNING: "IOP00710275: (INTERNAL) Old entry in serialization indirection table has a different value than the value being added with the same key"
    org.omg.CORBA.INTERNAL: vmcid: SUN minor code: 275 completed: No
         at com.sun.corba.se.impl.logging.ORBUtilSystemException.duplicateIndirectionOffset(ORBUtilSystemException.java:5589)
         at com.sun.corba.se.impl.logging.ORBUtilSystemException.duplicateIndirectionOffset(ORBUtilSystemException.java:5611)
         at com.sun.corba.se.impl.orbutil.CacheTable.put_table(CacheTable.java:97)
         at com.sun.corba.se.impl.orbutil.CacheTable.put(CacheTable.java:86)
         at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1068)
         at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:879)
         at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_abstract_interface(CDRInputStream_1_0.java:873)
         at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_abstract_interface(CDRInputStream_1_0.java:863)
         at com.sun.corba.se.impl.encoding.CDRInputStream.read_abstract_interface(CDRInputStream.java:269)
         at com.sun.corba.se.impl.io.IIOPInputStream.readObjectDelegate(IIOPInputStream.java:363)
         at com.sun.corba.se.impl.io.IIOPInputStream.readObjectOverride(IIOPInputStream.java:526)
         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:345)
         at java.util.TreeMap.buildFromSorted(TreeMap.java:2442)
         at java.util.TreeMap.buildFromSorted(TreeMap.java:2384)
         at java.util.TreeMap.readObject(TreeMap.java:2330)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at com.sun.corba.se.impl.io.IIOPInputStream.invokeObjectReader(IIOPInputStream.java:1694)
         at com.sun.corba.se.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1212)
         at com.sun.corba.se.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:400)
         at com.sun.corba.se.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:327)
         at com.sun.corba.se.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:293)
         at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1034)
         at com.sun.corba.se.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:253)
         at com.sun.corba.se.impl.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:1989)
         at com.sun.corba.se.impl.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:2213)
         at com.sun.corba.se.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1221)
         at com.sun.corba.se.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:400)
         at com.sun.corba.se.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:327)
         at com.sun.corba.se.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:293)
         at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1034)
         at com.sun.corba.se.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:253)
         at com.sun.corba.se.impl.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:1989)
         at com.sun.corba.se.impl.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:2213)
         at com.sun.corba.se.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1221)
         at com.sun.corba.se.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:400)
         at com.sun.corba.se.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:327)
         at com.sun.corba.se.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:293)
         at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1034)
         at com.sun.corba.se.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:253)
         at com.sun.corba.se.impl.io.ValueHandlerImpl.read_Array(ValueHandlerImpl.java:756)
         at com.sun.corba.se.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:325)
         at com.sun.corba.se.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:293)
         at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1034)
         at com.sun.corba.se.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:253)
         at fuego.papi.impl.j2ee._EJBSecureEngineInterface_Stub.getProcesses(Unknown Source)
         at fuego.papi.impl.j2ee.EJBSecureEngineInterfaceWrapper.getProcesses(EJBSecureEngineInterfaceWrapper.java:297)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at fuego.papi.impl.AbstractSecureEngineHandler.invokeInternal(AbstractSecureEngineHandler.java:49)
         at fuego.papi.impl.j2ee.EJBSecureEngineHandler.doInvoke(EJBSecureEngineHandler.java:105)
         at fuego.papi.impl.j2ee.EJBSecureEngineHandler.invoke(EJBSecureEngineHandler.java:56)
         at $Proxy14.getProcesses(Unknown Source)
         at fuego.papi.impl.AbstractProcessLoader.createProcess(AbstractProcessLoader.java:49)
         at fuego.papi.impl.AbstractProcessLoader.createProcess(AbstractProcessLoader.java:36)
         at fuego.papi.impl.SessionProcessLoader.load(SessionProcessLoader.java:254)
         at fuego.papi.impl.ProcessManager.get(ProcessManager.java:894)
         at fuego.papi.impl.ProcessServiceImpl.getProcess(ProcessServiceImpl.java:1364)
         at fuego.papi.impl.SessionProcessManager.getProcess(SessionProcessManager.java:143)
         at fuego.papi.impl.ProcessServiceSessionImpl.processGet(ProcessServiceSessionImpl.java:2660)
         at fuego.papi.impl.ProcessServiceSessionImpl.checkBeginPermissions(ProcessServiceSessionImpl.java:4281)
         at fuego.papi.impl.ProcessServiceSessionImpl.processCreateInstance(ProcessServiceSessionImpl.java:3172)
         at fuego.papi.impl.ProcessServiceSessionImpl.processCreateInstance(ProcessServiceSessionImpl.java:3158)
         at ibm.com.papi.PAPIWithDirectoryFileExample.main(PAPIWithDirectoryFileExample.java:71)
    Could not perform the requested operation
    fuego.papi.ProcessNotAvailableException: Process '/Process#Default-1.0' not available.
         at fuego.papi.impl.AbstractProcessLoader.createProcess(AbstractProcessLoader.java:71)
         at fuego.papi.impl.AbstractProcessLoader.createProcess(AbstractProcessLoader.java:36)
         at fuego.papi.impl.SessionProcessLoader.load(SessionProcessLoader.java:254)
         at fuego.papi.impl.ProcessManager.get(ProcessManager.java:894)
         at fuego.papi.impl.ProcessServiceImpl.getProcess(ProcessServiceImpl.java:1364)
         at fuego.papi.impl.SessionProcessManager.getProcess(SessionProcessManager.java:143)
         at fuego.papi.impl.ProcessServiceSessionImpl.processGet(ProcessServiceSessionImpl.java:2660)
         at fuego.papi.impl.ProcessServiceSessionImpl.checkBeginPermissions(ProcessServiceSessionImpl.java:4281)
         at fuego.papi.impl.ProcessServiceSessionImpl.processCreateInstance(ProcessServiceSessionImpl.java:3172)
         at fuego.papi.impl.ProcessServiceSessionImpl.processCreateInstance(ProcessServiceSessionImpl.java:3158)
         at ibm.com.papi.PAPIWithDirectoryFileExample.main(PAPIWithDirectoryFileExample.java:71)
    Caused by: fuego.papi.impl.EngineExecutionException: Process execution engine execution error.
         at fuego.papi.impl.j2ee.EJBSecureEngineHandler.doInvoke(EJBSecureEngineHandler.java:146)
         at fuego.papi.impl.j2ee.EJBSecureEngineHandler.invoke(EJBSecureEngineHandler.java:56)
         at $Proxy14.getProcesses(Unknown Source)
         at fuego.papi.impl.AbstractProcessLoader.createProcess(AbstractProcessLoader.java:49)
         ... 10 more
    Caused by: org.omg.CORBA.INTERNAL: vmcid: SUN minor code: 275 completed: No
    Please help me to resolve the above issue.
    Thanks & Regards,
    Ankur Oswal

  • Initiating BPM Process Instances from External Web Service Call

    I'm attempting to update the HelloWorld example so that I can create an instance of the process from an External Web Services Call rather than via the Workspace. Our current SOA Architecture is configured so that all BPM instances are managed through a .NET SmartClient via the Service Bus and the use of PAPI W/S and so I'm wishing to recreate this capability in the new BPM.
    I understand the replacement for PAPI W/S is Human Workflow so I've therefore updated and republished the HelloWorld Example with an Exposed 'TaskService' Service for the Human Task within the BPM Process.
    I've then attempted to reference the TaskService through our existing BPM, and have been able to import a number of generic WSDL's as follows:
    Task Service
    http://vmaquatestapp2:7001/integration/services/TaskService/TaskServicePort?WSDL
    Task Metadata Service
    http://vmaquatestapp2:7001/integration/services/TaskMetadataService/TaskMetadataServicePort?WSDL
    Task Query Service
    http://vmaquatestapp2:7001/integration/services/TaskQueryService/TaskQueryService?WSDL
    When I examine the available operations for these generic services, there are quite a lot, each of which have a fairly complex schema. I believe I should be using the TaskService: InitiateTask Operation to create an instance of my BPM Process but my questions are:
    - Is the above the correct method of interacting with BPM Instances from an external system such as the Service Bus?
    - Does anyone have any examples of a basic XML payload that would initiate a process instance?

    I created an process with a message start event and can call it from an external web service call. I can also pass input arguments and map those to process data objects. However I can not find how to return data as response to the external web service call as e.g. the process instance id.
    Is it possible to this?
    Gr,
    Gert Jan Kersten

  • How to get process instance activity information

    We have the following need:
    The process instance will be created either manually or by integration from another system. It is not possible to have two instances running for the same process, so we want to check if there is already one instance running for a given process. The business information that identifies the process uniquely are attributes of the process data object.
    We need to find out how to:
    1) check if there is already existing instance for the process giving the business information that identifies it
    2) check if the existing instance is running or is ended/terminated
    We want to know if there is any existing API we may use to achieve the needs above, what are them and where we can find more information of their use.
    We have tried searching in the API documentation what methods could be of use but we were not able to identify by the existing documentation any one that could attend our needs.
    We also didn't find any topic in this forum about it.
    If possible please give us some examples of use.
    Version: Oracle BPM 11g

    Hi,
    In the SOA Suite 11g you can use the Java API together with Composite Sensor to achieve these behavior:
    1. First, create a composite sensor in the operation that create the process composite instance, initializing the sensor with the business information that identifies the process uniquely. This composite sensor can be used to search for the composite instance either on EM or via API. For more information about how to create Composite Sensor, see http://download.oracle.com/docs/cd/E14571_01/integration.1111/e10224/sca_compsensors.htm#insertedID0
    2. Using the Java API (http://download.oracle.com/docs/cd/E14571_01/apirefs.1111/e10659/toc.htm), search for the composite instance by the Composite Sensor, as explained at: http://blogs.oracle.com/soabpm/2009/08/soa_suite_11g_-apipart_3_-_f.html. With a reference to the composite instance, you can check its internal components states.
    The following libs must be imported in your java project:
    - <middleware_home>/oracle_common/modules/oracle.fabriccommon_11.1.1/fabric-common.jar
    - <middleware_home>/oracle_common/soa/modules/oracle.soa.mgmt_11.1.1/soa-infra-mgmt.jar
    - <middleware_home>/wlserver_10.3/server/lib/weblogic.jar
    - <middleware_home>/oss_11gr1/soa/modules/oracle.soa.fabric_11.1.1/oracle-soa-client-api.jar
    - <middleware_home>/oracle_common/webservices/wsclient_extended.jar
    I hope this can help.
    Regards,
    Rafael

  • Cancel process instance CE 7.2

    Hi,
    it is not possible to cancel some of the process instances shown in NWA->manage processes.
    If I try there is an error and the default trace shows the following:
    Error while resuming process instance '2713e1d90ae511e0c1de0000001532c2'.
    [EXCEPTION]
    com.sap.glx.adapter.api.AdapterException: Failed to cancel instance(s).
    at com.sap.glx.process.adapter.bpmn.impl.BPMNAdapter.cancelProcessInstances(BPMNAdapter.java:2543)
    at com.sap.glx.process.adapter.bpmn.impl.BPMNAdapter.cancelProcessInstance(BPMNAdapter.java:2511)
    at com.sap.glx.process.impl.ProcessManagerImpl.cancelProcessInstance(ProcessManagerImpl.java:1248)
    at com.sap.glx.process.impl.ProcessManagerImpl.cancelProcessInstances(ProcessManagerImpl.java:1266)
    at com.sap.glx.process.impl.ProcessManagerBean.cancelProcessInstances(ProcessManagerBean.java:279)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    Any idea how to cancel these process instances?
    Thanks,
    Kevin

    Status is in process
    Here the stack trace:
    Error while resuming process instance '8e4c498309bc11e0b5eb0000001532c2'.
    [EXCEPTION]
    com.sap.glx.adapter.api.AdapterException: Failed to cancel instance(s).
    at com.sap.glx.process.adapter.bpmn.impl.BPMNAdapter.cancelProcessInstances(BPMNAdapter.java:2543)
    at com.sap.glx.process.adapter.bpmn.impl.BPMNAdapter.cancelProcessInstance(BPMNAdapter.java:2511)
    at com.sap.glx.process.impl.ProcessManagerImpl.cancelProcessInstance(ProcessManagerImpl.java:1248)
    at com.sap.glx.process.impl.ProcessManagerImpl.cancelProcessInstances(ProcessManagerImpl.java:1266)
    at com.sap.glx.process.impl.ProcessManagerBean.cancelProcessInstances(ProcessManagerBean.java:279)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.sap.engine.services.ejb3.runtime.impl.RequestInvocationContext.proceedFinal(RequestInvocationContext.java:47)
    at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:166)
    at com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatesTransition.invoke(Interceptors_StatesTransition.java:19)
    at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)
    at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Resource.invoke(Interceptors_Resource.java:71)
    at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)
    at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.doWorkWithAttribute(Interceptors_Transaction.java:39)
    at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.invoke(Interceptors_Transaction.java:23)
    at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)
    at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:189)
    at com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatelessInstanceGetter.invoke(Interceptors_StatelessInstanceGetter.java:16)
    at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)
    at com.sap.engine.services.ejb3.runtime.impl.Interceptors_SecurityCheck.invoke(Interceptors_SecurityCheck.java:25)
    at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)
    at com.sap.engine.services.ejb3.runtime.impl.Interceptors_ExceptionTracer.invoke(Interceptors_ExceptionTracer.java:17)
    at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)
    at com.sap.engine.services.ejb3.runtime.impl.DefaultInvocationChainsManager.startChain(DefaultInvocationChainsManager.java:138)
    at com.sap.engine.services.ejb3.runtime.impl.DefaultEJBProxyInvocationHandler.invoke(DefaultEJBProxyInvocationHandler.java:164)
    at $Proxy2199.cancelProcessInstances(Unknown Source)
    at com.sap.glx.nwa.pm.SAP_ITSAMGalaxyProcessManagerImpl.cancelProcessInstance(SAP_ITSAMGalaxyProcessManagerImpl.java:696)
    at com.sap.glx.nwa.pm.SAP_ITSAMGalaxyProcessManagerWrapper.invoke(SAP_ITSAMGalaxyProcessManagerWrapper.java:329)
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)
    at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
    at com.sap.pj.jmx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:468)
    at com.sap.pj.jmx.server.interceptor.MBeanServerWrapperInterceptor.invoke(MBeanServerWrapperInterceptor.java:288)
    at com.sap.engine.services.jmx.CompletionInterceptor.invoke(CompletionInterceptor.java:547)
    at com.sap.pj.jmx.server.interceptor.BasicMBeanServerInterceptor.invoke(BasicMBeanServerInterceptor.java:277)
    at com.sap.jmx.provider.ProviderInterceptor.invoke(ProviderInterceptor.java:340)
    at com.sap.engine.services.jmx.RedirectInterceptor.invoke(RedirectInterceptor.java:340)
    at com.sap.pj.jmx.server.interceptor.MBeanServerInterceptorChain.invoke(MBeanServerInterceptorChain.java:367)
    at com.sap.engine.services.jmx.MBeanServerSecurityWrapper.invoke(MBeanServerSecurityWrapper.java:289)
    at com.sap.engine.services.jmx.ClusterInterceptor.invoke(ClusterInterceptor.java:813)
    at com.sap.pj.jmx.server.interceptor.MBeanServerInterceptorChain.invoke(MBeanServerInterceptorChain.java:367)
    at com.sap.lm.itsam.ui.connection.impl.ITSAMUIMBeanServerConnectionWrapper.invoke(ITSAMUIMBeanServerConnectionWrapper.java:350)
    at com.sap.tc.lm.itsam.ui.proxy.JMXGenericModelClassMBean.invokeOperation(JMXGenericModelClassMBean.java:613)
    at com.sap.tc.lm.itsam.ui.proxy.JMXAbstractModelClass.invokeOperation(JMXAbstractModelClass.java:159)
    at com.sap.tc.bpem.nwa.processmgmt.procmgmt.model.SAP_ITSAMGalaxyProcessManager.cancelProcessInstance(SAP_ITSAMGalaxyProcessManager.java:155)
    at com.sap.tc.bpem.nwa.processmgmt.procmgmt.procmgmt.ProcMgmt.CancelProcesses(ProcMgmt.java:847)
    at com.sap.tc.bpem.nwa.processmgmt.procmgmt.procmgmt.wdp.InternalProcMgmt.CancelProcesses(InternalProcMgmt.java:395)
    at com.sap.tc.bpem.nwa.processmgmt.procmgmt.procmgmt.ProcMgmtView.onActionProcessCommand(ProcMgmtView.java:2030)
    at com.sap.tc.bpem.nwa.processmgmt.procmgmt.procmgmt.wdp.InternalProcMgmtView.wdInvokeEventHandler(InternalProcMgmtView.java:896)
    at com.sap.tc.webdynpro.progmodel.generation.DelegatingView.invokeEventHandler(DelegatingView.java:142)
    at com.sap.tc.webdynpro.progmodel.controller.Action.fire(Action.java:75)
    at com.sap.tc.webdynpro.clientserver.phases.ProcessingEventPhase.doHandleActionEvent(ProcessingEventPhase.java:159)
    at com.sap.tc.webdynpro.clientserver.phases.ProcessingEventPhase.execute(ProcessingEventPhase.java:94)
    at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequestPartly(WindowPhaseModel.java:162)
    at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.doProcessRequest(WindowPhaseModel.java:110)
    at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequest(WindowPhaseModel.java:97)
    at com.sap.tc.webdynpro.clientserver.window.WebDynproWindow.processRequest(WebDynproWindow.java:514)
    at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:55)
    at com.sap.tc.webdynpro.clientserver.cal.ClientApplication.doExecute(ClientApplication.java:1689)
    at com.sap.tc.webdynpro.clientserver.cal.ClientApplication.doProcessing(ClientApplication.java:1503)
    at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doApplicationProcessingStandalone(ApplicationSession.java:918)
    at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doApplicationProcessing(ApplicationSession.java:890)
    at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:343)
    at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:315)
    at com.sap.tc.webdynpro.serverimpl.core.AbstractDispatcherServlet.doContent(AbstractDispatcherServlet.java:87)
    at com.sap.tc.webdynpro.serverimpl.wdc.DispatcherServlet.doContent(DispatcherServlet.java:76)
    at com.sap.tc.webdynpro.serverimpl.core.AbstractDispatcherServlet.doPost(AbstractDispatcherServlet.java:62)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
    at com.sap.engine.services.servlets_jsp.server.Invokable.invoke(Invokable.java:152)
    at com.sap.engine.services.servlets_jsp.server.Invokable.invoke(Invokable.java:38)
    at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:400)
    at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:203)
    at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:438)
    at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:427)
    at com.sap.engine.services.servlets_jsp.filters.DSRWebContainerFilter.process(DSRWebContainerFilter.java:38)
    at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at com.sap.engine.services.servlets_jsp.filters.ServletSelector.process(ServletSelector.java:80)
    at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at com.sap.engine.services.servlets_jsp.filters.ApplicationSelector.process(ApplicationSelector.java:268)
    at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at com.sap.engine.services.httpserver.filters.WebContainerInvoker.process(WebContainerInvoker.java:81)
    at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
    at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at com.sap.engine.services.httpserver.filters.ResponseLogWriter.process(ResponseLogWriter.java:60)
    at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
    at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at com.sap.engine.services.httpserver.filters.DefineHostFilter.process(DefineHostFilter.java:27)
    at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
    at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at com.sap.engine.services.httpserver.filters.MonitoringFilter.process(MonitoringFilter.java:29)
    at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
    at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at com.sap.engine.services.httpserver.filters.MemoryStatisticFilter.process(MemoryStatisticFilter.java:54)
    at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
    at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at com.sap.engine.services.httpserver.filters.DSRHttpFilter.process(DSRHttpFilter.java:42)
    at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
    at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at com.sap.engine.services.httpserver.server.Processor.chainedRequest(Processor.java:447)
    at com.sap.engine.services.httpserver.server.Processor$FCAProcessorThread.process(Processor.java:264)
    at com.sap.engine.services.httpserver.server.rcm.RequestProcessorThread.run(RequestProcessorThread.java:56)
    at com.sap.engine.core.thread.execution.Executable.run(Executable.java:122)
    at com.sap.engine.core.thread.execution.Executable.run(Executable.java:101)
    at com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:328)
    Caused by: com.sap.glx.core.kernel.api.TransitionRollbackException: Exception during prepare, rolling back
    at com.sap.glx.core.kernel.mmtx.AbstractTransactionBase.rollback(AbstractTransactionBase.java:746)
    at com.sap.glx.core.kernel.mmtx.AbstractTransaction.do_prepare(AbstractTransaction.java:202)
    at com.sap.glx.core.kernel.mmtx.AbstractTransaction.commit(AbstractTransaction.java:81)
    at com.sap.glx.process.adapter.bpmn.impl.BPMNAdapter.cancelProcessInstances(BPMNAdapter.java:2540)
    ... 105 more
    Caused by: com.sap.glx.core.kernel.api.TransitionException: An exception occurred while executing the script "_PDF_Rolle:DISRUPTOR(
    object){
      delete object;
    at com.sap.glx.core.kernel.execution.transition.ScriptTransition.execute(ScriptTransition.java:68)
    at com.sap.glx.core.kernel.execution.transition.Transition.commence(Transition.java:138)
    at com.sap.glx.core.kernel.mmtx.PrimaryTransaction.inPrepare(PrimaryTransaction.java:119)
    at com.sap.glx.core.kernel.mmtx.AbstractTransaction.do_prepare(AbstractTransaction.java:200)
    ... 107 more
    Caused by: com.sap.glx.core.kernel.api.TransitionException: An exception occurred while executing the script command "delete object"
    at com.sap.glx.core.kernel.trigger.config.Script.execute(Script.java:803)
    at com.sap.glx.core.kernel.execution.transition.ScriptTransition.execute(ScriptTransition.java:63)
    ... 110 more
    Caused by: com.sap.bpem.tm.exception.TechnicalTaskException: Unable to retrieve parent go for go: 952bd6d6-09bc-11e0-ca1e-0000001532c2
    at com.sap.bpem.tm.adapter.cachestore.CachingTaskStore.getTaskInstanceId(CachingTaskStore.java:346)
    at com.sap.bpem.tm.adapter.cachestore.CachingTaskStore.dump(CachingTaskStore.java:319)
    at com.sap.bpem.tm.adapter.cachestore.CachingTaskStore.remove(CachingTaskStore.java:334)
    at com.sap.bpem.tm.adapter.invocation.TaskInvocationHandler.onDestruction(TaskInvocationHandler.java:311)
    at com.sap.glx.core.dock.impl.DockObjectImpl.deletion(DockObjectImpl.java:226)
    at com.sap.glx.core.dock.impl.DockObjectImpl.delete(DockObjectImpl.java:565)
    at com.sap.glx.core.kernel.trigger.config.Script$DeleteInstance.execute(Script.java:298)
    at com.sap.glx.core.kernel.trigger.config.Script.execute(Script.java:798)
    ... 111 more

  • How to Identify GP Process ID from Process Instance ID

    Hi,
    I am retrieving the running process instances using following method.
    IGPProcessInstanceInfo[] runningInstances =
                        runtimeManager.getRunningInstances(
                             GPSearchRole.SEARCH_ROLE_OVERSEER,
                             fromDate,
                             toDate,
                             userContext);
    I need to choose only the process instances of one particular process (I have process id of this GP). From the IGPProcessInstanceInfo object I can get the Process Instance ID. But I am not finding any API to findout the Process ID (not process instance id) of this process instance.
    Once I get the process id, I can compare the process ids and decide whether it is related to my process or not.
    Is there a way to find this information?
    Thanks
    Ram

    Hi Ram,
    the ID you have there is a String variable in the template <TemplateID>a<ProcessID>.
    I guess you are looking for a process template, so you can split that String by "a" and use the first Int and then compare that Int.
    Hope that helps.
    Regards,
    George.

Maybe you are looking for