Хотите запустить бизнес-процесс через REST в Битрикс24? В теории просто: прочитал документацию, выполнил метод и вуа-ля! А вот на деле совершенно иначе: документации по подходам с примерами почти нет, параметры метода не описаны, а пример написан на JS для выполнения в браузере. Шикарно, не правда ли? Давайте разбираться вместе.
Предположим, что мы уже изучили заметки (документацией язык не поворачивается назвать) по бизнес-процессам и уже знает что запустить его можно через методы bizproc.workflow.start, который вроде даже как-то задокументирован. Все просто и нам понадобится только несколько параметров:
- Идентификатор шаблона БП
- Идентификатор документа БП
- Значения параметров БП (если шаблон с параметрами)
Все же ясно и понятно?
Для начала разберемся с тем что такое бизнес-процесс по сути: это последовательность действий выполняемая в заранее определенном порядке над объектом бизнес-процесса.
Как это работает? Бизнес-процесс получает шаблон и фиксирует его экземпляр для конкретного запуска (т.е. поменяли бизнес-процесс по ходу выполнения, а документ идет по старому процессу).
Для запуска бизнес-процесса мы должны знать шаблон, а получить его можно через REST-метод bizproc.workflow.template.list. Пока не плохо, двигаемся дальше.
Параметр "Идентификатор документа БП" выглядит не так однозначно, но тоже не сложный.
Мы знаем что на платформе битрикс существуют различные модули и в рамках модуля может быть не одна сущность для бизнес-процессов поэтому идентификатор представляет собой набор параметров представленных в виде массива и содержит в себе:
- Код модуля,
- Код сущности,
- Идентификатор сущности.
Например, для лида с номером 23 это будет массив:
['crm', 'CCrmDocumentLead', 'LEAD_23']
Параметр "Значения параметров БП (если шаблон с параметрами)"
Это по сути ассоциативный массив ключ-значение для параметров заданных в вашем БП. Нужны ли к нему комментарии? Пишите к посту, обсудим.
Откуда взять коды сущностей?
Например можно получить из метода bizproc.workflow.template.list (параметры MODULE_ID и ENTITY).
Ну или воспользоваться краткой справкой, в которой я буду использовать сущности с номером 777 (чтобы было понятно):
['crm', 'CCrmDocumentLead', 'LEAD_777']
['crm', 'CCrmDocumentCompany', 'COMPANY_777']
['crm', 'CCrmDocumentContact', 'CONTACT_777']
['crm', 'CCrmDocumentDeal', 'DEAL_777']
['lists', 'BizprocDocument', '777']
['disk', 'Bitrix\Disk\BizProcDocument', '777']
['tasks', 'Bitrix\Tasks\Integration\Bizproc\Document\Task', '777']
Теперь вы знаете откуда брать параметры для запуска бизнес-процессов в битрикс24.
Остались вопросы? Пишите в комментариях!)