如何在Activiti中基于运行时的另一个字段值设置字段值

时间:2016-10-18 08:05:50

标签: activiti

enter image description here

我的Activiti表单中有两个字段。我有两个字段DatedDate Received,它们都采用日期值。我试图找到最适合我的任务的Activiti服务。

我的任务是这样的:当Dated填充日期时,Date Received字段将获取Date Received字段的值。所以例如如果Date Received的日期为12/03/1990,那么在运行时,Dated字段也会获取该值。

我尝试实现以下逻辑,但我不知道这是否是实现此目的的正确方法。

@Component("helloWorldBean")    
public class HelloWorldBean implements JavaDelegate{

        @Override
        public void execute(DelegateExecution execution) throws Exception {

            RuntimeService runtime = execution.getEngineServices().getRuntimeService();
            runtime.setVariable(execution.getId(), "addLetter-targetdatesladate", "HELLO WORLD");
        }
}

这是访问运行时服务的正确方法吗?我还检查了dynamic field Injection部分here下的Activiti用户指南。

2 个答案:

答案 0 :(得分:0)

此处有明显插件的道歉,但BP3的Brazos UI框架恰好处理了这种情况。过程9或任务)变量在过程的上下文中自动更新,因为它们在页面/表单上更新。并且可以链接更新,以便更新一个变量自动驱动流程本身内的另一个变量的更新(而不仅仅是在表单上)。

这样,多个用户可以订阅同一组进程(或任务)变量,并立即看到其他人做出的更新。

可能这个答案会被拉出来,但听起来这样可以很好地满足你的用例。

Brazos Developer Edition可从www.bp-3.com免费下载

答案 1 :(得分:0)

这似乎是javascript而不是java的工作。使用dependent field字段中的值设置dependee的值(即,当用户选择字段时,应填充其他字段)。