Закажите бесплатную презентацию продуктов РосБизнесСофт прямо сейчас!
Для добавления новой формы для отработки сценария бизнес-процесса необходимо войти в модуль «Конфигуратор». Рассмотрим уже созданную форму на примере документа «Сделка».
Чтобы новая форма появилась в списке ее сначала необходимо добавить в «Объект». Тип формы «Редактирования», название формы для унификации должно заканчиваться на «_bp».
Далее необходимо выбрать эту форму в списке «Форма для автоматизации». После чего форма будет автоматически доступна в списке «Действий» в модуле «Бизнес-процессы».
Для того, чтобы форма корректно отображалась необходимо добавить в PHP-сценарий:
protected $layout = "layout_disabled";
А также метод, который вызывается при вызове действия из бизнес-процессов:
public function onPlayBP($params = []){ $this->structure->status = 1; }
В этом методе можно устанавливать дополнительные значение полей уже нового объекта (созданного из бизнес-процессов).
В массиве $params = [] хранится информация для работы с бизнес-процессом.
Присутствует 2 основных ключа:
1 — parentObject — в нем хранится информация об объекте из которого был вызван бизнес-процесс
2 — customFields — набор полей, которые находятся на форме редактирования «Действия» в бизнес-процессе
Например, так выглядит метод в форме добавления «Задачи».
public function onPlayBP($params = []){ if(!empty($params)){ $parentDocument = $params['parentObject']; $inputDateStart = $params['customFields']['date_start'] ?? 0; $inputDateEnd = $params['customFields']['date_end'] ?? 0; $dayAfter = $params['customFields']['day_after'] ?? 0; $outputDateStart = date('d.m.Y '. $inputDateStart .':00', strtotime('+'. (int)$dayAfter .' days')); $outputDateEnd = date('d.m.Y '. $inputDateEnd .':00', strtotime('+'. (int)$dayAfter .' days')); $this->structure->date_start = $outputDateStart; $this->structure->date_end = $outputDateEnd; } $this->structure->status = 1; }