2017-10-16 102 views
0

我已经创建了一个利用脚本任务(exam_result as integer,exam_grade as integer,remarks as string)作业的工作流程。在用户任务中,我创建了一个表单参考(带有文本框),用于处理考试结果的数据输入。 考试结果文本字段应传递给exam_result变量,该变量将通过决策表任务进行评估。Activiti,将表单字段控制值传递给脚本任务变量(反之亦然)

将数据从表单字段控制发送到脚本任务变量或反之的最佳做法是什么?

您的帮助非常感谢,谢谢。

回答

4

将这些值存储到执行变量中,您应该可以在所有任务中访问它们。

您可以使用任务侦听器来读取表单值并将它们存储到如下所示的执行变量中。

execution.setVariable('exam_result',task.getVariable('exam_result')); 
execution.setVariable('exam_grade',task.getVariable('exam_grade')); 
execution.setVariable('remarks',task.getVariable('remarks')); 

如果你想访问他们在另一个任务听众,

var examResult = execution.getVariable('exam_result'); 
var examgrade = execution.getVariable('exam_grade'); 
var remarks= execution.getVariable('remarks'); 

这是代表们的一面,你可以像下面访问它们。

int examResult = (int) executionVariables.get("exam_result"); 
int examGrade = (int) executionVariables.get("exam_grade"); 
string remarks = (string) executionVariables.get("remarks"); 

希望这可以帮助你。

请让我知道,如果它不清楚给你。

+0

嗨@Muralidharan我试着在用户任务符号(事件'完成')下使用任务监听器,并添加了一个表达式,但它没有奏效。 我把这个片段放在表达式文本框中: execution.setVariable('exam_result',task.getVariable('examresult')); 它仍然没有将examresult的文本值传递给exam_result脚本变量。 –

+0

你能分享bpmn文件吗? –

+0

嗨@Muralidharan,我设法改变方法,因为我发现即时通讯使用文本控件而不是数字控件,为什么逻辑表达式小于等于等等没有显示在下拉列表中。感谢您的努力和帮助 –