Code example
Some examples are provided in the customization section.
Handling the data
Processes
$typesCollection = \Bitrix\Rpa\Model\TypeTable::getList()->fetchCollection();
$typeId = 1; // process ID
$type = Bitrix\Rpa\Driver::getInstance()->getType($typeId);
Stages
$stages = $type->getStages();
$stageId = 1; // stage ID
$stage = $type->getStage($stageId);
Element/items
// stage items with ID higher than 100
$items = $stage->getItems([
'filter' => [
'>ID' => 100,
]
]);
// element with ID = 1 process $type
$item = $type->getItem(1);
Updating elements
When only element data must be updated
For example, for one or another reason, some field value must be reset, without launching automation rules and saving in history.
In this case, this element must be handled directly
$typeId = 1;
$itemId = 1;
$fieldName = 'UF_RPA_1_MY_FIELD';
$item = Bitrix\Rpa\Driver::getType($typeId)->getItem($itemId);
$item->set($fieldName, null);
$item->save();
When the same must be done only with sending of pushes and saving in history, use the following command:
$command = Bitrix\Rpa\Driver::getFactory()->getUpdateCommand($item);
// disable all checks and automation rules launching. Creates an update push, history and timeline entries.
$command->disableAllChecks()
->disableAutomation();
$command->run();
User fields
Rendering field values
Performed via class Display:
$typeId = 1; // process identifier
$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());
© «Bitrix24», 2001-2024