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

Примеры кода

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



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


Процессы
$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
Наверх