- Модуль: rpa
- Путь к файлу: ~/bitrix/modules/rpa/lib/model/prototypeitemindex.php
- Класс: BitrixRpaModelPrototypeItemIndex
- Вызов: PrototypeItemIndex::merge
static function merge(int $itemId, string $searchContent): Result
{
$result = new Result();
global $DB;
$helper = Application::getConnection()->getSqlHelper();
$updateData = $insertData = [
'SEARCH_CONTENT' => $searchContent,
'UPDATED_TIME' => new DateTime(),
];
$insertData['ITEM_ID'] = $itemId;
$preparedSearchContent = $DB->forSql($searchContent);
$encryptedSearchContent = sha1($searchContent);
$updateData['SEARCH_CONTENT'] = new SqlExpression("IF(SHA1(SEARCH_CONTENT) = '{$encryptedSearchContent}', SEARCH_CONTENT, '{$preparedSearchContent}')");
$merge = $helper->prepareMerge(
static::getEntity()->getDBTableName(),
['ITEM_ID'],
$insertData,
$updateData
);
if ($merge[0] !== '')
{
Application::getConnection()->query($merge[0]);
}
else
{
$result->addError(new Error('Error constructing item index merge query'));
}
return $result;
}