НАЧАЛО >> Руководство пользователя >> Руководство администратора >> Основные настройки и действия >> Синхронная привязка записи-источника к сводной записи📄 Скачать в DOCX
Функция CSpider::LinkWithEsvodt создает или подтверждает связь записи-источника со сводной записью сразу в текущем вызове. Ее используют в проектной логике, когда запись уже есть в объекте ObjectDataRecord и нужно не ждать фонового этапа дедубликации, а сразу получить строку в таблице слияний, выбрать сводную запись и запустить первичное слияние.
|
Функция не заменяет полный цикл обработки CSpider. Она выполняет грубое слияние и переводит строку таблицы слияний на |
UseModule('CSpider')->LinkWithEsvodt($db, $r, $idField = 903, $idSubField = '*', $ssh = '');
| Параметр | Тип | Назначение | Значение по умолчанию |
|---|---|---|---|
$db |
ObjectData |
БД-источник, из которой получена запись | - |
$r |
ObjectDataRecord |
Запись-источник | - |
$idField |
int |
Поле, где хранится уникальный идентификатор записи | 903 |
$idSubField |
string |
Подполе уникального идентификатора записи | * |
$ssh |
string |
Шифр сводной записи, к которой нужно привязать источник без поиска дублетов | пустая строка |
Подробная автодокументация функции доступна в списке функций модуля: ?id=Help/Show&m=Help/Module/Functions&module=CSpider#LinkWithEsvodt.
$r проверяется и при необходимости создается строка в таблице слияний ESVODT.sh, затем читается соответствующая строка таблицы слияний.ssh, функция завершает работу и не меняет существующую связь, даже если в вызове передан новый $ssh.$ssh передан и в сводной БД есть запись с таким шифром, используется эта запись.$ssh не передан или запись по нему не найдена, вызывается FindDublet::findServerRecord: он ищет ранее связанную запись, запись по индексу SYNCI=, дублетную запись или создает новую сводную запись.MergeRecords::Merge выполняет первичное слияние записи-источника со сводной записью.$idField и $idSubField.ESVODT получает новый ssh, контрольную сумму mds, пустое описание ошибки и статус stage=5.Функция ничего не возвращает вызывающему коду. Результат нужно проверять по состоянию таблицы слияний и сводной записи:
ssh;stage должен быть переведен на 5, чтобы запись прошла формальную проверку и дальнейшие фоновые этапы;ssh должно остаться прежним.Для ручной проверки используйте страницу Таблица слияний или Проверка состояния записи-источника по шифру.
$sshПередавайте $ssh, если вызывающий код уже знает точную сводную запись и нужно связать источник именно с ней. В этом режиме функция сначала ищет запись в сводной БД по индексу I=<ssh>. Если такая запись не найдена, параметр считается неуспешным указанием цели, и функция возвращается к стандартному поиску через FindDublet::findServerRecord.
Если $ssh не передан, привязка строится по стандартным правилам CSpider: поиск ранее синхронизированной записи, поиск по SYNCI=, поиск дублета и создание новой сводной записи, когда подходящая запись не найдена.