jBPM 6 中 Process Variable 和 Task Variable 以及它们之间的关系如下图所示:
如上,Process Variable位于Process 上下文中,Task Variable 位于Task 上下文,Task Variable 被 Task WorkItem使用,Task 通过Input Mapping获取Process 上下文中的变量,Task 通过Output Mapping将自己的变量传输给Process 上下文中。本文通过一个例子说明这一映射的过程。我们本文使用到的流程如下:
如上我们定义了三个Process Variable:name,age,content,Task Input Mapping中定义三个变量:input_name,input_age,input_content,Task Output Mapping中的三个变量:output_name,output_age,output_content,接下来我们说明如何设计及定义变量映射。
首先我们需要创建Process Variable,如下图:
其次我们创建Task Input Mapping,如下图:
最后我们定义Task Output Mapping,如下图:
本示例代码位于:https://github.com/kylinsoong/jBPM-Drools-Example/tree/master/jbpm6/parameters
运行org.jbpm.demo.params.ProcessMain可以运行如上设计的流程,会有如下结果输出:
Show Variables, Before Perameter Mapping Name: krisv Age: 35 Content: Yearly performance evaluation Show Variables, Input parameters in User Task input_name -> krisv input_age -> 35 input_content -> Yearly performance evaluation Show Variables, After Perameter Mapping Name: Kylin Age: 29 Content: performance evaluation finish