Получить NodeRef задачи рабочего процесса Alfresco
Я создаю рабочий процесс, и когда я перехожу на страницу редактирования задачи:
Я пытаюсь получить nodeRef файла (latexexemplo-2.pdf) задачи рабочего процесса:
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 другим способом?
2 ответа
К сожалению, вы не можете получить доступ в браузере к информации, которая находится в хранилище.
Быстрое и грязное решение - использовать непосредственно информацию, которая уже есть на странице.
Я запустил рабочий процесс и открыл страницу задач, как и вы. Используя инструмент отладки браузера, я проверил HTML. Как вы можете видеть на рисунке ниже, Alfresco хранит документы, прикрепленные к задаче, в скрытом виде. Вы можете использовать YAHOO, чтобы получить это.
Поиск элемента с идентификатором "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 задач.