8 (800) 302-62-68
+7 (499) 348-29-58
sale@rbs-crm.ru

Документация разработчика

РосБизнесСофт CRM > База знаний > Разработчикам > Добавление действия в бизнес-процессы

Добавление действия в бизнес-процессы

Для добавления новой формы для отработки сценария бизнес-процесса необходимо войти в модуль «Конфигуратор». Рассмотрим уже созданную форму на примере документа «Сделка».

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