Активити бизнес-процесса

Оригинальное название: business process activity

Коротко

Один шаг в схеме бизнес-процесса 1С-Битрикс: согласование, письмо, изменение поля, условие, пауза или собственное действие, написанное на PHP.

Что такое «Активити бизнес-процесса»

В визуальном дизайнере бизнес-процесс выглядит как блок-схема, и каждый её прямоугольник — это активити. Их перетаскивают из панели слева, соединяют и настраивают: кому отправить задание, какое поле документа изменить, сколько ждать. Сам бизнес-процесс — это последовательность таких шагов, а активити — его словарь.

Технически активити — PHP-класс, наследник CBPActivity. Стандартные лежат в /bitrix/activities/bitrix/, собственные разработчик кладёт в отдельную папку, чтобы их не затронули обновления. У каждого есть описание для дизайнера и диалог настроек.

Какие бывают

  • Действия: «Утверждение документа», «Почтовое сообщение», «Изменение документа», «Запрос дополнительной информации», «Запись в отчёт».
  • Управление ходом: условие с ветками «да/нет», параллельное выполнение, цикл, пауза до даты или на время.
  • Служебные: установка переменных, «PHP-код» для небольших вставок без отдельного класса.

Набор зависит от продукта: в коробочном Битрикс24 есть активити для CRM и задач, которых нет на обычном сайте.

Пример своего активити

class CBPPriceLogActivity extends CBPActivity
{
    public function __construct($name)
    {
        parent::__construct($name);
        $this->arProperties = ['Title' => '', 'Text' => ''];
    }

    public function Execute()
    {
        $this->WriteToTrackingService('Цена: ' . $this->Text);
        return CBPActivityExecutionStatus::Closed;
    }
}

Метод Execute() выполняет работу и сообщает движку, что шаг завершён. Свойство Text администратор заполняет в дизайнере, в том числе значениями полей документа.

Когда стоит писать своё

Если одно и то же действие повторяется в нескольких процессах — отправить данные во внешнюю систему, пересчитать скидку, создать запись в другом инфоблоке, — его выгоднее оформить как активити, чем копировать кусок кода в «PHP-код» по разным схемам. Так логика живёт в одном месте и проверяется один раз.

Обновлено:

Все термины раздела «1С-Битрикс»

Что будем искать? Например,Продвижение