Aem CQ5工作流内容收件箱|批准文件夹内容错误url

Aem CQ5工作流内容收件箱|批准文件夹内容错误url,aem,day-cq,Aem,Day Cq,我们已经创建了一个工作流,用于向审批者发送审批邮件。有效负载是jcr:文件夹或PDF的内容。 编码后,行为用于: pdf:它生成正确的URL作为http:///damadmin.html/content/ab/cd/abc.pdf 文件夹:它生成错误的url作为http:///damadmin.html/content/folder-name/jcr:content 因此,对于folder,我们更新了代码,将有效负载更改为folderpath,而不是folderpath/jcr:content

我们已经创建了一个工作流,用于向审批者发送审批邮件。有效负载是jcr:文件夹或PDF的内容。 编码后,行为用于: pdf:它生成正确的URL作为http:///damadmin.html/content/ab/cd/abc.pdf 文件夹:它生成错误的url作为http:///damadmin.html/content/folder-name/jcr:content

因此,对于folder,我们更新了代码,将有效负载更改为folderpath,而不是folderpath/jcr:content 就我们用过的,

WorkflowData wfData = wfSession.newWorkflowData("JCR_PATH", folder_node_path);
    wfSession.updateWorkflowData(workItem.getWorkflow(), wfData);
代码更改后,当用户修改任何dam内容(如pdf)时,url的正确性如下http:///damadmin.html/ 但是,当用户修改文件夹属性时,发送给审批人的邮件的url错误为http:///

表示缺少/damadmin.html

我们需要正确的链接应该为PDF和文件夹添加。 提前感谢。

问题已解决。我正在使用CQ 5.5。 分享我的经验。我们不需要改变有效载荷。有效负载可以保持为jcr:content 我们需要做两件事:

确保文件夹路径/jcr:content在属性jcr:title中具有值。它将显示在收件箱页面的内容列中

对于收件箱页面中的文件夹链接,它必须为/content//jcr:content。问题是/damadmin.html没有添加到url之前。 任何资产或页面都不会出现此问题。 解决办法是: 您需要在/libs/cq/workflow/components/inbox/list/json.jsp中添加以下代码

A=> 添加私有方法

private String handleDamPathForFolder(Logger log, String payloadUrl, Session session, WorkItem wi)
{
    try
    {
        if(isFolderNode(session, wi))
        {
            return ("/damadmin.html#"+payloadUrl);
        }
    }catch (Exception e)
    {
        log.error("Unable to handle path creation for work item: " + wi.getId(), e);
    }
    return payloadUrl;
}
我们必须编写方法isFolderNode,如果节点是文件夹,它将返回true

B=>更换

顺便说一下

JSONWriterUtil.writewriter、有效负载、handleDamPathForFolderlog、pathBuilder.getPathwi、会话、wi、JSONWriterUtil.WriteMode.BOTH、xss

JSONWriterUtil.write(writer, "payload", pathBuilder.getPath(wi),JSONWriterUtil.WriteMode.BOTH, xss);
<br/>