jeffen2006的专栏

当我们往前仰望大师的遥远背影时,我们总是期望有那么一个快捷方式能够赶上他们,但事实上并不存在这个快捷方式,大师们所花费的时间是我们所尚未付出的、他 们所花费的精神是我们尚未投入的、中间所历经的苦恼是我...

jbpm中的starttask,鸡肋?

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就太无聊了。不解。

 

 

 

 

阅读更多
上一篇java调用tuxdeo--jolt篇
下一篇06-11-20随笔
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭