获取工作流任务的 NodeRef Alfresco

Get NodeRef of a workflow task Alfresco

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

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

http://localhost:8080/share/page/task-edit?taskId=activiti649

我正在尝试这样做:

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

但是我得到了"args is not defined" ... "workflow is not defined" ... "task is not defined"。

如何通过其他方式获取 nodeRef?

很遗憾,您无法在存储库中的浏览器中访问信息。

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

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

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

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

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

所以你可以获得task idnoderef任务。