当前位置: 首页 > 知识库问答 >
问题:

使用Java API设置/获取Camunda用户任务的输入/输出参数

曹原
2023-03-14
[start_workflow] -> [user_task] -> 
-> [exclusive_gateway] -> (two routes see below) -> [end_workflow]
1.) ${if user_task output paramterer == null} -> [NULL_service_task] -> [end_workflow]

2.) ${if user_task output paramterer != null} -> [NOT_null_service_task] -> [end_workflow]

在Camunda Modeler中,我向[user_task]添加了一个输出参数(命名为out)。

问:在通过以下方式完成任务之前,如何通过Java API设置输出参数:

taskService.complete(taskId);

在[exclusive_gateway]箭头上,我设置了以下内容:

Condition type = expression
Expression = ${out != null}
runtimeService.setVariable(processInstanceId, "out", name);
runtimeService.setVariable(processInstanceId, "out", name);

那么,我是可以通过Java API设置任务的输出参数,还是只能使用过程变量呢?

共有1个答案

印飞捷
2023-03-14

我猜你在找

taskService.complete(<taskId>, Variables.putValue("out", <name>);

任务和网关之间的通信(值的转发)是通过将process-variable“out”设置为complete来实现的。

有关更多信息,请查看Javadoc。

 类似资料:
  • 目前为止,我们写的程序都是可预见的,它们每次运行时都做相同的事情。然而大多数时候我们需要程序能从用户那得到输入并随之做出反应。 有很多种方式可以得到输入,包括键盘输入,鼠标移动和按钮点击,此外还有更特别的机制,例如声控和视网膜扫描。本文我们只考虑键盘输入。 在头文件iostream.h中,C++定义了一个cin对象来处理输入,就像用cout对象处理输出一样。从用户那得到一个整型值可以这么写: in

  • 问题内容: 可以为用户输入设置计时器吗?等待10秒-进行下一个操作等。例如 问题答案: 不是开箱即用,不。通常,只有当另一个线程关闭基础流或到达输入的末尾时,Reader才会中断read()调用。 由于read()并非具有所有可中断性,因此这成为并发编程问题。知道超时的线程将需要能够中断正在尝试读取输入的线程。 本质上,读取线程将必须轮询Reader的ready()方法,而不是在没有要读取的内容时

  • 问题内容: 我正在尝试让扫描仪在循环中进行输入。一旦用户想要完成操作,他就可以退出此循环。我尝试了许多不同的方法来执行此操作,但始终存在一些问题。这是代码: 上面代码的问题(在我尝试的其他方法上也会发生)是,当用户键入 Y时 ,将跳过名字的第一个输入,并跳转到姓氏。如果用户键入 N, 则循环将正确停止。有人可以解释发生这种情况的原因,以及如何克服使用课堂的问题? ps:执行类似的操作,将导致循环终

  • 可以为用户输入设置计时器吗?等待10秒钟-进行下一步操作等。我的意思是例如

  • 我将dataSource作为的实例,并以作为驱动程序类连接到。 我的作业配置如下: 我有writer作为和正确的配置。 我不确定我遗漏了什么,请告诉我该如何修复这个问题。如果需要更多的信息,请让我知道。

  • 问题内容: 我正在尝试创建一个基本菜单,以检查输入的变量是否与定义的变量匹配。如果定义了变量,则获取已定义变量的数据。 例。 我输入 应该相等 问题答案: 这似乎是您要找的东西: 但是,这可能不是最好的策略,因为错字或恶意用户很容易使您的代码崩溃,系统过载或执行他们喜欢的任何其他讨厌的事情。对于这种特殊情况,更好的方法可能是