【问题标题】:How do I store a process variable to a global variable in KIE Workbench? (jBPM 7)如何将过程变量存储到 KIE Workbench 中的全局变量中? (jBPM 7)
【发布时间】:2019-06-05 23:34:45
【问题描述】:

我有一个全局整数变量RANDOM_NUMBER

我只想将来自返回随机数的服务的响应存储到该全局变量中。我如何在工作台中做到这一点?

所以基本上RANDOM_NUMBER = result

业务流程:

变量:

服务数据 I/O:

【问题讨论】:

  • 我有一个问题,您的“通过 Kong 调用 Python 服务”步骤是如何工作的?您截屏的“服务数据 I/O”设置是哪个屏幕?我们试图在这里解决这个问题:stackoverflow.com/questions/56635406/…
  • @JonathanS.Fisher 我有一个 Python 微服务正在返回一些数据。我将该数据存储在流程变量中,并在下一步中使用该流程变量。

标签: drools jbpm kie kie-workbench


【解决方案1】:

我认为,但我不能说我仔细测试过,全局变量在流程或流程实例之间共享,并且流程数据可用于特定流程实例。

编辑:因此您可以将工作项的结果保存到流程变量中,但您必须使用代码来访问全局变量。请参阅文档的8.6.1. Variables 部分。

问题在于“结果”在退出脚本的上下文中不能作为变量使用。它是工作项的输出参数。因此,为了将工作项的结果放入一个变量中,然后可以将其复制到一个全局变量中,请创建一个流程变量(在您的情况下 result 尽管我不喜欢重复名称) 并将结果分配给它,看起来就像你所做的那样。

因此,REST 工作项的退出脚本上的脚本可能应该是。

kcontext.getKieRuntime().setGlobal("RANDOM_NUMBER", Integer.parseInt(result.trim()));

【讨论】:

  • 问题是我的 Global RANDOM_NUMBER 的目标部分没有下拉选项。
  • GlobalVariable 是否应该显示在 Target 下拉菜单中?
  • 我什至尝试过RANDOM_NUMBER = Integer.parseInt(result.trim()); on-entry action 和 on-exit action,但每次都没有初始化 RANDOM_NUMBER。我不知道发生了什么。
  • 您无法将字符串解析为整数。为了解决这个问题,我刚刚做了Integer.parseInt(result.trim())。谢谢你是一个救生员。已经玩了好几个小时了,哈哈。
  • 如何检查全局变量以确保其值?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-24
  • 2021-10-12
  • 2021-02-18
  • 1970-01-01
  • 2023-04-05
  • 2023-03-29
  • 2021-09-18
相关资源
最近更新 更多