495
Для работы с шаблонами БП, потребуется класс CBPWorkflowTemplateLoader и методы GetList, Update и Add, а так же сам файл шаблона БП, заранее экспортированный из редактора шаблонов Бизнес-процессов в Битрикс24
Php
//подключим необходимые модули
\Bitrix\Main\Loader::IncludeModule('iblock');
\Bitrix\Main\Loader::IncludeModule('bizproc');
//мы хотим обновить шаблон БП в ИБ c ID = 1
$IBLOCK_ID = 1;
//путь к экспортированному файлу шаблона БП
$bpFile = __DIR__ . '/bizproc/bp.bpt';
//получаем содержимое файла
$bpTemplate = file_get_contents($bpFile);
$tamplateData = @gzuncompress($bpTemplate);
$tamplateData = @unserialize($tamplateData);
//формируем массив данных
$arFields = array(
"DOCUMENT_TYPE" => array("iblock", "CIBlockDocument", "iblock_" . $IBLOCK_ID),
"AUTO_EXECUTE" => "",
"NAME" => Loc::getMessage("ITHIVE_PROF_SPEC_BIZPROC_NAME"),
"TEMPLATE" => $tamplateData["TEMPLATE"],
"PARAMETERS" => $tamplateData["PARAMETERS"],
"VARIABLES" => $tamplateData["VARIABLES"],
"CONSTANTS" => $tamplateData["CONSTANTS"],
"MODIFIER_USER" =>$GLOBALS["USER"]->GetID(), //текущий пользователь
"USER_ID" => $GLOBALS["USER"]->GetID(), //текущий пользователь
"ACTIVE" => 'Y',
);
//метод для поиска шаблона БП
//CBPWorkflowTemplateLoader::GetList(array(), array("DOCUMENT_TYPE" => array("iblock", "CIBlockDocument", "iblock_" . $IBLOCK_ID)))->Fetch();
//метод для обновления шаблона бизнес-процесса
CBPWorkflowTemplateLoader::Update($tmId, $arFields, $tamplateData);
//метод для добавления шаблона БП
//CBPWorkflowTemplateLoader::Add($arFields, $tamplateData);