Получить 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;

Но я получаю "args is not defined" ... "workflow is not defined" ... "task is not defined".

Как я могу получить nodeRef другим способом?


person PRVS    schedule 07.02.2016    source источник


Ответы (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;

введите здесь описание изображения

person Marco Altieri    schedule 07.02.2016
comment
Я запускаю апплет на стороне общего доступа, а javascript - это код, который управляет апплетом. Я уже видел эту ссылку, но не могу понять, как получить nodeRef задачи. Когда файл находится в репозитории и я получаю доступ таким образом, я получаю nodeRef в URL-адресе. Но когда я отправляю электронное письмо с задачей или получаю доступ из другого места, я просто получаю URL-адрес, который ставит под вопрос. - person PRVS; 07.02.2016
comment
Если код выполняется в браузере, вы не сможете загрузить задачу. Вы можете просто прочитать параметр, переданный в URL-адресе. Затем вам нужно будет вызвать веб-скрипт для выполнения любой логики, необходимой для доступа к репозиторию на открытом воздухе. - person Marco Altieri; 07.02.2016
comment
Не могли бы вы переписать свой вопрос и пояснить, что вам нужно делать? Иначе будет сложно написать ответ. - person Marco Altieri; 07.02.2016
comment
Редактирую свой вопрос и скриншот тоже прикладываю в помощь. - person PRVS; 07.02.2016
comment
В принципе, я хочу то, что у меня есть в коде, но код не работает, потому что args не определен, а другие ... - person PRVS; 07.02.2016
comment
Команда YAHOO.util.Selector.query("input[name='assoc_packageItems_added']") вернуть вам nodeRef? Он возвращает мне [объект HTMLInputElement] ... вы видите это на странице создания рабочего процесса, я нахожусь на странице после этого ... Когда вы создаете рабочий процесс, тогда у вас есть страница редактирования задачи, когда вы входите в рабочий процесс. У меня есть изображение моего инспектора: postimg.org/image/8njcie15l И заранее спасибо всем ответы. - person PRVS; 07.02.2016

Вы можете получить все назначенные вам текущие сведения о задачах с помощью рабочего процесса API в Freemarker.

Таким образом, вы можете получить task id или noderef задач.

person vikash    schedule 19.01.2017