flowable - 如何将表单中选择的字符串标识符分配给Flowable 3.6.1中的子流程?
问题描述
我检查了这个主题:https ://forum.flowable.org/t/how-to-assign-as-sub-process-initiators-users-groups-that-have-been-selected-in-a-form /1429但它的答案尚未得到验证(我也无法验证)。
我想要做的只是构建一个简单的流程,其中包含动态数量的子流程,将根据开始表单中的选择动态指定受让人。实际上,子流程的数量与开始形式的选择完全相同。例如,我选择了 3 个用户标识符 A、B、C,将有 3 个子流程,一个分配给 A,一个分配给 B,另一个分配给 C。
但是,经过长时间的尝试,我发现标识符字符串“A”(与B和c相同)仅被视为a TextNode
,而受让人是字符串标识符“A”而不是真正的标识符“A”。当我调试我的可流动安装时,我在源代码中进行了评估并使用:{“jsonValue”:{“id”:“A”}JsonIndexVariableType#setValue
构建了一个新的,它最终向我展示了子流程实例中的确切用户。ObjectNode
A
我很想知道实现这一目标的实用方法,任何帮助将不胜感激。
解决方案
经过多次反复尝试,我终于找到了实现这一目标的解决方案。解决方案很简单,只需放置${user.textValue()}
而不是${user}
从TextNode
.
请记住,该变量不是纯字符串值,它实际上是 的一个实例TextNode
,这意味着toString()
方法将返回""<id>""
(双引号导致无法找到合适的受让人)。
源代码位于:
org.flowable.engine.impl.bpmn.behavior.UserTaskActivityBehavior#handleAssignments( TaskService taskService, String assignee, String owner, List<String> candidateUsers, List<String> candidateGroups, TaskEntity task, ExpressionManager expressionManager, DelegateExecution execution, ProcessEngineConfigurationImpl processEngineConfiguration)
另一种方法是使用Script Task
,Groovy
脚本,例如:
execution.setVariable("user", user.textValue())
然后你可以分配给${user}
(user
这里已经是纯字符串,这与以前的解决方案不同)。
推荐阅读
- excel - 如何使用 HTMLBody 在电子邮件上添加 VBA 签名?
- python - 分离以不同列表的值命名的 DataFrames 列表
- c# - 在 .NET Core 中路由虚 URL,无需重定向
- python - “python”命令找不到 Python2 安装
- powershell - 如何从 Powershell 调用 DOSkey 别名?
- haskell - 异构列表之间的转换
- ruby - Sorting array of hashes based on multiple values
- android - RecyclerView ViewHolder内部ConstraintLayout的性能
- php - 在 WP_Query 中限制 Woocommerce 特色产品
- javascript - 使用身份填充主题
有没有办法将 ID 设置为某个字段,然后在 <a href="mailto:& subject "> 中使用它,而不使用函数?
例如:
<input id="abc" type="text"/> <a href="mailto:someone@somet