Реализовать функциональность папки «Входящие» в настраиваемом компоненте cq?

Мы хотим разработать плавный рабочий процесс (но по-прежнему использовать рабочие процессы). В настоящее время пользователю необходимо использовать помощника для запуска рабочего процесса, а затем перейти в папку «Входящие», которая вернет его на страницу, чтобы снова использовать помощник. Когда они переходят во входящие, им нужно ограничиться моделью и путем на странице. Было бы неплохо, если бы пользователю нужно было только перейти на страницу содержимого и оттуда запустить различные формы рабочего процесса, которые должны произойти, например, небольшой «почтовый ящик» прямо на странице, которая является предметом рабочего процесса.

Я написал настраиваемый компонент, который может запускать настраиваемый рабочий процесс. Пользовательский компонент также может запрашивать WorkFlowSession и получать любые активные рабочие элементы для текущей страницы, на которой находится компонент (с помощью интерфейса WorkItemFilter). Я хочу предоставить пользователю ссылку на следующий шаг рабочего процесса из настраиваемого компонента, как это делает почтовый ящик. Вот пример вывода метода toString экземпляра WorkItem:

21.05.2014 09:45:29.300 *ERROR* [0:0:0:0:0:0:0:1%0 [1400679929160] GET /content/test/mailing1.html HTTP/1.1] org.rand.whatcounts.EmailCampaignCoordinator Found workitem: -----------------------------
WorkItem Id: /etc/workflow/instances/2014-05-21/model_1400679794564399000/workItems/node4_etc_workflow_instances_2014-05-21_model_1400679794564399000
Workflow Id: /etc/workflow/instances/2014-05-21/model_1400679794564399000
Payload: /content/test/mailing1
Payload Type: JCR_PATH
key = historyEntryPath value = /etc/workflow/instances/2014-05-21/model_1400679794564399000/history/1400679924113
key = comment value =

Я надеюсь, что, используя элементы api рабочего процесса, я смогу создать ссылку, по которой пользователь мог бы щелкнуть, чтобы продолжить рабочий процесс (точно так же, как почтовый ящик).

Спасибо за внимание! Филипп


aem
person Phillip Rhodes    schedule 21.05.2014    source источник
comment
Чем то, что вы делаете, отличается от вкладки «Рабочий процесс» в Sidekick? Я не понимаю.   -  person ryanlunka    schedule 22.05.2014
comment
Напарник позволяет изменять только состояния рабочего процесса. Да, можно использовать помощника для запуска рабочего процесса (что я могу сделать также с помощью кода Java). Однако, если вашему рабочему процессу необходимо загрузить файл или собрать некоторые данные, вам необходимо использовать почтовый ящик. Вы не можете использовать помощник, чтобы перейти к форме, которая позволит вам загрузить файл. Спасибо.   -  person Phillip Rhodes    schedule 22.05.2014


Ответы (1)


Есть два способа реализовать это

Решение на основе Java. Один из способов я нашел, посмотрев на

http://localhost:4502/libs/cq/workflow/components/inbox/list/json.jsp

Важной частью этого jsp является то, что с учетом экземпляра workItem вы можете получить путь к следующему шагу с помощью JcrPathBuilderManager: pathBuilder.getPath (wi); Используя это, я смог вывести пользователю ссылку на следующий шаг рабочего процесса (без перехода пользователя в свой почтовый ящик).

Решение на основе Javascript / JSON Я не пошел далеко с этим решением (я не писал никаких js), но это была моя резервная позиция, если я не нашел java-решение, указанное выше. Однажды можно было реализовать пользовательский JS в компоненте CQ, который будет вызывать json-канал для пользовательского почтового ящика, выполнить некоторую фильтрацию на стороне клиента (чтобы ограничить его только элементами, относящимися к текущей странице). URL-адрес канала:

http://localhost:4502/libs/cq/workflow/content/inbox/list.json?start=0&limit=40

Спасибо!

person Phillip Rhodes    schedule 23.05.2014