10. Создание документов в реестре из процесса

Предыдущая запись серии: 9. Listeners

Часто возникает необходимость создать документ в реестре из бизнес-процесса. Например, согласованный в процессе договор должен добавиться в реестр договоров, как в нашем примере.

Наиболее простой и универсальный способ создания документов в реестре из процесса - запустить связанный процесс “Зарегистрировать документы”. Из плюсов этого метода: можно зарегистрировать документ в любом реестре любого сайта, к которому пользователь имеет доступ, а также этот метод не требует никакой разработки. Из минусов: все поля карточки придётся заполнять вручную.

Для того, чтобы поля заполнялись автоматически, придётся написать listener, который будет создавать документ на нужном этапе бизнес-процесса. Об этом пути мы и поговорим в этой записи.

Для создания документа нужна следующая информация:

Имя сайта, на котором будет производиться регистрация документа

Можно указать имя сайта “жестко” в listener:

А можно дать пользователю возможность выбрать сайт из выпадающего списка. Для этого нужно добавить текстовое свойство в тип задачи:

И отрисовать его на форме задачи, используя контрол из Alvex:

Тогда в listener мы будем выбирать сайт в соответствии со значением переменной atw20:office:

Единственная сложность - нужно аккуратно следить, чтобы у всех пользователей, которые будут завершать эту задачу, были права на добавление документов в реестры хотя бы одного сайта, а то список доступных сайтов будет пустым, и пользователь не может завершить задачу.

Реестр на сайте

Следующим этапом нужно выбрать реестр, в который будет добавляться документ. Если количество реестров на сайте постоянно, и новых не будет, то можно обратиться к реестру по номеру в списке. Главное - найти правильный номер реестра, в этом поможет JavaScript Console:

Можно найти реестр по его имени, но тут нужно быть аккуратным с API на поиск, так как они менялись между версиями Alfresco 4.2 и 5.0. В таком случае выбор реестра будет выполнен примерно так:

А можно написать свой контрол, который будет выводить пользователю выпадающий список существующих реестров, как это было со списком сайтов. В текущей версии Alvex такого стандартного контрола нет, так что придётся создать его самостоятельно.

Новый документ в реестре

Теперь можно создавать документ и заполнять поля карточки. В зависимости от типа документа и полей на форме задачи можно заполнять разные поля. Здесь мы заполняем карточку договора типа alvexdt:agreement:

Следующая запись серии: 11. Генерация документов docx из процесса

    blog comments powered by Disqus