НАЧАЛО >> Синхронизация записей >> Параметры парсера импортируемых файлов📄 Скачать в DOCX
При импорте из каталога Syncer читает файл из входного пути и передает его содержимое функции-парсеру, заданной в настройках синхронизации:
inParserModule - имя модуля парсера;inParserFunction - имя функции парсера.Функция вызывается с двумя аргументами:
array func($syncOptionsRecord, $fileContents)
$syncOptionsRecord - это запись настроек текущей синхронизации после инициализации управляемых переменных. Через этот объект парсер получает не только стандартные поля Syncer, но и дополнительные параметры, если они добавлены в запись настроек или читаются из ее полей напрямую.
Например, парсер может использовать имя целевой базы, входной каталог и собственный параметр отбора. В примере 8^L - условное дополнительное подполе записи настроек, зарезервированное внедрением:
function Exec($syncOptionsRecord, $fileContents)
{
$targetDb = $syncOptionsRecord->dbname;
$sourcePath = $syncOptionsRecord->inPath;
$importMode = $syncOptionsRecord->GetSubField(8, 1, 'L');
return array(
'recid' => $this->ReadIdentifier($fileContents, $importMode),
'targetDb' => $targetDb,
'sourcePath' => $sourcePath,
);
}
Такой подход позволяет хранить параметры конкретного обмена рядом с остальными настройками Syncer и не создавать отдельные версии парсера для каждого варианта загрузки.
Парсер должен вернуть массив с данными, по которым Syncer найдет или создаст целевую запись:
mfn - MFN записи; если он заполнен, используется в первую очередь;recid - идентификатор записи для поиска по индексу I=, используется когда mfn не задан;Если mfn и recid не заполнены, при запуске через action Syncer/Sync создается новая запись и дальше передается в функцию слияния.
После разбора файла Syncer вызывает функцию слияния, заданную полями inModule и inFunction. В нее передается база, найденная или новая запись и весь массив, который вернул парсер:
func($db, $record, $data)
Поэтому парсер может передать в $data не только найденный идентификатор, но и параметры обработки, разобранные значения и служебные признаки. Функция слияния сохраняет запись, если возвращает успешный результат.
$syncOptionsRecord.