22.04.2020
18:41
22.04.2020 18:41:23
PHP-код блок пример
CModule::IncludeModule("nikaverro.gservice");
$root = $this->GetRootActivity();
$gs = GameService::getInstance();
$address = $gs->GetAddressGSText($root->GetVariable('AddressGS'));
$this->SetVariable('AddressGS',$address); |
команды
$root = $this->GetRootActivity();
$root->GetVariable('name'); //получить переменную
$root->GetConstant('name'); //получить константу, но не работает для глобальных констант
$root->GetDocumentId(); //id документа
//получить глобальную константу
$property = \Bitrix\Bizproc\Workflow\Type\GlobalConst::getById($constName); //получить свойство
$result = \Bitrix\Bizproc\Workflow\Type\GlobalConst::getValue($constName); //получить значение
|
PHP-код в условииЗадача: отправлять письмо о создании заказа если "онлайн-оплата на сайте" с ID 14 со ссылкой на оплату, иначе без нее. |
1. Создаем переменную в бизнес-процессе. (у меня
pay_system_id)
2. Присваиваем переменной значение
вариант 1. через блок "php код"
$this->SetVariable('pay_system_id', {=Document:PAY_SYSTEM_ID}); |
вариант 2. через блок "изменение переменных".
3. В условии выбираем тип условия "php-код"
4. Задаем условие
Важно! доступа к Document и $this нет, есть $ownerActivity |
$ownerActivity->GetVariable('pay_system_id') != 14 //платежная система эквайринг с ID 14
|
4. Если да, то блок "Отправить письмо клиенту" (обычное письмо), иначе php-код, который запускает Функцию, которая генерирует письмо со ссылкой на оплату (ее размещаем в init.php)
Создать подзадачу для задачи из бизнес-процесса
$arFields = Array( "TITLE" => "Название задачи",
"DESCRIPTION" => "Описание",
"RESPONSIBLE_ID" => $userId, //ответственный
"GROUP_ID" => $this->GetVariable('WORKGROUPID'),
"PARENT_ID"=>'{=A2629_10558_53461_99205:TaskId}',
);
$obTask = new CTasks;
$ID = $obTask->Add($arFields); |
Cоздать рабочую группу и ее диск из бизнес-процесса
CModule::IncludeModule('socialnetwork');
CModule::IncludeModule('disk');
CModule::IncludeModule('webdav');
$SocGroup=new CSocNetGroup;
global $USER;
$arFieldsSG=array(
"NAME"=>"{=Document:TITLE}",
"SITE_ID" => "s1",
"DESCRIPTION"=>"{=Document:TITLE} Workgroup",
"ACTIVE"=>"Y",
"VISIBLE"=>"Y",
"OPENED"=>"Y",
"CLOSED"=>"N",
"SUBJECT_ID"=>4,
"OWNER_ID"=>1,
"INITIATE_PERMS"=>A,
"SPAM_PERMS"=>"N",
"SUBJECT_NAME"=>"Management Board"
);
$GroupID=CSocNetGroup::CreateGroup($USER->GetID(),$arFieldsSG);
if (CModule::IncludeModule("disk")){
BitrixDiskDriver::getInstance()->addGroupStorage($GroupID);
}
$this->SetVariable('WORKGROUPID',$GroupID);
|
запустить бизнес-процесс, не привязанный к CRM
$documentId = CBPVirtualDocument::CreateDocument( 0,
array(
"IBLOCK_ID" => 27,
"NAME" => "Create Notification",
"CREATED_BY" => "user_".$GLOBALS["USER"]->GetID(),
)
);
$arErrorsTmp = array();
$wfId = CBPDocument::StartWorkflow(
$bpId,
array("bizproc", "CBPVirtualDocument", $documentId),
array_merge(array(), array("TargetUser" => "user_".intval($GLOBALS["USER"]->GetID()))),
$arErrorsTmp
); |
22.04.202018:4122.04.2020 18:41:23