Оператор включения вложенного GBL-задания


НАЧАЛО >> Глобальные корректировки >> Оператор включения вложенного GBL-задания📄 Скачать в DOCX


Оператор @ подключает из текущей базы другой GBL-файл и выполняет его как часть текущего сценария. Он нужен, когда общую последовательность команд используют в нескольких глобальных корректировках или когда большой сценарий удобнее разделить на отдельные задания.

1. Когда применять

Используйте вложенное задание, если один и тот же фрагмент корректировки повторяется в нескольких сценариях: например, обновляет связанные поля, пересчитывает служебные данные или выполняет типовую очистку перед продолжением основного сценария.

Не выносите в отдельный файл короткий уникальный фрагмент, который используется только в одном месте. В этом случае вложение усложнит проверку сценария и поиск причины ошибки.

2. Синтаксис

Строка подключения начинается с символа @, после него указывается имя GBL-файла.

@KUMUL909

Если в имени нет точки, движок автоматически добавляет расширение .gbl. Поэтому строка @KUMUL909 загружает файл KUMUL909.gbl. Если нужно указать файл с другим расширением, напишите имя полностью:

@TASK.GBL128

Файл ищется среди файлов текущей базы данных. Для серверного движка это путь APATH_DB: каталог datai/<имя_базы>/ у провайдеров ИРБИС.

3. Как выполняется вложение

При первом обращении движок читает вложенный файл и кэширует его содержимое по имени файла. Затем команды из вложенного задания выполняются тем же экземпляром GblEngine, что и основной сценарий.

Вложенный сценарий работает с той же текущей записью и той же временной областью выполнения. Это означает, что:

4. Пример

Основной сценарий может подготовить временное поле, вызвать общий фрагмент и затем удалить временные данные. Пустые строки в примере являются пустыми параметрами команд GBL.

ADD
1001

'^&',,v1010,

@KUMUL909

DEL
1001
*

В этом примере вложенный файл получает поле 1001, выполняет общую корректировку, а основной сценарий после возврата удаляет временное поле.

5. Проверка и ограничения

Перед запуском проверьте, что вложенный файл есть в той же базе, имя указано с нужным расширением, а основной и вложенный сценарии согласованы по временным полям и командам NEWREC/END.

Если вложенный файл не найден, движок пропускает подключение без отдельной пользовательской страницы с ошибкой. Поэтому для критичных сценариев полезно заранее проверять наличие файла в базе и сначала выполнять корректировку на малой выборке.