Question on jBPM integration
by Fleiser Robert
Hello
I'm trying to understand how to use/integrate jBPM core(version 6.2.Final) inside an existing client/server application in orderto create/execute workflows with existing application's business objects andactions.
I’vedone some google search and read some jBPM 6.2 documentation but would need theopinion of some experienced developer to be sure jBPM solution couldfit the requirements for integration in our application, and also some tips how to do it.
Desired workflow behavior (no need for user tasks in the 1ststep):1)Workflow definition: user creates/edits the workflow using various customactions (existing application’s tasks, scripts, import/export procedures, etc.),then for each action:
-chooseits type (preferably from a list), then
-choosespecific action’s name/ID (preferably from a list returned by a call to ourapplication), then provide execution parameters (names-value pairs, or anordered parameters list).
-validates/savesthe workflow in BPMN2 xml format; if possible, the saving action would beperformed by our application (in DB or file on disk).
-beable to parse BPMN2 xml file using jBPM and extract workflow information (theactions definition/ordering) in order to
storeit in our DB (in a data model that refers the actions implementation, stored inour DB).
-(lessimportant, in case it is possible) be able to regenerate existing BPMN2 usingjBPM java API for minor changes (ie change one parameter value or add a new parameterfor the 3rd action in the workflow). This would suppose jBPM java APIloads a BPMN2 xml workflow definition, search for a particular action number(or ID), performs some changes in action definition and save back the workflowin BPMN2 xml format.
2)Workflow execution:
-anuser or some application entity (task, script, etc.) launches the workflow specifyingsome input parameters.
-executionresults (logs, errors) are available for further consultation.
-displaythe status of pending/executed/executing workflows.
-useris able to force stop of a pending or blocked workflow.
I’dlike to achieve the integration of jBPM editor/running core - with the leastimpact on actual application (if possible no Jboss Wildfly, no business object redefinitionin jBPM editor, etc.).
Questionsabout jBPM integration:
1)Workflow definition (concerning jBPM graphical BPMN2 editor):
1.1)can the editor be called (via some API) and displayed in a swing panel?
1.2)jBPM editor in web-client usage:
a) can jBPM editor work in Tomcat rather thanJBoss Wildfly?
b) can jBPM editor be used in a simplified manner,without maven/git usage (we have already an audit trail system for all objects,and there should be only one user to edit a workflow, no need for git support)?
c) how to model inside jBPM editor custom actionsas described above: selecting data from our application (action types, name/ID,parameters) to make it available to actions calling application’s services?
Whatkind of Object to be chosen from ‘Objects Library’? Can I or shall I definesome custom object kind in ‘Objects Library’?
ShallI define ‘Work Item definition’ for custom actions inside jBPM editor and/or injava implementing the WorkItemHandler interface?
1.3)Let’s say before workflow creation/edit it must be called:
-‘org.mycompany.services.DataRetrieveService.getWkfActions()’ service to get theavailable actions types in my application (task, script, etc) – to feed availableactions inside the editor,
-‘org.mycompany.services.DataRetrieveService.getTaskData(…)’ service to get theavailable application’s tasks ids/names – to feed concrete task s inside theeditor.
Howcan I perform such calls at editor opening, making this data available inparticular actions available for workflow editor in ‘Object library’ orworkflow’s existing actions?
2)Workflow execution:
2.1)how would you propose to launch the workflow through API, without using webclient – would like to launch it from our application – an user or some applicationentity (task, script, etc) ?
Injbpm-examples project we can see different examples of starting workflow executionwith its name/input parameters using ksession.startProcessmethod, followed by manager.disposeRuntimeEngine(runtime)at the end – is this the expected way to launch the workflow withoutweb-interface?
2.2)eventually if some examples available on how can we use jBPM java API to obtaininformation concerning pending/finished workflows executions?
-intermediateaction’s status,
-executioninput/output parameters,
-lastexecuted action, since when the current action is stuck for pending workflowexecutions.
Thanks,regards, Robert F.
6 years, 10 months