activiti - 检查过程变量是否为空

时间:2018-01-30 12:04:05

标签: groovy alfresco activiti

我需要检查一个流程变量是否为空,这样我就可以在我的流程中保留一系列任务。

我有一个名为totaltasks的本地流程变量integer

在我的脚本中,我只是检查此变量是否为空或null,然后将脚本的其余部分基于此:

//If process variable has never been initialised
if( execution.getVariable("totaltasks") === null && execution.getVariable("totaltasks") === 'undefined' ) {
    //set default value to 1 and initialise it
    int totalTasks = 1;
    execution.setVariable("totaltasks", totalTasks);
}
else {
    //otherwise, just increment the current value
    int totalTasks = (int)execution.getVariable("totaltasks");
    totalTasks += 1;
    execution.setVariable("totaltasks", totalTasks);
}

代码看起来很稳定,但我在控制台中收到以下错误:

  

org.springframework.web.util.NestedServletException:Request   处理失败;嵌套异常是   org.activiti.engine.ActivitiException:问题评估脚本:   org.codehaus.groovy.control.MultipleCompilationErrorsException:   启动失败:类生成期间的常规错误:null。   Script6.groovy

我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

您可以简化代码,如下所示,以避免使用MultipleCompilationErrorsException

int totalTasksCount = execution.getVariable("totaltasks") as Integer
if(  totalTasksCount && totalTasksCount == 'undefined' ) {
    //set default value to 1 and initialise it
    int totalTasks = 1;
    execution.setVariable("totaltasks", totalTasks);
}
else {
    //otherwise, just increment the current value
    int totalTasks = totalTasksCount
    totalTasks += 1;
    execution.setVariable("totaltasks", totalTasks);
}