- Модуль: rpa
- Путь к файлу: ~/bitrix/modules/rpa/lib/model/prototypeitem.php
- Класс: BitrixRpaModelPrototypeItem
- Вызов: PrototypeItem::modifyValuesBeforeSave
static function modifyValuesBeforeSave($id, array $data, array $options = []): ORMEventResult
{
$userFieldManager = UserFieldHelper::getInstance()->getManager();
$isUpdate = (isset($options['isUpdate']) && $options['isUpdate'] === true);
$result = new MainORMEventResult();
if (!$userFieldManager)
{
static::$isCheckUserFields = true;
return $result;
}
if($isUpdate)
{
$oldData = static::getByPrimary($id)->fetch();
static::getTemporaryStorage()->saveData($id, $oldData);
if (
static::$isCheckUserFields
&& !$userFieldManager->checkFieldsWithOldData(
static::getItemUserFieldEntityId(),
$oldData,
$data
)
)
{
$result->addError(static::getErrorFromException());
}
$fields = $userFieldManager->getUserFieldsWithReadyData(
static::getItemUserFieldEntityId(),
$oldData,
LANGUAGE_ID,
false,
'ID'
);
}
else
{
$fields = $userFieldManager->getUserFields(static::getItemUserFieldEntityId());
if(
static::$isCheckUserFields
&& !$userFieldManager->checkFields(
static::getItemUserFieldEntityId(),
null,
$data,
false,
true
)
)
{
$result->addError(static::getErrorFromException());
}
}
if(!$result->getErrors())
{
$data = static::convertValuesBeforeSave($data, $fields);
$result->modifyFields($data);
}
static::$isCheckUserFields = true;
return $result;
}