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.
Show replies by date