6.2. Процессные формы (ProcForm)

Интерфейс ProcForm

При определении выхода (outcome) для задачи и в узле начала процесса возможно указать форму, которая будет показана пользователю. Форма должна реализовывать интерфейс ProcForm.

Методы интерфейса ProcForm:

  • getComment(): String – значение, возвращаемое этим методом, будет записано в поле comment объекта ProcTask при завершении задачи или в поле startComment у ProcInstance, если форма отображается на старте процесса;

  • getFormResult(): Map<String, Object> – возвращает список объектов, которые будут добавлены к переменным процесса после коммита формы.

Задание списка форм для дизайнера моделей процесса

Список форм, доступный в дизайнере моделей процесса, формируется на основе конфигурационных файлов, определенных свойством приложения bpm.formsConfig. Для добавления новой процессной формы выполните следующие шаги:

  1. Создайте и зарегистрируйте экран для новой формы. Контроллер экрана должен реализовывать интерфейс ProcForm.

  2. Создайте файл, например app-bpm-forms.xml, для конфигурации новых процессных форм. Положите его в директорию src модуля web или gui.

    <?xml version="1.0" encoding="UTF-8"?>
    <forms xmlns="http://schemas.haulmont.com/cuba/bpm-forms.xsd">
        <form name="myCustomForm" default="true">
            <param name="someParam" value="hello"/>
            <param name="otherParam"/>
        </form>
    </forms>

    myCustomForm – идентификатор экрана.

    Помимо имени форм в файле определены имена возможных параметров формы и их значения по умолчанию.

    Форма с атрибутом default="true" будет использоваться в дизайнере как форма по умолчанию.

  3. Переопределите свойство bpm.formsConfig в файле web-app.properties.

    bpm.formsConfig = com/haulmont/bpm/forms.xml app-bpm-forms.xml