Заметки
Как запустить БП по сделкам агентом
Агент может выбрать сделки и запустить по ним шаблон БП через CBPDocument::StartWorkflow. Здесь важно отделить разовый обход от периодического: повторный запуск того же агента не должен бесконечно создавать одинаковые процессы.
Для одной сделки вызов выглядит так:
$errors = [];
$workflow_id = CBPDocument::StartWorkflow(
$template_id,
['crm', 'CCrmDocumentDeal', 'DEAL_' . $deal_id],
[],
$errors
);
if ($errors) {
AddMessage2Log($errors, 'deal_workflow_start');
} Перед вызовом подключите crm и bizproc; $template_id и $deal_id должны быть получены из вашего задания. Выборку обрабатывайте порциями и сохраняйте результат запуска для каждой сделки.
Проверка «есть ли активный БП» защищает только от части повторов: завершившийся процесс уже не активен. Если операция должна выполняться один раз, нужна собственная отметка успешного запуска или идентификатор задания.
Документация: StartWorkflow.