Как обновить или добавить шаблон бизнес-процесса средствами API?

495
Для работы с шаблонами БП, потребуется класс CBPWorkflowTemplateLoader и методы GetList, Update и Add, а так же сам файл шаблона БП, заранее экспортированный из редактора шаблонов Бизнес-процессов в Битрикс24

       
        //подключим необходимые модули 
        \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);
			

Яндекс.Метрика