作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
刚刚开始在 camunda 中创建流程并使用流程变量。我可以成功创建这些流程变量,然后在服务任务中读取它们,然后使用输入/输出参数输出它们。但我正在努力再次检索实际启动此流程的程序中这些参数的更新值。以下是片段:
//测试用例
RuntimeService rs = processEngine().getRuntimeService();
Map<String, Object> variables = new HashMap<>();
variables.put("percentageCompletion", "11");
ProcessInstance processInstance = rs.startProcessInstanceByKey(PROCESS_DEFINITION_KEY, variables);
可以通过执行以下操作在服务任务中访问此percentageCompletion
Object pc = execution.getVariable("percentageCompletion");// Update and set its new value
现在如何再次获取测试用例中 percentageCompletion
的更新值?我已经关注了类似的问题Process Variables in Camunda-BPM
最佳答案
这就是我如何在 junit 中获取它们
@Test
@Deployment(resources = "process.bpmn")
public void testParsingAndDeployment() {
}
@Test
@Deployment(resources = "process.bpmn")
public void testHappyPath() {
RuntimeService rs = processEngine().getRuntimeService();
Map<String, Object> variables = new HashMap<>();
variables.put("percentageCompletion", "11");
ProcessInstance processInstance = rs.startProcessInstanceByKey(PROCESS_DEFINITION_KEY, variables);
System.out.println(processInstance.isEnded() + ", " + processInstance.isSuspended());
VariableInstance vi = processEngine().getRuntimeService().createVariableInstanceQuery().processInstanceIdIn(processInstance.getId()).variableName("percentageCompletion").singleResult();
System.out.println(processInstance.isEnded() + ", " + processInstance.isSuspended());
System.out.println("********* " + processEngine().getHistoryService().createHistoricDetailQuery().processInstanceId(processInstance.getProcessInstanceId()).count());
String executionId = processEngine().getHistoryService().createHistoricDetailQuery().processInstanceId(processInstance.getProcessInstanceId()).list().get(0).getExecutionId();
System.out.println("executionId " + executionId);
List<HistoricVariableInstance> hvis = processEngine().getHistoryService().createHistoricVariableInstanceQuery().executionIdIn(executionId).list();
System.out.println("------------ " + hvis.size());
for (HistoricVariableInstance hi : hvis) {
System.out.println(hi.getName() + " : "+ hi.getValue());
}
}
关于java - 如何从 ProcessInstance 检索执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51931206/
刚刚开始在 camunda 中创建流程并使用流程变量。我可以成功创建这些流程变量,然后在服务任务中读取它们,然后使用输入/输出参数输出它们。但我正在努力再次检索实际启动此流程的程序中这些参数的更新值。
我的 Controller 中有以下内容用于由 PageBlockTable 使用的 Visualforce 页面。 我可以访问 p.ProcessInstance.TargetObject 的其他标
我的 Controller 中有以下内容用于由 PageBlockTable 使用的 Visualforce 页面。 我可以访问 p.ProcessInstance.TargetObject 的其他标
我是一名优秀的程序员,十分优秀!