Перейти к содержанию

Отмена процесса по кнопке. Настройка шаблонов записи, шаблонов процесса и кнопки

Введение

Comindware Platform позволяет гибко управлять процессами, в том числе завершать их.

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

Для этого можно создать кнопку отмены процесса на любом этапе.

Здесь представлен пример настройки приложения с кнопкой быстрой остановки процесса.

Исходные данные

Имеется шаблон записи «Договоры» с текстовым атрибутом «ID процесса» (системное имя — processID).

Имеется шаблон процесса «Согласование договора», который связан с шаблоном «Договоры».

Прикладная задача

Требуется настроить кнопку на форме согласования договора, которая будет останавливать процесс согласования.

Настройка завершения процесса по нажатию кнопки

Настройка процесса «Согласование договора»

  1. Откройте для редактированию диаграмму процесса «Согласование договора».
  2. Откройте сценарий на выходе из стартового события.
  3. Внутрь действия «Сменить контекст» добавьте действие «Изменить значения атрибутов» со следующими свойствами:

    • Атрибут: ID процесса
    • Операция со значениями: заменить
    • Значение: формула

      FORMAT("{0}", LIST($$ProcessObject)) 
  4. После стартового события добавьте развилку «и».

  5. После развилки «и» добавьте пользовательскую задачу «Согласовать договор», исполнителем назначьте себя.
  6. Добавьте промежуточное событие–получение сообщения.
  7. В свойствах события-получения сообщения на вкладке «Дополнительные» установите имя сообщения «ProcessCancelMessage».
  8. Соедините событие-получение сообщения с развилкой «и».
  9. Добавьте конечное событие-остановку процесса «Согласование отменено» и соедините его с событием-получением сообщения.
  10. Добавьте конечное событие-остановку процесса «Договор согласован» и соедините его с задачей «Согласовать договор».

    Логика процесса

    Все конечные события процесса обязательно должны быть типа конечное событие-остановка процесса. Это требуется, чтобы останавливался весь процесс, а не только одна его ветвь.

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

Диаграмма процесса «Согласование договора»

Диаграмма процесса «Согласование договора»

Настройка процесса «Отмена согласования договора»

  1. Создайте шаблон записи «Отменённые договоры» со следующим атрибутом:

    • Название: Договор
    • Системное имя: Contract
    • Тип: запись
    • Связанный шаблон: Договоры
  2. Создайте шаблон процесса «Отмена согласования договора», связанный с шаблоном «Отменённые договоры».

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

    • Место назначения: промежуточное событие
    • Имя сообщения: ProcessCancelMessage
    • Экземпляр процесса: формула

      $Contract->processID 

    Логика работы имён сообщений

    Передача данных между событиями отправки и получения сообщений происходит посредством имён сообщений. Имена сообщений служат идентификаторами событий.

    Поэтому имя сообщения в промежуточном событии-отправке сообщения должно совпадать с именем сообщения в промежуточном событии–получении сообщения другого процесса.

Настройка процесса «Отмена согласования договора»

Настройка процесса «Отмена согласования договора»

Настройка кнопки отмены процесса

  1. В шаблоне «Договоры» создайте кнопку «Отменить согласование» со следующими свойствами:

    • Контекст операции: запись
    • Операция: запустить процесс по связанному шаблону
    • Сохранять запись после выполнения: флажок установлен
    • Результат выполнения: обновить данные
    • Шаблон: Отмена согласования договора (атрибут: Contract)
  2. Поместить кнопку «Отменить согласование» на форму шаблона «Договоры».

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

  1. Запустите процесс «Согласование договора».
  2. Откройте договор, проходящий согласование.
  3. Нажмите кнопку «Отменить согласование».
  4. Перейдите к списку экземпляров процесса «Согласование договора».
  5. Экземпляр отменённого должен иметь статус «Завершён».
К началу