Битрикс24 коробка. Бизнес-процессы, php-код


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);