CQ工作流程 - 注释不在参与者之间进行转移,其间有一个过程步骤

时间:2013-10-21 18:43:47

标签: workflow cq5

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

参与者A --->处理步骤X(ecma脚本)---->处理步骤Y(ecma脚本)-----> ParticipantB

当我在ParticipantA步骤中添加一些评论时,它不会转发给ParticipantB。似乎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);
}

你能帮忙解决下一步的评论问题吗?

提前致谢。

此致 的Vivek

2 个答案:

答案 0 :(得分:1)

您需要在工作流元数据地图中实际存储您的评论。 This 应该有所帮助。

成功存储评论后,您可以稍后再访问。

希望这有帮助

答案 1 :(得分:1)

我想这是工作流程中的会话更改。将WorkflowData实例重新设置。您可以在ide的调试器中轻松检查它。您必须迭代HistoryItems,如下所示:

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);
}

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