Закажите бесплатную презентацию продуктов РосБизнесСофт прямо сейчас!
Для добавления новой формы для отработки сценария бизнес-процесса необходимо войти в модуль «Конфигуратор». Рассмотрим уже созданную форму на примере документа «Сделка».
Чтобы новая форма появилась в списке ее сначала необходимо добавить в «Объект». Тип формы «Редактирования», название формы для унификации должно заканчиваться на «_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;
}