• Модуль: 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;
}