当两个参与者步骤之间存在流程步骤时,注释不会在参与者之间传递。我的工作流程是这样的——
参与者A ---> 流程步骤 X(ecma 脚本)----> 流程步骤 Y(ecma 脚本) -----> 参与者B
当我在参与者 A 步骤中添加一些评论时,它不会继续传递到参与者 B。似乎 OOB 功能对此有限制。作为一种解决方法,我正在尝试在"处理步骤X"中获取它并传递到处理步骤Y。我能够得到它,但无法为下一步设置它。
以下是我的代码-
log.info("Noop process called for: " + workItem.getWorkflowData().getPayload());
var comment = workItem.getMetaDataMap().get("comment");
log.info("Comment in approval process-----------" + comment);
var workflowData = workItem.getWorkflowData();
if (workflowData.getPayloadType() == "JCR_PATH") {
log.info("setting comment in meta data----------------");
workflowData.getMetaDataMap().put("comment", comment);
}
你能帮忙如何为下一步设置评论吗?
提前谢谢。
问候维韦克
您需要将注释实际存储在工作流元数据映射中。这应该有帮助。
成功存储评论后,您可以稍后访问它。
希望这有帮助
我想这是工作流程中的会话更改。将新设置WorkflowData
实例。您可以在 ide 的调试器中轻松检查它。您必须遍历历史项,如下所示:
final List<HistoryItem> history = workflowSession.getHistory(workItem.getWorkflow());
final List<String> comments = new ArrayList<>();
if (history.size() > 0) {
HistoryItem current = history.get(history.size() - 1);
do {
comments.add(current.getComment());
current = current.getPreviousHistoryItem();
} while (current != null);
}
评论是空字符串,如果未设置的话 - 如果我没记错的话。