CQ工作流 - 注释未在参与者之间传递,中间有流程步骤



当两个参与者步骤之间存在流程步骤时,注释不会在参与者之间传递。我的工作流程是这样的——

参与者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);
}

评论是空字符串,如果未设置的话 - 如果我没记错的话。

最新更新