Процессы зачастую имеют несколько вариантов завершения. Например, заявка может быть согласована и не согласована. Бывают также случаи, когда нужно отменить процесс извне, например, если инициатор хочет отозвать договор, который уже был отправлен на согласование. В данном случае будет удобно создать отдельную кнопку, по которой процесс может быть отменен, вне зависимости от того, на каком шаге он находится.
Сценарий: Процесс «Согласование договора». Инициатор решает, что договор больше неактуален и хочет отменить согласование.
Описание: Реализовывать данную настройку мы будем, основываясь на межпроцессном взаимодействии.
Настройка:
1. Перейдите в «Типы сообщений» и создайте новый шаблон сообщения с типом «Внутренний шаблон» (см. Добавление типов сообщений). Добавьте нужные вам атрибуты, которые вы хотите передавать в основной процесс при отмене (например, комментарий). Запомните имя сообщения, оно будет использовано далее.
Настройка шаблона сообщения
2. В шаблоне записи, связанном с основным процессом «Согласование договора», создайте атрибут $processid.
3. На выходе из стартового события в процессе «Согласование договора» заполните этот атрибут процессным атрибутом ProcessID.
4. В этом же процессе сразу после стартового события поставьте параллельную развилку. Одна часть пойдёт по вашему настроенному процессу, а другая — в промежуточное событие–получение сообщения. В настройках события укажите имя сообщения (п.1.), и настройте соответствие атрибутов, если нужно.
Настройка основного процесса
Таким образом, при запуске процесса будут активны обе ветки и процесс завершится либо по настроенной логике (например, договор не согласован), либо если в событие–получение сообщение придет сообщение об отмене.
5. Создайте технический процесс «Отмена договора» с новым шаблоном записи (например, «Отмены договоров»). В новом шаблоне создайте необходимые атрибуты: ссылка на шаблон, связанный с основным процессом (с обратной коллекцией) и, например, комментарий, который будет заполняться на стартовой форме.
Настройка технического процесса
В настройках события–отправки сообщения укажите имя сообщения из п.1, и экземпляр процесса по типу: $DogovorRef-> processid, где $Dogovor — ссылка на шаблон, связанный с основным процессом, processid — атрибут, созданный в п.3, хранящий информацию об экземпляре запущенного процесса. Если необходимо, настройте соответствие атрибутов.
6. В шаблоне, связанном с основным процессом, создайте новую операцию «Отменить договор».
Если нужно, настройте условие видимости кнопки.
7. Вынесите кнопку на панель инструментов для списков, формы, или на саму форму.
8. Тестируйте.
Номер Статьи: 1459
Размещено: Fri, Jul 31, 2020
Последнее обновление: Tue, Dec 7, 2021
Online URL: https://kb.comindware.ru/article/nastrojka-otmeny-processa-po-knopke-1459.html