我们已创建了一个工作流程,可将批准邮件发送给审批者。有效负载是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和文件夹添加正确的链接。 提前谢谢。
答案 0 :(得分:0)
问题已解决。
我正在使用CQ 5.5。
分享我的经验。
我们不需要改变有效载荷。有效负载可以保留为 jcr:content
我们需要做两件事:
确保 folder-path / jcr:content 具有属性 jcr:title 中的值。它将显示在收件箱页面的内容栏中。
对于收件箱页面中的文件夹链接,它必须为 / content // jcr:content 。问题是因为在网址之前没有添加 /damadmin.html#
任何资产或页面都不会出现此问题
解决方案是:
您需要在 /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/>