jboss - 设置或更新 JBPM6 流程变量的正确方法
问题描述
我正在尝试设置过程变量但低于错误
java.lang.IllegalStateException: Process instance 10[SampleBusinessProcess] is disconnected.
at org.jbpm.process.instance.impl.ProcessInstanceImpl.getProcess(ProcessInstanceImpl.java:100)
at org.jbpm.workflow.instance.impl.WorkflowProcessInstanceImpl.setVariable(WorkflowProcessInstanceImpl.java:343)
这是我的代码 -
ProcessInstance processInstance = runtimeEngine.getKieSession().getProcessInstance(processInstanceId);
((WorkflowProcessInstanceImpl) processInstance).setVariable("myvariable", "myvalue");
请帮助我设置过程变量的最佳方法。
谢谢。
解决方案
我建议使用 jbpm-services 与引擎交互,这提供了设置变量的操作:https ://github.com/kiegroup/jbpm/blob/7.7.0.Final/jbpm-services/jbpm-服务-api/src/main/java/org/jbpm/services/api/ProcessService.java#L223
或者,如果您确保您的代码在同一个事务中执行(例如,通过您自己启动和提交事务,围绕您当前拥有的代码),您将能够以这种方式设置变量,因为流程实例将仅在事务提交后立即断开连接。
推荐阅读
- java - 此方法必须返回 String、Java、Eclipse 类型的结果
- precision - 创建等边三角形网格
- apache-kafka - 如何让 Kafka 代理向消费者响应可重试或不可重试的错误?
- c# - Unity中的抓钩射线投射方向问题
- r - 使用 R,我在哪里可以获得每日股票数据,其中包含当天的最低价和最高价的时间戳?
- geometry - 确定合适的点成为能够覆盖区域内所有点的圆心
- python-3.x - 访问熊猫数据框中的所有列名
- php - 有没有办法像 404 页面一样覆盖异常页面?| CodeIgniter4
- c# - 如何解析子节点具有相同名称的 XML
- flutter - PurchaserInfo 对象中没有数据