- Бедросова Юлия
- Поиск по этому блогу
- Себе на память: программный запуск бизнес-процесса в корпортале Битрикс24
- Ярлыки
- Комментарии
- bizproc.workflow.start
- Параметры
- Примеры
- StartWorkflow
- Параметры метода
- Возвращаемое значение
- Смотрите также
- Примеры использования
- Битрикс запуск бизнес процесса php
- Комментарии к урокам
- Баллы опыта
- Если нет интернета
Бедросова Юлия
этот блог посвящен задачам, с которыми сталкиваюсь в своей профессиональной деятельности.
Поиск по этому блогу
Себе на память: программный запуск бизнес-процесса в корпортале Битрикс24
CBPDocument::StartWorkflow(
4,
array(«bizproc»,»CBPVirtualDocument»,$LidID),
array(),
$arErrorsTmp
);
Для бизнес-процесса, не привзянного к CRM
$documentId = CBPVirtualDocument::CreateDocument(
0,
array(
«IBLOCK_ID» => 27,
«NAME» => «Create Notification»,
«CREATED_BY» => «user_».$GLOBALS[«USER»]->GetID(),
)
);
$wfId = CBPDocument::StartWorkflow(
27,
array(«bizproc», «CBPVirtualDocument», $documentId),
array_merge(array(), array(«TargetUser» => «user_».intval($GLOBALS[«USER»]->GetID()))),
$arErrorsTmp
);
- Получить ссылку
- Электронная почта
- Другие приложения
Ярлыки
- Получить ссылку
- Электронная почта
- Другие приложения
Комментарии
Александр, а какой тип инфоблока у вас? Процессы? Бизнес-процессы (БП)? Списки (унив.)? Или что-то подвязанное к CRM? В корпортале (коробка) на текущий момент БП, подвязанные к CRM, в Живой Ленте не отображаются. хотя на днях презентована такая возможность для будущего. Если тип Процессы, то нужно галочку поставить «Отображать в живой ленте». и попробовать без программирования вначале отобразить тестовый БП в ленте 🙂 Хотя это как раз не сложно. сложности с другим. Думаю, во фрагменте приведенного в блоге кода
$wfId = CBPDocument::StartWorkflow(
xx,
array(«bizproc», «CBPVirtualDocument», $documentId),
array_merge(array(), array(«TargetUser» => «user_».intval($GLOBALS[«USER»]->GetID()))),
$arErrorsTmp
);
для случая не-CRM и при использовании типа «Процессы» нужно вместо bizproc написать что-то иное. ну и вместо xx вписать не номер инфоблока 27, а именно номер шаблончика БП, подвязанного к этому инфоблоку (они вовсе не равны с номером самого БП)
Почти три часа искал решение(нашел у Вас) но хочется понять в чем ошибка(мистическая). Я скопировал в инструментах -> в окно «php-код» код из учебника.
заменив аргументы на свои, причем я подумал что модуль в котором запускается БП (у меня над сделкой в СРМ) это первый аргумент второго массива «crm» , второй аргумент обозначение сущности над которой выполняется БП.
if(CModule::IncludeModule(«bizproc»))<
CBPDocument::StartWorkflow(
119,
array(«crm»,»DEAL»,876),
array(),
$arErrors
);
>
print_r($arErrors);
Этот код сработал, БП запустился, я стал эксперементировать с параметрами. И с раза 5-го код перестал работать с выбросом ошибки
Array
(
[0] => Array
(
[code] => 10002
[message] => Аргумент ‘documentId’ не определен
[file] => /home/bitrix/www/bitrix/modules/bizproc/classes/general/helper.php [804]
)
)
И только с array(«bizproc»,»CBPVirtualDocument»,876) сработало
что за «bizproc»,»CBPVirtualDocument». в чем подвох? )))
мне не успокоиться))
Вот выдержка из оф. документации:
Откройте диалог настроек параметров действия с помощью иконки и введите код:
CBPDocument::StartWorkflow(
6,
array(«bizproc»,»CIBlockDocument»,),
array(«Voters»=>array(«user_1»)),
$arErrors
);
Где:
Первый параметр — это ID запускаемого шаблона бизнес процесса. В нашем случае это 6, что соответствует Двухэтапному утверждению.
Примечание: ID одних и тех же бизнес процессов могут отличаться для разных установок продукта. Всегда внимательно проверяйте данный параметр.
Второй параметр — это код документа, для которого создается бизнес-процесс. Он задается в виде массива, элементами которого являются соответственно название модуля, класс документа и код документа в модуле.
Примечание: шаблон запускаемого бизнес-процесса должен соответствовать типу указываемого документа. В данном примере бизнес-процесс запускается для того же элемента информационных блоков, над которым работает запускающий бизнес-процесс.
Для лидов во втором параметре в функцию CBPDocument::StartWorkflow() необходимо передавать массив array(«crm»,»CCrmDocumentLead»,»LEAD_».intval($id))
Для других сущностей с параметрами можно ознакомиться в таблице БД b_bp_workflow_template
добрый день! просьба помочь с автозапуском БП в инфоблоке.
в ручном режиме работает.
расписал здесь: http://dev.1c-bitrix.ru/community/forums/forum23/topic98135/
>> Александр Урилов пишет.
А нет такого же рецепта, но для новых БП (которые в живой ленте)?
А Вы не пробовали отметить галочку Показать в живой ленте (для бизнес процесса) или установить этот параметр через код
Здравствуйте, Юлия! Читаю частенько ваш блог очень полезная информация, продолжайте в том же духе! Недавно возникла задача запустить БП по при создании элемента списка (список создавал робот и стандартный запуск не отрабатывал), при использовании вашего кода БП запускался, НО лог о запуске не создавался, стал копать и нашел как сделать с логом. Ниже полный код
// ID БП
$bp_id = 43;
$arErrorsTmp = array();
$arWorkflowParameters = array();
// Запуск БП по элементам списка (инфоблока)
CBPDocument::StartWorkflow(
$bp_id,
array(
‘lists’,
‘Bitrix\\Lists\\BizprocDocumentLists’,
$arFields[‘ID’],//ID Элемента инфоблока
),
array_merge($arWorkflowParameters, array(
CBPDocument::PARAM_TAGRET_USER => «user_».intval($GLOBALS[«USER»]->GetID()),
CBPDocument::PARAM_DOCUMENT_EVENT_TYPE => CBPDocumentEventType::Manual
)),
$arErrorsTmp
);
Добавьте пожалуйста этот код в вашу статью. Спасибо.
Эдуард,
когда добавляю
CBPDocument::PARAM_DOCUMENT_EVENT_TYPE => CBPDocumentEventType::Manual
у меня выдает
[10002] The argument ‘documentId’ is undefined.
Этот код сработал, БП запустился, я стал эксперементировать с параметрами. И с раза 5-го код перестал работать с выбросом ошибки
Array
(
[0] => Array
(
[code] => 10002
[message] => Аргумент ‘documentId’ не определен
[file] => /home/bitrix/www/bitrix/modules/bizproc/classes/general/helper.php [804])
)
И только с array(«bizproc»,»CBPVirtualDocument»,876) сработало
что за «bizproc»,»CBPVirtualDocument». в чем подвох? )))
Надо конвертировать стринговый ID в int функцией intval
Я здесь, чтобы поделиться своим свидетельством о том, что хорошая кредитная компания, которой доверяют, сделала для меня, я из России, и я прекрасная мать 3 детей. Я потеряла свои средства, пытаясь получить кредит для расширения моей вечнозеленой группы компаний. это было так тяжело для меня и моих детей, я пошел в Интернет, чтобы искать помощь в кредите, вся надежда была потеряна до одного рокового дня, когда я встретил своего друга, который недавно получил кредит от очень честного человека, мистера Педро. Она познакомила меня с этим честным кредитным специалистом, г-ном Педро, который помог мне получить кредит в течение 5 рабочих дней, я всегда буду благодарен г-ну Педро за то, что он помог мне снова встать на ноги. Вы можете связаться с г-ном Педро по электронной почте: pedroloanss@gmail.com / WhatsApp: +18632310632 они не знают, что я делаю это для них, но я просто должен сделать это, потому что там много людей, которые нуждаются в помощь в получении кредита, пожалуйста, обратитесь к этому честному человеку, и вы также можете быть в безопасности.
bizproc.workflow.start
bizproc.workflow.start — метод запускает Бизнес-процесс.
Для запуска БП из ленту новостей используйте метод lists_element_add. IBLOCK_TYPE_ID в этом случае бужет bitrix_processes.
Параметры
Параметр | Описание |
---|---|
TEMPLATE_ID | Идентификатор шаблона БП |
DOCUMENT_ID | Идентификатор документа БП |
PARAMETERS | Значения параметров БП (если шаблон с параметрами) |
Примеры
function startWf(leadId, tplId, cb) < if (!leadId) < alert('Lead not selected'); return; >var params = < TEMPLATE_ID: tplId, DOCUMENT_ID: ['crm', 'CCrmDocumentLead', leadId], PARAMETERS: null >; BX24.callMethod( 'bizproc.workflow.start', params, function(result) < if(result.error()) alert("Error: " + result.error()); else if (cb) cb(); >); >
Примеры подстановки в параметр DOCUMENT_ID:
['crm', 'CCrmDocumentLead', 'LEAD_777'] - Лид ['crm', 'CCrmDocumentCompany', 'COMPANY_777'] - Компания ['crm', 'CCrmDocumentContact', 'CONTACT_777'] - Контакт ['crm', 'CCrmDocumentDeal', 'DEAL_777'] - Сделка ['disk', 'Bitrix\Disk\BizProcDocument', '777'] - файл Диска ['lists', 'BizprocDocument', '777'] - документ Процессов в ленте (в новостях) ['lists', 'Bitrix\Lists\BizprocDocumentLists', '777'] - документ Списков
Пример DOCUMENT_ID для смарт-процесса:
DOCUMENT_ID = ['crm', 'Bitrix\Crm\Integration\BizProc\Document\Dynamic', 'DYNAMIC_147_1']
Где 147 — это ID смарт-процесса, 1 — ID элемента.
Пример подстановки в параметр DOCUMENT_ID для новых счетов:
Bitrix\Crm\Integration\BizProc\Document\SmartInvoice SMART_INVOICE_
StartWorkflow
Метод запускает рабочий поток по коду его шаблона. Это рекомендуемый метод для запуска бизнес-процессов.
Примечание: Метод принимает массив конфигурационных параметров и генерирует скрипты, необходимые для показа файлового диалога. Метод статический.
Параметры метода
Параметр | Описание |
---|---|
workflowTemplateId | Код шаблона рабочего потока. |
documentId | Массив из 3 элементов. id модуля, сущность (класс) и непосредственно ID документа, например: |
['crm', 'CCrmDocumentLead', 'LEAD_1'] ['lists', 'BizprocDocument', '22'] ['disk', 'Bitrix\Disk\BizProcDocument', '490'] ['tasks', 'Bitrix\Tasks\Integration\Bizproc\Document\Task', '13']
$documentId => array('lists', 'BizprocDocument', $id_element)
$documentId => array('lists', 'Bitrix\Lists\BizprocDocumentLists', $id_element)
Примечание: если процесс запускается из другого процесса через API, и при этом передается значение множественного параметра, то оно должно передаваться в виде массива.
array(
array(
"code" => код_ошибки,
"message" => сообщение,
"file" => путь_к_файлу
),
.
).
Возвращаемое значение
Возвращается идентификатор запущенного бизнес-процесса. В случае ошибки заполняется массив ошибок.
Смотрите также
Примеры использования
// Запустим бизнес-процесс по шаблону $workflowTemplateId с входящими параметрами $arWorkflowParameters
// для документа array("bizproc", "CBPVirtualDocument", $documentId)
$arErrorsTmp = array();
$wfId = CBPDocument::StartWorkflow(
$workflowTemplateId,
array("bizproc", "CBPVirtualDocument", $documentId),
array_merge($arWorkflowParameters, array("TargetUser" => "user_".intval($GLOBALS["USER"]->GetID()))),
$arErrorsTmp
);
if (count($arErrorsTmp) > 0)
foreach ($arErrorsTmp as $e)
$errorMessage .= "[".$e["code"]."] ".$e["message"]."
";
>
?>
Битрикс запуск бизнес процесса php
Курс полностью посвящен бизнес-процессам и содержит в себе всю информацию о них, включённую в разные ролевые учебные курсы.
Он включает в себя уроки и главы по работе с бизнес-процессами, их настройке и созданию. Также в курсе присутствуют примеры и приемы использования бизнес-процессов и отдельная глава, предназначенная для разработчиков.
Для прохождения курса рекомендуется предварительно изучить следующие курсы:
В результате прохождения курса можно приобрести следующие навыки:
- работа с бизнес-процессами на уровне пользователя;
- настройка системы для корректной работы бизнес-процессов;
- проектирование и построение собственных бизнес-процессов;
- разработка собственных действий и создание более сложных процессов.
Комментарии к урокам
На каждой странице курса авторизованный на сайте посетитель может дать комментарий к содержимому страницы. Комментарий — не форум, там не ведётся обсуждений или разъяснений. Это инструмент для сообщений нам об ошибках, неточностях. Для отправки комментария воспользуйтесь расположенной в правом нижнем углу окна браузера кнопкой: |
Баллы опыта
В конце каждого урока есть кнопка Прочитано! . При клике на неё в вашу итоговую таблицу опыта добавляется то количество баллов, которое указано в прочитанном После нажатия кнопки Прочитано! появится
окно подтверждения:
уроке.
Периодически мы заново оцениваем сложность уроков, увеличивая/уменьшая число баллов, добавляем новые уроки. Поэтому итоговое количество баллов курса и количество набранных вами баллов могут различаться между собой. Набранные вами баллы, в отличие от суммы баллов курса, не пересчитываются. Не переживайте!
Отличный результат — это если общее число набранных вами баллов отличается от максимального на несколько процентов.
Если нет интернета
Скачать материалы курса в формате EPUB. Файлы формата EPUB Чем открыть файл на
Android:
EPUB Reader
CoolReader
FBReader
Moon+ Reader
eBoox
iPhone:
FBReader
CoolReader
iBook
Bookmate
Windows:
Calibre
FBReader
Icecream Ebook Reader
Плагины для браузеров:
EpuBReader – для Firefox
Readium – для Google Chrome
iOS
Marvin for iOS
ShortBook
Linux:
Calibre
FBReader
Cool Reader
Okular обновляются периодически, поэтому возможно некоторое отставание их от онлайновой версии курса. Версия файла — от 06.06.2023.