CQ5工作流程内容收件箱|批准文件夹内容错误的网址

时间:2015-04-06 12:11:48

标签: cq5 day-cq

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

因此,对于文件夹,我们更新了代码以将有效负载更改为文件夹路径而不是folder-path / jcr:content
对于我们使用的,

WorkflowData wfData = wfSession.newWorkflowData("JCR_PATH", folder_node_path);
    wfSession.updateWorkflowData(workItem.getWorkflow(), wfData);

代码更改后,
当用户修改任何大坝内容(如pdf)时,网址正确为http:///damadmin.html#/
但是当用户修改文件夹属性时,发送给审批者的邮件有错误的URL,如http:///

表示缺少/damadmin.html#。

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

1 个答案:

答案 0 :(得分:0)

问题已解决。
我正在使用CQ 5.5。

分享我的经验。

我们不需要改变有效载荷。有效负载可以保留为 jcr:content

我们需要做两件事:

  1. 确保 folder-path / jcr:content 具有属性 jcr:title 中的值。它将显示在收件箱页面的内容栏中。

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


  3. 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.write(writer, "payload", pathBuilder.getPath(wi),JSONWriterUtil.WriteMode.BOTH, xss);
    

    由以下


                        JSONWriterUtil.write(writer,"payload",handleDamPathForFolder(log,pathBuilder.getPath(wi), session, wi), JSONWriterUtil.WriteMode.BOTH, xss);

    <br/>