jbpm 6.5 Spring Embedded Process Instance creation and interaction

67 views
Skip to first unread message

Tony Cattlin

unread,
May 8, 2017, 9:59:00 AM5/8/17
to jBPM Development
Hi, 

- I am using JBPM 6.5 in Eclipse with a bpmn process embedded using Spring.
- I call startWorkflow using the method below
- I then call instanceCount using the method below
- but I am getting the output shown below the code.

The main thing is, I want to be able to get hold of the process instances that were created and manipulate them (not only count, but actionTask etc etc)

Am I going about this the correct way ?
If so, why do I see 0 instances in the output ?

Any help much appreciated.

cheers

Tony


...
    @Autowired RuntimeManager runtimeManager;
    ArrayList<ProcessInstanceIdContext> contexts = new ArrayList<ProcessInstanceIdContext>();
    
    public Long startWorkflow(String workflowIdentifier, Map<String, Object> parameters) {
        ProcessInstanceIdContext theContext = ProcessInstanceIdContext.get();
        RuntimeEngine engine = runtimeManager.getRuntimeEngine(theContext);
        KieSession session =  engine.getKieSession();

        ProcessInstance pi = session.startProcess(workflowIdentifier, parameters);

        contexts.add((ProcessInstanceIdContext)theContext);
        
        LOGGER.debug("Instance added:" + pi.getId() + ":" + pi.getProcessName() + ":" + pi.getProcessId());
        
        return pi.getId();
    }

    public int instanceCount(String processName) {
        int instanceCount = 0;
        for (ProcessInstanceIdContext theContext : contexts) {
            LOGGER.debug ("1:" + theContext.getContextId());
            LOGGER.debug ("a:" + theContext);
            RuntimeEngine engine = runtimeManager.getRuntimeEngine(theContext);
            LOGGER.debug ("2");
            KieSession session =  engine.getKieSession();
            LOGGER.debug ("3:Instance Count=" + session.getProcessInstances().size());
            for(ProcessInstance pi : session.getProcessInstances()) {
                LOGGER.debug("Instance found:" + pi.getProcessName() + ":" + pi.getId() + ":" + pi.getProcessId());
                if (pi.getProcessName().equalsIgnoreCase(processName)) 
                    instanceCount++;
            }
        }
        
        return instanceCount;
    }
...

08 May 2017 14:47:24,283 DEBUG   main com.tony.WorkflowEmbeddedService - 1:null
08 May 2017 14:47:24,283 DEBUG   main com.tony.WorkflowEmbeddedService - a:org.kie.internal.runtime.manager.context.ProcessInstanceIdContext@19484b78
08 May 2017 14:47:24,283 DEBUG   main com.tony.WorkflowEmbeddedService - 2
08 May 2017 14:47:24,283  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,283  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,283  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,283  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,283  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,283  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,283  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,283  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,283  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,283  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,298  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,298  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,298  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,298  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,298  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,298  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,298  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,298  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,298  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,298  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,298  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,298  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,298  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,298  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,298  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,487  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,487  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,487  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,487  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502 DEBUG   main com.tony.WorkflowEmbeddedService - 3:Instance Count=0
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502 DEBUG   main com.tony.WorkflowEmbeddedService - 1:null
08 May 2017 14:47:24,502 DEBUG   main com.tony.WorkflowEmbeddedService - a:org.kie.internal.runtime.manager.context.ProcessInstanceIdContext@567e8b53
08 May 2017 14:47:24,502 DEBUG   main com.tony.WorkflowEmbeddedService - 2
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,502 DEBUG   main com.tony.WorkflowEmbeddedService - 3:Instance Count=0
08 May 2017 14:47:24,502  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,518  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager
08 May 2017 14:47:24,518  WARN   main org.hibernate.internal.SessionImpl - HHH000027: Calling joinTransaction() on a non JTA EntityManager

Maciej Swiderski

unread,
May 8, 2017, 11:15:15 AM5/8/17
to Tony Cattlin, jBPM Development
Tony,

you should use auditLogService from runtime engine to get hold of information about active instances etc. Getting it from session won’t work for persisted process instances are not kept in memory so the getProcessInstances method returns only values when persistence is disabled.

Maciej
--
You received this message because you are subscribed to the Google Groups "jBPM Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jbpm-developme...@googlegroups.com.
To post to this group, send email to jbpm-dev...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jbpm-development/4e4ddfef-e803-4b72-8ff0-933c50d9edac%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Tony Cattlin

unread,
May 8, 2017, 11:37:59 AM5/8/17
to jBPM Development, tony.c...@gmail.com
Thanks Maciej, 

Will ditch my idea then and look at the auditLogService. 

What about interacting with tasks ? Can I use the taskService from the engine by saving the contexts as per my code below?

Maciej Swiderski

unread,
May 8, 2017, 11:53:21 AM5/8/17
to Tony Cattlin, jBPM Development
yes, you can use taskService from runtime engine to interact with tasks. Though I’d recommend to use jbpm services instead of runtime manager api - see this for details Cross framework services in jBPM 6.2

Maciej
Reply all
Reply to author
Forward
0 new messages