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

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值