Process Diagram of an instance using PAPI

Hi,
I`m trying to get que Process Diagram of an instance with PAPI using processGetDiagram but it doesn`t work, any ideas or examples?
Thanks a lot

I dont think there is any way to update the value of any instance variable directly by PAPI.
What you can do is have a Global Activity with instance access from where you can access all the instance/ external variables.
You can call this activity using PAPI and can send arguments telling it what to do.
Let me know if this helps.

Similar Messages

  • How to Increase the retreving size of instances using PAPI filters.

    Hi,
    How to Increase the retreving size of instances using PAPI filters.
    In my engine database instance size exceeds 2500 then we are getting following exception.
    If we login in to user workspace able to see the instances but while trying to retrieve from PAPI getting below exception and showing the user's inbox aize as 0.
    In Process Admin console we set all the required parameters.
    Still I m getting the same problem.
    Can you please lgive mev the solution.
    <Mar 23, 2010 8:58:24 PM SGT> <Warning> <RMI> <BEA-080003> <RuntimeException thrown by rmi server: fuego.ejbengine.EJBProcessControl_1zamnl_EOImpl.getInstancesByFilter(Lfuego.papi.impl.j2ee.EJBSecureEngineInfo;Ljava.lang.String;Lfuego.papi.Filter;)
    java.lang.ClassCastException: cannot assign instance of java.util.HashSet to field fuego.view.FilterImpl.attributes of type java.util.List in instance of fuego.view.FilterImpl.
    java.lang.ClassCastException: cannot assign instance of java.util.HashSet to field fuego.view.FilterImpl.attributes of type java.util.List in instance of fuego.view.FilterImpl
         at java.io.ObjectStreamClass$FieldReflector.setObjFieldValues(ObjectStreamClass.java:2032)
         at java.io.ObjectStreamClass.setObjFieldValues(ObjectStreamClass.java:1212)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1953)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
    Regards,
    Bharath.
    Edited by: bg57295 on Mar 24, 2010 6:45 PM

    Hi Bharath,
    Believe me, you have an incompatibility between different build#.
    PAPI has an instance cache. When certain process has more instances than the maximum specified, the cache is switch to status OPEN. That means, that PAPI will not be able to resolve some instance queries using the information in the cache. When that occurs, PAPI forward all those queries to the engine.
    The incompatibility introduced is in the communication between PAPI and Engine. So, you only get the exception when you have more instances than the maximum cache size.
    Regards,
    Ariel

  • Retrieving user created variables from multiple instances using PAPI-WS

    Hi,
    I'm using PAPI-WS to retrieve a list of instances from Oracle BPM 10.3.1.0.0 using ProcessGetInstance. These are modeled as external tasks. ProcessGetInstance returns an InstanceInfoBean which has no place for user defined variables that were set when the instances were started.
    The only way to get user defined variables seems to be to iterate through the entire list and send an InstanceGetVariable request for each one. InstanceGetVariable does not seem allow more than one instance id to be specified in a call from my testing. This is very inefficient since we could easily have hundreds of instances that we're trying to display. Is there some way to get the list of instances to include the user defined variables, or to get the user defined variables for more than one instance in a single call?
    Thanks,
    Steve

    I can't reproduce the problem. This is what I see:C:\temp>javac -cp . Ttest.java
    C:\temp>java -version
    java version "1.6.0"
    Java(TM) SE Runtime Environment (build 1.6.0-b105)
    Java HotSpot(TM) Client VM (build 1.6.0-b105, mixed mode, sharing)
    C:\temp>java -cp . Ttest
    1
    3
    3

  • Using PAPI to create instance on Enterpise

    Hi.
    I have deployed my process on Enterprise edition with weblogic and oracle.
    I need to know all the libraries required for writing PAPI program to create instance.
    Also anything i should take care of while writing the java program to create instance using PAPI.
    Like. do i need to have weblogic.jar in the classpath. or any other jars.
    Regards
    Right Chord

    Thanks,
    Maybe I didn't explain exactly what I was expecting with the standby database, these steps are what I did, to resolve the issue
    ENABLE THE STANDBY DATABASE TO STARTUP FROM SPFILE
    Step 1: create a newly spfile from the current pfile
    SQL> CREATE SPFILE='C:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\SPFILEORCL.ORA' FROM PFILE='C:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\INITORCL.ORA';
    Step 2: Rename the INITORCL.ORA TO SAVE_DATE_INITORCL.ORA
    Example: the C:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\INITORCL.ORA became
    C:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\SAVE_24072007_INITORCL.ORA
    Step 3: delete the former sid created
    C:\ORADIM -delete -sid orcl
    Instance deleted.
    Step 3: Change the Oracle service to start when the OS start
    C:\ ORADIM -new -sid ORCL -SRVC OracleServiceORCL -STARTMODE auto -SRVCSTART system -SPFILE
    Instance created.
    Now When I shutdown the whole system and start it up, the standby database startup. the only thing is that the standby database startup a read-only mode, defautl with oracle 10g this is fine for me, because the MRP is stopped but the log shipping is not stopped.
    So eventhough the system admin shutdown the database server at OS level without letting me know, tha standby should continue receiving archived log files.
    I'll just need to monitore the lop apply process and start it to apply archived log files received
    Thanks

  • How to abort instance using a specific role

    I create a process using BPM studio 10g. I create a role named GDadmin and a participant named GDadmin. No activity or interactive activity is in the GD admin role.
    In the BPM standalone 10g, I create a participant and role both named GDadmin. This user can abort the instance. However, if I login as GDadmin, the workitem table is empty.
    I want to the GDadmin can view all current instances. This user can also abort the selected instances.
    Which activity can be used to let the GDadmin view all current instances and activity as well as abort them?
    Thanks a lot.

    You could accomplish the abort of instances using PAPI, but the problem is most actvities are not abortable (nor should they be) and the PAPI call will throw exceptions when you try aborting it.
    I use the logic shown below to both grab and abort instances in a single step.
    The process has a Grab activity that this invokes automatically called "GrabAutomatic". This is the Grab that has "From all / To all" and its "Abortable" properties enabled. The GDAdmin role in your process would need a Global Interactive that has the logic shown below. You'd need to add a new participant ("AUTOCLIENT" in the logic below) that has the role assigned where the automatic Grab is located. Before running this logic, the Global Interactive that the GDadmin would invoke would present the user with a list of instances that the GDadmin would select. Based on the work item instances selected, this logic would grab and abort them in a single step.
    <pre class="jive-pre"><p />bp as BusinessProcess
    do
    logMessage "PapiHelper: actionGrabAndAbort: Entry: instance: " + instanceToActOn.instanceIn
    using severity = DEBUG
    instF as InstanceFilter = InstanceFilter()
    instances as Fuego.Papi.Instance[]
    instanceDescription as String
    connectTo bp
    using url = Fuego.Server.directoryURL,
    user = "AUTOCLIENT",
    password = "P",
    process = "/" + processName
    create(instF, processService : bp.processService)
         instF.searchScope = SearchScope(participantScope : ParticipantScope.ALL,
              statusScope : StatusScope.ONLY_INPROCESS)
    addAttributeTo instF
    using variable = VarDefinition.INSTANCE_NUMBER,
    comparator = Comparison.IS,
    value = instanceToActOn.instanceIn
    instances = getInstancesByFilter(bp, filter : instF)
    for each inst in instances do
    logMessage "PapiHelper: actionGrabAndAbort: Found it: " + inst.id
    using severity = DEBUG
    do
    // change this to be the name of your Grab Activity
    grab inst using grabActivity = "GrabAutomatic"
    logMessage "PapiHelper: actionGrabAndAbort: Grabbed Instance Status: " + inst.grabbed
    using severity = DEBUG
    do
    runTask inst
    using activity = "GrabAutomatic"
    logMessage "PapiHelper: actionGrabAndAbort: Ran Grab " + inst.grabbed
    using severity = DEBUG
    on e as Exception
    logMessage "PapiHelper: actionGrabAndAbort: tried to run grab and failed because no task to run in Grab"
    using severity = DEBUG
    end
    abort inst
    logMessage "PapiHelper: actionGrabAndAbort: Routed back"
    using severity = DEBUG
    on e1 as Exception
    logMessage "PapiHelper: actionGrabAndAbort: Exception when running or routing: " + e1.cause
    using severity = DEBUG
    errors = errors + "Instance could not be grabbed and reassigned\n\n"
    logMessage "PapiHelper: actionGrabAndRoute: Errors: " + errors
    using severity = DEBUG
    end
    end
    on exit
    disconnectFrom bp
    end </pre>
    Dan

  • Global Activity to use while using PAPI

    Hi,
    I want to create an instance by adding PAPI code to a web-service or by exposing my process as a web-service. Which Global Activity do we use while creating an instance using PAPI ? Is it Global Automatic or Global Creation?

    Hi,
    You can create a new work item instance in a process using (1) PAPI (the Java API) or (2) PAPI-WS (the web service API) or (3) the process specific web service running on the Engine's port 9000. When you do this, the work item instance goes directly into the Begin activity of the process. Once there the work item instance is created and is automatically routed to the first activity in the process.
    There are many reasons for using Global Interactive and Global Automatic activities in a process but you do not need to use a Global Interactive or Global Automatic activity when creating instances using any of these 3 APIs.
    Once an instance is created using any of these 3 APIs, the work item instance immediately and automatically flows to the next activity in the process downstream of the Begin activity.
    Dan

  • Creating a new work item instance in a process using PAPI

    I'm seeing that there are a lot of questions on this forum about using Oracle BPM 10g's Java API called PAPI.
    I just uploaded a step by step document on how you could do this using JDeveloper 11. Here's the link to this document: http://www.4shared.com/file/126507332/e814a3a8/CallingPapi.html. The Oracle BPM project I used for this step-by-step document is also in this zip file. If you're curious, this also describes how to download, install and start JDeveloper 11.
    This is not formal Oracle documentation, but I know from teaching our Oracle BPM Bootcamp class that getting PAPI to work is sometimes a challenge and thought this might help. I tried to write it with the "Java Newbie" in mind so do not panic if you aren't an expert in Java (I'm sure not ?:| ).
    This is a simple example that uses most of the logic found in the PAPI documentation on http://download.oracle.com/docs/cd/E13154_01/bpm/docs65/papi/index.html?t=modules/papi/c_Head_PAPI.html in the "Writing Your First Java PAPI Program" section of this document.
    The document provides a step-by-step description on how how to use PAPI to:
    <li> interface to processes running on an Oracle BPM Enterprise Engine using the same logic that is in the Oracle BPM PAPI documentation
    <li> interface to processes running on an Oracle BPM Studio Engine
    <li> list processes currently running on the Engine using the same logic that is in the Oracle BPM PAPI documentation
    <li> list the work item instances running on the Engine using the same logic that is in the Oracle BPM PAPI documentation
    <li> create a new work item instance in a process and pass in input argument variables to the new instance as it is created.
    Hope you find this useful,
    Dan

    Hi
    i have gone through your example. It gives good information how to connect to BPM engine through java papi client. I have followed exactly the same steps given in the PDF document. But it throws the exception on both java client side and BPM Suite.
    Steps followed :
    1. Import sampleproject.exp into Oracle BPM studio and start the BPM engine.
    2. Imported the fuegopapi-client.jar and Write the JAVA PIPA client to connect Oracle BPM Engine.
    complete example code:_
    import fuego.papi.CommunicationException;
    import fuego.papi.InstanceInfo;
    import fuego.papi.ProcessService;
    import fuego.papi.ProcessServiceSession;
    import fuego.papi.OperationException;
    import java.util.Properties;
    public class ProcessAPIClient {
         public static void main(String[] args) {
    /////////////////// API Initialization ///////////////////
    Properties configuration = new Properties();
    configuration.setProperty(ProcessService.DIRECTORY_ID, "default");
    configuration.setProperty(ProcessService.DIRECTORY_PROPERTIES_FILE, "directory.xml");
    configuration.setProperty(ProcessService.PROJECT_PATH, "C:\\Oracle\\OracleBPMWorkspace\\SampleProject" );
    configuration.setProperty(ProcessService.WORKING_FOLDER, "/tmp");
    try {
    ProcessService processService = ProcessService.create(configuration);
    /////////////////// Establish a session ///////////////////
    ProcessServiceSession session = processService.createSession("test", "test", null);
    /////////////////// 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());
    /////////////////// 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();
    It throws the following exception and output on java client._
    Could not enhance type with bytecode info: java.lang.NoSuchMethodError: org.apache.bcel.classfile.Method.getArgumentTypes()[Lorg/apache/bcel/generic/Type;
    Could not enhance type with bytecode info: java.lang.NoSuchMethodError: org.apache.bcel.classfile.Method.getArgumentTypes()[Lorg/apache/bcel/generic/Type;
    Could not enhance type with bytecode info: java.lang.NoSuchMethodError: org.apache.bcel.classfile.Method.getArgumentTypes()[Lorg/apache/bcel/generic/Type;
    Could not enhance type with bytecode info: java.lang.NoSuchMethodError: org.apache.bcel.classfile.Method.getArgumentTypes()[Lorg/apache/bcel/generic/Type;
    Could not enhance type with bytecode info: java.lang.NoSuchMethodError: org.apache.bcel.classfile.Method.getArgumentTypes()[Lorg/apache/bcel/generic/Type;
    Could not enhance type with bytecode info: java.lang.NoSuchMethodError: org.apache.bcel.classfile.Method.getArgumentTypes()[Lorg/apache/bcel/generic/Type;
    Could not enhance type with bytecode info: java.lang.NoSuchMethodError: org.apache.bcel.classfile.Method.getArgumentTypes()[Lorg/apache/bcel/generic/Type;
    Could not enhance type with bytecode info: java.lang.NoSuchMethodError: org.apache.bcel.classfile.Method.getArgumentTypes()[Lorg/apache/bcel/generic/Type;
    Could not enhance type with bytecode info: java.lang.NoSuchMethodError: org.apache.bcel.classfile.Method.getArgumentTypes()[Lorg/apache/bcel/generic/Type;
    Creating ProcessService with id 'SampleProject'.
    Local folder /tmp\system\Schema33871921573571055\catalogs found.
    Loading catalogs from local folder: /tmp\system\Schema33871921573571055\catalogs
    0 jars found locally.
    [CatalogMgrCache] =======================
    Registering CatalogMgr [SampleProject] ...CatalogManagerCache 23240993:
    Managers:
    Counters:
    [CatalogMgrCache] =======================
    CatalogMgr [SampleProject] REGISTERED!CatalogManagerCache 23240993:
    Managers:
    {SampleProject=fuego.util.LocalCatalogManager@40b187}
    Counters:
    ProcessService 'SampleProject' created successfully.
    Process: /SampleProcess#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.
    Exception in thread "main" java.lang.NoClassDefFoundError: javax/jms/MessageEOFException
         at java.lang.Class.forName0(Native Method)
         at java.lang.Class.forName(Class.java:169)
         at $Proxy24.<clinit>(Unknown Source)
         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
         at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
         at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
         at fuego.papi.impl.AbstractProcessControlHandler.newProxyInstance(AbstractProcessControlHandler.java:52)
         at fuego.papi.impl.rmi.RMIProcessControlHandler.createProxy(RMIProcessControlHandler.java:47)
         at fuego.papi.impl.rmi.RMIEngineAccessImpl.createProcessControl(RMIEngineAccessImpl.java:111)
         at fuego.papi.impl.ProcessServiceImpl.createProcessControl(ProcessServiceImpl.java:1082)
         at fuego.papi.impl.ProcessServiceSessionImpl$1.run(ProcessServiceSessionImpl.java:2698)
         at fuego.papi.impl.ProcessServiceImpl.executeEngineOp(ProcessServiceImpl.java:1675)
         at fuego.papi.impl.ProcessServiceSessionImpl.getProcessControl(ProcessServiceSessionImpl.java:2703)
         at fuego.papi.impl.ProcessServiceSessionImpl.processGetInstances(ProcessServiceSessionImpl.java:2365)
         at com.eds.comet.bpm.oracle.papi.client.ProcessAPIClient.main(ProcessAPIClient.java:30)
    Caused by: java.lang.ClassNotFoundException: javax.jms.MessageEOFException
         at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
         at java.security.AccessController.doPrivileged(Native Method)
         at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
         at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
         ... 16 more
    It throws the following exception and output on Oracle BPM Suite._
    Client 'Id=test, Name=test, In=1, Session=564242434' was not found in lists ', PARTICIPANTS' while disconnecting it.
    Please help me to resolve this. I noticed it is able to connect BPM engine and retrieve process list. But while getting instances, it throws the exceptions on both Java Client and BPM engine side.
    Thanks and Regards
    Mahesh

  • 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

  • Problem using PAPI-WS for external process notifcation

    Hello,
    I'm trying to have an external Java application send a process notification using PAPI-WS.
    I have a process instance currently sitting at a notifcation wait step (configured to wait for an external notification) but each time I call processSendNotification I get the an unspported operation exception. I'm not even sure this is the correct ws operation to use but looking at the PAPI API reference it seemed the most likely.
    Below is a snippet from the code I'm testing this with and the corresponding output including the exception:
    for (InstanceInfoBean instance : instances.getInstances())
    String waitStep = "WaitForDelivery";
    System.out.println("-> process id = " + instance.getId());
    // find which instance are waiting on delivery
    if (waitStep.equals(instance.getActivityName()))
    System.out.println(" -> " + instance.getAuthor() + " is waiting on delivery!");
    papiWebServicePort.processSendNotification(instance.getId(), waitStep, null, null);
    Process: WhatToHave
    -> process id = /WhatToHave#Default-1.0/2/0
    -> process id = /WhatToHave#Default-1.0/1/0
    -> Andy is waiting on delivery!
    Could not perform the requested operation
    stubs.OperationException_Exception: The BEA AquaLogic® BPM Engine version does not support the required operation.Please ask BEA AquaLogic® BPM Administrator for assistance.
         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
         at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
         at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
         at com.sun.xml.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:127)
         at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:254)
         at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:224)
         at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:117)
         at $Proxy31.processSendNotification(Unknown Source)
    I'm doing this all using BPM Studio 6.0.2 (build 85749) on Linux.
    Any help or pointers greatly appreciated,
    Thanks,
    Mike

    Hello,
    I'm trying to have an external Java application send a process notification using PAPI-WS.
    I have a process instance currently sitting at a notifcation wait step (configured to wait for an external notification) but each time I call processSendNotification I get the an unspported operation exception. I'm not even sure this is the correct ws operation to use but looking at the PAPI API reference it seemed the most likely.
    Below is a snippet from the code I'm testing this with and the corresponding output including the exception:
    for (InstanceInfoBean instance : instances.getInstances())
    String waitStep = "WaitForDelivery";
    System.out.println("-> process id = " + instance.getId());
    // find which instance are waiting on delivery
    if (waitStep.equals(instance.getActivityName()))
    System.out.println(" -> " + instance.getAuthor() + " is waiting on delivery!");
    papiWebServicePort.processSendNotification(instance.getId(), waitStep, null, null);
    Process: WhatToHave
    -> process id = /WhatToHave#Default-1.0/2/0
    -> process id = /WhatToHave#Default-1.0/1/0
    -> Andy is waiting on delivery!
    Could not perform the requested operation
    stubs.OperationException_Exception: The BEA AquaLogic® BPM Engine version does not support the required operation.Please ask BEA AquaLogic® BPM Administrator for assistance.
         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
         at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
         at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
         at com.sun.xml.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:127)
         at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:254)
         at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:224)
         at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:117)
         at $Proxy31.processSendNotification(Unknown Source)
    I'm doing this all using BPM Studio 6.0.2 (build 85749) on Linux.
    Any help or pointers greatly appreciated,
    Thanks,
    Mike

  • Abort an instance using ProcessService (Fuego.Papi.ProcessService)

    Hi Folks,
    I want to abort a process instance using ProcessService (Fuego.Papi.ProcessService)
    This is how i am trying to do the same:
    +if (ivBPMObject1.bpmObject1Option != "TRUE") {+
    ProcessService.connectTo(url : Fuego.Server.directoryURL, user : "pavan",
    password : "");
    +// ivInstance2Id is the InstanceId of the other split branch which is alive and which needs to be suspended+
    lvInstance = ProcessService.getInstance(instance : ivInstance2Id.id);
    +// abort+
    lvInstance.abort();
    ProcessService.disconnectFrom();
    +}+
    I get the following exception in the line lvInstance.abort() :.
    The batch operation could not be executed for all selected instances.
    Internal Exceptions:
    +>> /MainProcess#Default-1.0/1/2:+
    Instance '/MainProcess#Default-1.0/1/0' could not be locked because participant 'Server' is currently locking it
    I am running this from the Embedded Workspace of Oracle BPM Studio and I dont see any participant 'Server' in the directory.
    How can i suspend/abort this instance?
    Is there a way that my user/participant 'pavan' can be given rights/privelege to take 'Server's instances?
    I tried using 'Server' as user but i dont know the credentials for 'Server' - so that attempt too failed :(.
    can anyone please help me out?
    Regards,
    user8702013

    Thank you Ariel,
    Yes, I have two 'approvals' happening in parallel - in two branches of a split. when one approval comes 'unapproved', there is no point continuing with the other - i have to abort it.
    But if i set the setting to 'generate independent copies', how will i get the 'instanceId' of the second branch when only the first branch has reached the 'join'? (i had thus made the 'shared' to be true).
    My requirement is that i have two branches in a split. these two split branches call two different approval subprocess which go into user interaction tasks. but when one one approval is rejected (and reaches the join), i want to abort the other instance (atleast of the called subprocess) so that the redundant approval user task of the second branch can be avoided.
    I have been struggling with this for the past couple of days :(
    I am trying to see if i can get the 'instances' of the subprocess in question and find the instance to be killed (aborted) by checking the parents (the parent should be my process). i am getting problems there too. am stranded...
    Regards,
    user8702013

  • Update Instance Variables using PAPI

    I have a need to update Instance Variables for a bunch of instances. Can this be done using PAPI? I am writing a global function that can search the instances and update. How can I update these variables...thank you

    Hi,
    I think that the best way of changing instance variables using papi is by adding a global activity (with instance access) and pass the new variable values as arguments. Pay attention that you have to define those arguments in the activity.
    Then, you can assign those values to the instance using PBL.
    http://download.oracle.com/docs/cd/E13154_01/bpm/docs65/papi_javadocs/fuego/papi/ProcessServiceSession.html#activityExecute(fuego.papi.Activity,%20fuego.papi.InstanceInfo,%20fuego.papi.Arguments)
    I do suggest avoiding sending interruptions to instances, because once the notification is sent (and the papi method returns successfully), the notifications will be processed in another transaction.
    Hope this helps,
    Ariel A.

  • How to change the attribute of process instance by PAPI web service

    Is it possible to change the value of the attribute of one process instance by PAPI web servcie?
    thanks!

    That information is stored in the table PPROCINSTANCE in the engine database in the column instancedata, it is a blob.
    HTH

  • Finding PeopleSoft Process Instance using Oracle session info

    Hi:
    I'm on Oracle 10.2.0.3 and PeopleSoft Financials 8.9.
    Does anybody know how to get PeopleSoft Process Instance using v$session, v$process and other info?
    TIA.

    Hey Sybrand,
    Thanks for your reply.
    I am actually a dba trying to help PeopleSoft developers. The question is on the edge between Oracle & PeopleSoft. And yes, I took a close look at v$session. It shows Oracle Session info while Process Instance is a PeopleSoft identifier sitting in PSPRCSRQST table. I intuitively feel that there should be a database-level connection between the two.
    All ideas appreciated.
    I hope they will show PI in v$session in subsequent versions of Oracle...

  • How to terminate Correlation using Papi Call in Java

    Hi ,
    I have process processP1 in which there is a automatic activity A1, within this activity I am creating a correlation with the combination of customer_id and loan_id.
    Correlation.initiate(name : CORRELATION_NAME, values : { customer_id, loan_id });
    After that, there is a subprocess processP2, after the instance is prcessed completely in processP2, I have another automatic activity A2 in processP1 , I am terminating the correlation .
    Correlation.terminate(name :CORRELATION_NAME)
    One issue which I am facing is there is a instance for which a correlation was created, it failed in processP2 and was aborted. This particular instance never went to A2 the correlation was not terminated.
    Whenever the same combination of customer_id and loan_id is getting created, it is showing as duplicate entry.
    Is there a way to clear / terminate that particular correlation? Can It be done using Papi ?
    Any suggestions / advice would help.
    Thanks,

    Sreekant wrote:
    Hi ,
    I have process processP1 in which there is a automatic activity A1, within this activity I am creating a correlation with the combination of customer_id and loan_id.
    Correlation.initiate(name : CORRELATION_NAME, values : { customer_id, loan_id });
    After that, there is a subprocess processP2, after the instance is prcessed completely in processP2, I have another automatic activity A2 in processP1 , I am terminating the correlation .
    Correlation.terminate(name :CORRELATION_NAME)
    One issue which I am facing is there is a instance for which a correlation was created, it failed in processP2 and was aborted. This particular instance never went to A2 the correlation was not terminated.
    Whenever the same combination of customer_id and loan_id is getting created, it is showing as duplicate entry.
    Is there a way to clear / terminate that particular correlation? Can It be done using Papi ?1. Get the instances by using the below method. the below method is avliable in the ProcessServiceSession calss.
    InstanceInfo processGetInstanceByCorrelation(String processId,
    String correlationName,
    Object[] correlationValues)
    throws OperationException
    2. Notiy these instances using the method. the below method is avliable in the ProcessServiceSession calss
    processSendNotification(String targetInstanceOrProcessId,
    String activityName,
    String targetArgumentsSetName,
    Arguments notification)
    throws OperationException
    >
    Any suggestions / advice would help.
    Thanks,Hope this helps
    Narasimha

  • How to notify a Notification Wait activity using PAPI

    I am trying to use Papi code to release an instance waiting in the notification wait activity of a process deployed in the enterprise server .... for this I am running the papi code from main method of a java class running in eclipse using the notify.send(........) method ........but when the code hits the notify.send(.......) method it is giving the following error :
    Exception in thread "main" java.lang.IllegalStateException: The component must be invoked on a server-side method.
         at fuego.components.ProcessInstance.getCurrent(ProcessInstance.java:590)
         at fuego.components.Notification.send(Notification.java:229)
         at PapiCode.main(PapiCode.java:61
    Can someone point out the error and how to resolve it ??

    Hi,
    I am a little confused with the package name of the classes and components you are invoking. If you are using the Client API PAPI, then the package name should be fuego.papi.*.
    I think you are using the internal components that should be used within a process implementation that assume running in the context of the Engine instead of a pure client application.
    Unless I am interpreting this incorrectly, you should use a client Java Application using PAPI to connect to a deployed process into an OBPM Engine.
    I would recommend you take a look at the very good introduction document that talks about PAPI, explains how to compile a program and also talks about how to write your first PAPI program client. It will also outline all the needed jar files need to include from a client application perspective. The link is: http://download.oracle.com/docs/cd/E13154_01/bpm/docs65/papi/index.html.
    You may alternatively like to check the main Oracle BPM 10gR3 Documentation page through this link: http://download.oracle.com/docs/cd/E13154_01/bpm/docs65/index.html
    HTH,
    eduardoc.

Maybe you are looking for