将信息传递给WSO2 BPMN

时间:2016-01-11 06:15:58

标签: wso2 bpmn

我正在使用WSO2 BPMN定义一个工作流程,它将与我们的应用程序集成。在实例化进程时(从我们的应用程序),我需要将少量信息从我们的应用程序传递到BPMN任务,该任务将显示在任务屏幕中。该信息将保留在工作流程的所有任务中。我怎样才能做到这一点?

1 个答案:

答案 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);
        }
    }

希望这可以解决您的问题。