1

我创建了一个工作流,当我进入任务编辑页面时: 图片

我正在尝试获取工作流任务的文件(latexexemlo-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;

但我得到“未定义参数”......“未定义工作流程”......“未定义任务”。

如何通过另一种方式获取 nodeRef?

4

2 回答 2

3

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

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

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

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

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

在此处输入图像描述

于 2016-02-07T18:59:11.760 回答
0

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

所以你可以得到任务的task idnoderef

于 2017-01-19T15:13:02.807 回答