我正在使用WSO2 BPMN定义一个工作流程,它将与我们的应用程序集成。在实例化进程时(从我们的应用程序),我需要将少量信息从我们的应用程序传递到BPMN任务,该任务将显示在任务屏幕中。该信息将保留在工作流程的所有任务中。我怎样才能做到这一点?
答案 0 :(得分:0)
是的,您可以通过为每个任务(用户任务)引入表单变量来实现。但如果它是一项服务任务,您必须编写一个自定义java类来读取变量,然后将其添加到主配置选项卡中的类名字段作为属性在activiti设计师。通过服务任务读取流程变量的示例自定义java类可以如下实现。正如您在下面的代码中看到的那样, employeeSalary 和 workingPeriod 是可以从特定进程(从您的应用程序)传递的两个变量。您可以通过调用 execution.setVariable(" variableName",value)方法将这些变量设置为任务变量。
package org.wso2.bps.serviceTask;
import java.util.Random;
import org.activiti.engine.delegate.DelegateExecution;
import org.activiti.engine.delegate.JavaDelegate;
/**
* Service task to calculate Bonus for employees
*
*/
public class App implements JavaDelegate {
public void execute(DelegateExecution execution) throws Exception {
int salary = Integer.parseInt((String) execution.getVariable("employeeSalary"));
int numOfWorkingDays = Integer.parseInt((String) execution.getVariable("workingPeriod"));
Random randomGenerator = new Random();
int value = randomGenerator.nextInt(10);
int result = salary + (numOfWorkingDays * value);
execution.setVariable("result", result);
}
}
希望这可以解决您的问题。