获取工作流任务的 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 id
或noderef任务。
我创建了一个工作流程,当我转到任务编辑页面时:
我正在尝试获取工作流任务的文件 (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 id
或noderef任务。