jbpm的tasknode可谓功能强大,在实际中应该是用得最多的节点了,当程序运行到tasknode,会自动生成我们配置的taskinstance,不同的actionid找到自己的taskinstance就可以按单操作了,很是方便。
还有一种task很高调的出现在jbpm的websale例子中,就是startstate下配置task,起初我也是认为它和在tasknode下的task一样,会自动生成taskinstance,但是我错了。
如下是websale中的配置:
<start-state name="create new web sale order">
<task swimlane="salesman">
<controller>
<variable name="item"/>
<variable name="quantity"/>
<variable name="address"/>
</controller>
</task>
<transition to="evaluate web order"/>
</start-state>我在程序中做了如下实验:
TaskInstance bankertaskInstance =(TaskInstance)context.getTaskMgmtSession().findTaskInstances("ernie").get(0);
//List中根本就没有值,因为jbpm_taskInstance表中没有这条数据。于是我决定自己创建taskInstance,虽然这不是我的本意,这些应该是jbpm自动完成的呀
Task startTasks = context.getGraphSession().findLatestProcessDefinition("jeffentask").getTaskMgmtDefinition().getStartTask();
TaskInstance taskInstance=new TaskInstance(startTasks.getName());
taskInstance.create();
//context.save(taskInstance);//我以为需要自己进行持久化,结果空指针异常,taskInstance为null
taskInstance.start();
taskInstance.end();//仍然没有保存到jbpm_taskinstance表
token.signal();//taskInstance.end没有像tasknode中的task代替token.signal()难道startstate中的task的作用只是设置流程变量供后续流程使用,仅此而已那jbpm就太无聊了。不解。

本文探讨了JBPM中StartState配置Task的实际应用,通过实验发现StartState下的Task不会自动生成TaskInstance,并分析其可能主要用于设置流程变量。
1230

被折叠的 条评论
为什么被折叠?



