Документация для разработчиков
Темная тема

Примеры кода

Некоторые примеры есть в разделе про кастомизацию.



Работа с данными


Процессы
$typesCollection = \Bitrix\Rpa\Model\TypeTable::getList()->fetchCollection();

$typeId = 1; // идентификатор процесса

$type = Bitrix\Rpa\Driver::getInstance()->getType($typeId);
Стадии
$stages = $type->getStages();

$stageId = 1; // идентификатор стадии

$stage = $type->getStage($stageId);
Элементы
// элементы стадии с ID больше 100
$items = $stage->getItems([
    'filter' => [
        '>ID' => 100,
    ]
]);

// элемент с ID = 1 процесса $type
$item = $type->getItem(1);

Изменение элементов


Если надо произвести только изменение данных об элементе

Например, надо в фоне по той или иной причине сбросить значение какого-то поля, без запуска роботов и сохранения в истории.

В этом случае надо работать с элементом напрямую

$typeId = 1;
$itemId = 1;
$fieldName = 'UF_RPA_1_MY_FIELD';

$item = Bitrix\Rpa\Driver::getType($typeId)->getItem($itemId);

$item->set($fieldName, null);
$item->save();

Если надо сделать то же самое, но с рассылкой пушей и сохранением в историю, то надо использовать команду:

$command = Bitrix\Rpa\Driver::getFactory()->getUpdateCommand($item);
// отключены все проверки и запуск роботов. Пуш об изменении, записи в истории изменений и таймлайне создадутся.
$command->disableAllChecks()
    ->disableAutomation();

$command->run();

Пользовательские поля


Отрисовка значений полей

Осуществляется через класс Display:

$typeId = 1; // идентификатор процесса
$itemId = 1;

$type = Bitrix\Rpa\Driver::getInstance()->getType($typeId);
$userFieldCollection = $type->getUserFieldCollection();
$display = new Bitrix\Rpa\UserField\Display($userFieldCollection);

$item = $type->getItem($itemId);
$controller = new Bitrix\Rpa\Controller\Item();

$data = [];
foreach($userFieldCollection as $userField)
{
    $data[$userField->getName()] = $controller->prepareValue($item->get($userField->getName()));
}

$display->addValues($item->getId(), $data);

$renderedValues = $display->getValues($item->getId());



© «Битрикс», 2001-2021, «1С-Битрикс», 2021
Наверх