среда, 10 июня 2015 г.

Простой и интересный на мой взгляд кейс бизнес-процесса (Битрикс24 коробка)

На одном из проектов понадобилось настроить такой бизнес-процесс: в ходе БП создается рабочая группа, далее создаются задачи и прикрепляются к данной рабочей группе. У некоторых задач есть подзадачи.

Создание рабочей группы и подзаачи - сделаны как вставки php кода:


Для рабочей группы:

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"))
{
 \Bitrix\Disk\Driver::getInstance()->addGroupStorage($GroupID);
}

$this->SetVariable('WORKGROUPID',$GroupID);

Для подзадачи:

if (CModule::IncludeModule("tasks"))
{
global $USER;

    $arFields = Array(
        "TITLE" => "Task title",
        "DESCRIPTION" => "Task description",
        "RESPONSIBLE_ID" => $USER->GetID(),
        "GROUP_ID" => $this->GetVariable('WORKGROUPID'),
        "PARENT_ID"=>'{=A2629_10558_53461_99205:TaskId}',
    );

    $obTask = new CTasks;
    $ID = $obTask->Add($arFields);
    $success = ($ID>0);
}

Комментариев нет: