【问题标题】:In a Camunda embedded form, how do you specify the bound variable scope?在 Camunda 嵌入式表单中,如何指定绑定的变量范围?
【发布时间】:2019-01-09 09:26:25
【问题描述】:

在用户任务中,嵌入表单标记的一部分是

...
  <div class="form-group">
    <label for="reference">Reference</label>
    <input class="form-control"
           cam-variable-name="reference"
           cam-variable-type="String"
           name="reference" />
  </div>
  ...

在输入表单时,reference 字段应为空。在提交表单时,关联的 Camunda 流程变量会按照预期将参考文本填充为单个 String

阅读 Camunda 手册、论坛等,没有指定绑定变量范围的设置,

对于这个表单域,我希望使用局部变量(任务范围),而不是流程实例范围的变量。

如果使用流程变量,如果有以下用户任务的表单使用相同的变量名,则该表单字段将填充先前输入的值。

我了解变量可以通过编程方式重置,并且我可以使用不同的变量名称,但使用局部变量可以避免这种情况。

此外,使用过程变量会导致变量数量过多,如

所示
cockpit > running process instances > [process-name] > [instance GUID] > variables

一般来说,除非该值稍后使用,否则基于表单的变量仅在表单设置和操作处理期间具有相关性。

【问题讨论】:

    标签: camunda


    【解决方案1】:

    要在用户表单中设置局部变量,最简单的方法是在创建任务的任务侦听器中定义它们。然后就可以在表单中引用带有 cam-variable-name 的变量了。

    查看此帖子了解更多详情:https://forum.camunda.org/t/variables-in-parallel-process/1476/3

    【讨论】:

    • 为了澄清,必须使用 setVariableLocal() 在“创建”任务侦听器中定义所需的局部变量。然后,即使在流程范围内存在同名的变量,嵌入式表单也会使用这些局部变量。此外,其他任务侦听器,例如“完成”,必须使用 getVariableLocal()。
    猜你喜欢
    • 1970-01-01
    • 2010-12-03
    • 1970-01-01
    • 1970-01-01
    • 2016-09-19
    • 1970-01-01
    • 2014-05-26
    • 1970-01-01
    • 2015-02-20
    相关资源
    最近更新 更多