获取工作流任务Alfresco的NodeRef

时间:2016-02-07 18:41:29

标签: workflow alfresco activiti alfresco-share alfresco-webscripts

我创建了一个工作流程,当我转到任务编辑页面时: Image

我试图获取工作流任务的文件(latexexemplo-2.pdf)的nodeRef:

  

http://localhost:8080/share/page/task-edit?taskId=activiti $ 20649

我试图这样做:

var taskId = args.taskId
var task = workflow.getTaskById(taskId);
nodeRef = task.getPackageResources()[0].nodeRef;

但是我得到了" args没有被定义" ..."工作流程未定义" ......"任务未定义"。

如何以其他方式获取nodeRef?

2 个答案:

答案 0 :(得分:4)

不幸的是,您无法访问存储库中的浏览器信息。

快速而肮脏的解决方案是直接使用页面中已有的信息。

我已经启动了工作流程并像您一样打开了任务页面。 使用浏览器调试工具,我检查了html。 正如您在下面附带的图像中看到的那样,Alfresco将附加到任务的文档存储在隐藏的输入中。你可以使用YAHOO来获得它。

搜索id为" page_x002e_data-form_x002e_task-edit_x0023_default_assoc_packageItems"的元素。 如果关联的文档不止一个,则该值将是逗号分隔的noderefs列表。我得到了第一个元素。这当然有效,只有当只有一个文档关联时才有效。您可能还应该考虑没有文档关联或存在多个文档的情况。

var nodeRef = YAHOO.util.Selector.query("#page_x002e_data-form_x002e_task-edit_x0023_default_assoc_packageItems")[0].value;

enter image description here

答案 1 :(得分:0)

您可以使用获取分配给您的所有当前任务详细信息 Freemarker中的Workflow API

因此,您可以获得task id noderef 的任务。