Input Dialog Forms

Input dialog form это форма для ввода параметров для элементов Start Event или User Task. Диалог автоматически отображается когда пользователь запускает процесс или выполняет пользовательскую задачу.

form example

Конфигурация

Чтобы настроить диалог, выберите элемент Start Event или User Task и установите для него тип Input dialog.

create dialog form

После этого появятся дополнительные свойства. Их описание приведено ниже.

form section

Open mode

Это свойство определяет режим в котором форма будет открыта:

  • Dialog – форма будет открыта в диалоговом окне.

  • Navigate – форма будет открыта как новый экран путём перехода по его URL.

open mode

По умолчанию используется Dialog.

Parameters

Parameters это поля формы, которые могут отображать значения либо ожидать ввода значений от пользователя. Нажмите create, чтобы перейти к созданию параметра:

create parameters

После этого откроется окно редактора. Выберите переменную процесса из списка или определите новую переменную, введя её имя.

parameter editor begin

Параметр можно сделать редактируемым и обязательным выбрав соответствующие чекбоксы.

Параметр может быть одного из следующих типов:

  • String

  • Multiline string

  • Decimal

  • Number

  • Boolean

  • Date

  • Date with time

  • Entity

  • Entity list

  • File

  • Platform enum

  • Custom enum

Параметры с типом Entity и Entity list потребуют дополнительной настройки. Для них необходимо выбрать соответствующий класс сущности и компонент интерфейса для работы с ним.

parameter editor entity

Если выбран EntityPicker, можно указать экран для работы с сущностью. Если оставить это поле пустым, то будет использован стандартный экран list для этой сущности. image::input-dialog-forms/parameter-editor-entity-ui-compontent.png[,800]

При выборе ComboBox, необходимо описать JPQL запрос для выбора экземпляров. Запрос можно написать вручную либо используя Дизайнер JPQL.

parameter editor entity combo box

После того как параметр создан, его можно редактировать непосредственно в панели BPMN Inspector.

edit param in panel

XML представление

Диалоговая форма определяется непосредственно в модели BPMN. В XML модели она представлена атрибутом jmix:formData:

<jmix:formData type="input-dialog" openMode="DIALOG">
  <jmix:formFields>
    <jmix:formField id="order" caption="Order" type="entity" editable="true" required="false">
      <jmix:formFieldProperty name="entityName" value="smpl_Order" />
      <jmix:formFieldProperty name="uiComponent" value="comboBox" />
      <jmix:formFieldProperty name="query" value="select e from smpl_Order e where e.amount &#62; 1000" />
    </jmix:formField>
    <jmix:formField id="name" caption="Name" type="string" editable="true" required="false" />
  </jmix:formFields>

Business Key

При создании диалога ввода для элемента Start Event вы можете определить бизнес ключ.

setting business key

Значение бизнес ключа можно установить напрямую или взять его из переменной процесса.

Outcomes

Аттрибут outcomes содержит предопределенные варианты завершения задачи, указывающие какое решение принял исполнитель. В форме эти варианты будут представлены кнопками. Чтобы завершить задачу, пользователь должен нажать одну из них. Например, в задаче по утверждению документа пользователь может утвердить документ или отклонить его. Соответственно, он увидит две кнопки: "Утвердить" и "Отклонить". Если варианты не предопределены, то пользователь увидит стандартную кнопку Complete.

Cобытие завершения задачи будет вызвано при выборе любого из вариантов.

Чтобы задать значения для outcomes нажмите create в панели BPM Inspector:

create outcomes

Затем откроется окно редактора результатов. Здесь вы можете создать несколько вариантов снабдив их подписью и иконкой:

outcomes editor

Вы также можете редактировать значения непосредственно в панели BPMN Inspector.

outcomes created

XML представление

В XML значения outcomes определяются c помощью элемента jmix:formOutcomes.

  <jmix:formOutcomes>
    <jmix:formOutcome id="approve" caption="Approve" icon="CHECK" />
    <jmix:formOutcome id="reject" caption="Reject" icon="BAN" />
  </jmix:formOutcomes>