我试图获取工作流任务的文件(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?
答案 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;
答案 1 :(得分:0)
您可以使用获取分配给您的所有当前任务详细信息 Freemarker中的Workflow API。
因此,您可以获得task id
或 noderef 的任务。