НАЧАЛО >> Глобальные корректировки >> Назначение модуля GlobalCorrection >> Сохранение записей на лету📄 Скачать в DOCX
Режим сохранения на лету применяется при выполнении глобальной корректировки через команды IRBIS_GBL (5) и IRBIS_GBL_RECORD (J). Он нужен для больших выборок, когда нельзя держать в памяти все измененные записи до окончания задания.
При выполнении команды 5 система обрабатывает список MFN последовательно. Для каждой записи выполняется GBL-сценарий, затем измененная запись сразу передается на сохранение. После сохранения запись выгружается из рабочего контекста, а в памяти остается только протокол результата.
Первичная запись сохраняется только если сценарий действительно изменил ее. Если сценарий не меняет текущую запись, но создает или открывает дополнительные записи, такие записи сохраняются в ходе выполнения сценария и попадают в общий протокол.
Флаги автоввода, ФЛК и актуализации словаря применяются при каждом сохранении. Это означает, что результат автоввода и ФЛК фиксируется для уже обработанной записи до перехода к следующему MFN.
Команда J применяет GBL-сценарий к переданной виртуальной записи. Сценарий изменяет эту запись в памяти, после чего основная запись возвращается вызывающему коду. Если сценарий открывает или создает дополнительные записи, они сохраняются в ходе выполнения сценария и добавляются в протокол.
Результат выполнения содержит счетчик успешно сохраненных первичных записей и список строк протокола по обработанным записям. В протокол могут попадать как первичные, так и дополнительные записи, созданные или открытые сценарием.
Если GBL-сценарий или сохранение возвращает ошибку, выполнение текущего задания прерывается. В результате остается код ошибки и сведения о записи, на которой остановилась корректировка. Уже сохраненные записи не откатываются автоматически, поэтому перед запуском на рабочей базе нужно проверять сценарий на малой выборке или копии базы.