Начало работы с BPM

В этом разделе описывается, как смоделировать и запустить простой бизнес-процесс.

Предположим, что мы хотим создать процесс возмещения расходов.

В процессе будут задействованы три участника:

  • работник, который требует возмещения;

  • менеджер, который утверждает возмещение;

  • бухгалтер, который перечисляет деньги на счет работника.

Данная модель может быть представлена в нотации BPM:

model

Процесс моделирования

Запустите приложение и откройте экран BPM → Modeler. На панели свойств справа отображаются свойства текущего процесса.

Для нашего процесса укажите следующие свойства:

  • Process id: reimbursement

  • Name: Reimbursement

  • Documentation: Добавьте краткое описание процесса.

    properties

Создание стартовой формы

Каждый элемент на холсте обладает собственным набором свойств. Пока единственный элемент на холсте это StartEvent. Он соответствует Стартовой форме которую увидит пользователь при запуске процесса. Давайте его настроим:

  • Нажмите на элемент StartEvent чтобы его выделить.

  • В поле Form Type выберите Input dialog. В поле Open mode будет автоматически выбрано значение Dialog.

    start event

Далее необходимо указать параметры, которые увидит пользователь в диалоговом окне.

  • Нажмите [align="center" и в диалоговом окне Input dialog parameter editor создайте параметр requestNumber со следующими свойствами:

request number
  • Создайте еще три параметра диалогового окна:

    Process variable Caption Type Editable Required

    expenseAmount

    Expense amount

    Decimal (double)

    true

    true

    expenseDate

    Expense Date

    Date

    true

    true

    document

    Document

    File

    true

    true

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

    Process variable Caption Type Editable Required Entity name UI Component JPQL query

    manager

    Manager

    Entity

    true

    true

    User

    ComboBox

    оставьте пустым*

    * Если поле не заполнено, будет использован запрос по умолчанию select e from User e.

  • Установите значение requestNumber в поле Business key. Бизнес-ключ — это специфичный для домена идентификатор экземпляра процесса.

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

form

Создание пользовательской задачи Approval

Создадим пользовательскую задачу утверждения Approval. Она соответствует форме утверждения заявки которую увидит менеджер.

В первую очередь, добавьте новый элемент на холст:

  • Нажмите на элемент StartEvent чтобы его выделить.

  • Нажмите иконку Append task append task icon.

  • Нажмите иконку Change type change type icon и выберите User Task в выпадающем списке.

    user task
  • В панели свойств укажите следующие значения для задачи:

    • Id: approval

    • Name: Approval

    • Assignee source: Process variable

    • Process variable: manager

      manager
      По умолчанию для назначения задачи доступна встроенная переменная процесса initiator. Более подробную информацию см. в соответствующем разделе.
  • Перейдите в секцию Form и укажите следующие свойства:

    • Form type: Input dialog

    • Open mode: Dialog (выбрано автоматически)

  • Нажмите [align="center" и добавьте следующие имеющиеся параметры, но отключив при этом возможность для их редактирования:

    Process variable Caption Type Editable Required

    requestNumber

    Request number

    String

    false

    true

    expenseAmount

    Expense amount

    Decimal (double)

    false

    true

    expenseDate

    Expense Date

    Date

    false

    true

    document

    Document

    File

    false

    true

  • Нажмите [align="center" и добавьте дополнительный параметр:

    Process variable Caption Type Editable Required

    comment

    Comment

    Multiline string

    true

    false

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

Создание выходов

Этап Approval имеет два возможных сценария развития: запрос одобрен или запрос отклонен. Соответственно, форма предназначенная для менеджера, принимающего решение, должна иметь две кнопки.

  • Убедитесь что выбран элемент Approval. Перейдите в свойства Outcomes и нажмите [align="center".

  • Задайте свойства для первого выхода:

    outcome approve
  • Повторите действия чтобы создать второй выход:

    Business id Caption Icon

    reject

    Reject

    BAN

Чтобы указать точку с несколькими альтернативными путями, добавьте элемент шлюза:

  • Выберите задачу Approval и нажмите Append Gateway append gateway icon чтобы добавить шлюз.

  • Выберите элемент шлюза и создайте новую пользовательскую задачу с помощью append task iconchange type iconUser Task.

  • Выберите элемент шлюза и нажмите append end event icon чтобы создать элемент EndEvent.

  • Дайте имена для связей соединяющих созданные элементы: approved and rejected.

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

flows
  • Выберите связь approved и укажите для неё свойства в разделе Condition:

    • Condition source: User task outcome

    • User task id: Approval

    • User task outcome: approve

      flow approved
  • Подобно предыдущему шагу укажите свойства для связи rejected:

    • Condition source: User task outcome

    • User task id: Approval

    • User task outcome: reject

Создание пользовательской задачи Payment

Вторая пользовательская задача в модели уведомляет бухгалтеров об одобрении заявки. Эта задача соответствует Форме оплаты предназначенной только для бухгалтеров.

  • Выберите вторую пользовательскую задачу на холсте и задайте свойства Id и Name:

    • Id: payment

    • Name: Payment

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

Давайте создадим Candidate group для бухгалтеров.

Прежде чем покинуть моделер, сохраните черновик задачи с помощью кнопки save draft button в панели инструментов. К черновикам можно вернуться позднее нажав кнопку open draft button.
  • Перейдите на экран BPM → User groups и создайте группу Accountants указав для неё код accountants.

  • Установите Users как тип группы.

  • Добавьте пользователей в группу.

    user group
Пользователям участвующим в процессе должна быть назначена роль BPM: process actor для предоставления доступа к экранам и сущностям BPM, необходимым для запуска процесса и работы с пользовательскими задачами. Назначить роли можно на экране Application → Users.
  • Вернитесь в моделер и выберите пользовательскую задачу Payment.

  • Рядом с полем Candidate groups нажмите кнопку редактирования edit button.

  • В появившемся редакторе добавьте группу Accountants.

    groups
  • Настройте диалог ввода для задачи Payment подобно тому как это было сделано для задачи Approval. Установите следующие свойства:

    • Form type: Input dialog

    • Open mode: Dialog (this will be set by default)

  • Добавьте входные параметры. Они будут такие же, как и на форме Approval, однако для комментария менеджера необходимо отключить возможность редактирования:

    Process variable Caption Type Editable Required

    requestNumber

    Request number

    String

    false

    true

    expenseAmount

    Expense amount

    Decimal (double)

    false

    true

    expenseDate

    Expense Date

    Date

    false

    true

    document

    Document

    File

    false

    true

    comment

    Comment

    Multiline string

    false

    false

  • На холсте добавьте элемент EndEvent append end event icon после задачи Payment.

Указание пользователей для запуска процесса

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

  • Перейдите на экран User groups и создайте группу со следующими свойствами:

    • Name: All users

    • Code: all-users

    • Type: All users

      all users
  • Вернитесь в моделер и щелкните по свободному месту на холсте, чтобы отобразить свойства процесса.

  • В поле Candidate groups установите значение All users.

    users start

Запуск процесса

Модель процесса готова к развертыванию.

  • Перейдите в моделер.

  • Нажмите Deploy process [align="center" на панели инструментов.

  • Откройте экран BPM → Start Process.

Процесс Reimbursement должен появиться в списке. В этом списке представлены все процессы, которые может запустить текущий пользователь.

Тестирование процесса

Теперь, когда процесс смоделирован и развернут, его можно запустить. Давайте пройдемся по его этапам и рассмотрим представленные в нем процессные формы.

Стартовая форма

С заданными настройками процесс может быть запущен любым из пользователей на экране BPM → Start Process.

  • Выберите процесс Reimbursement и нажмите кнопку Start process.

    start process
  • Заполните поля в форме и нажмите кнопку Start process.

    start form

Назначенный менеджер увидит входящую задачу на утверждение.

Форма утверждения

Давайте рассмотрим, как процесс выглядит с точки зрения менеджера. На предыдущем шаге в качестве утверждающего был выбран менеджер james.

  • Войдите в приложение от имени менеджера.

  • Перейдите на экран BPM → My Tasks.

  • Выберите задачу из списка и откройте её нажав кнопку Open Task.

    approval step
  • Рассмотрите заявку и нажмите кнопку Approve.

    approval form

После одобрения запрос будет отправлен бухгалтеру, который затем позаботится об оплате.

Форма оплаты

Бухгалтеры увидят заявки, требующие оплаты, в разделе Group tasks.

  • Войдите в приложение от имени пользователя принадлежащего группе Accountants.

  • Перейдите на экран BPM → My Tasks. Раскройте пункт Group tasks.

    group task
  • Откройте форму оплаты.

    payment task

    Пока задача не назначена одному из бухгалтеров, форма будет доступна только для чтения.

  • Заявите о выполнении задания, используя один из двух способов:

    • Нажмите Claim and resume, чтобы немедленно приступить к следующему шагу задачи. При этом задача будет удалена из списка Group а в форме появится кнопка Complete task.

    • Нажмите Claim and close, чтобы заявить о выполнение задачи, отложив её выполнение. Форма будет закрыта, а задача перемещена из списка Group в список Assigned для текущего пользователя. После этого задача больше не будет видна другим бухгалтерам.

  • Нажмите Complete task, чтобы завершить процесс. Эта кнопка отображается по умолчанию для задач у которых не указаны выходы.

    complete task

Процесс завершен.