0

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

因此,对于文件夹,我们更新了代码以将有效负载更改为文件夹路径,而不是
我们使用的文件夹路径/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 和文件夹添加正确的链接。提前致谢。

4

1 回答 1

0

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

分享我的经验。

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

我们需要做两件事:

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

  2. 对于收件箱页面中的文件夹链接,它必须为/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.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/>
于 2015-04-13T06:56:04.460 回答