НАЧАЛО >> Глобальные корректировки >> Оператор включения вложенного GBL-задания📄 Скачать в DOCX
Оператор @ подключает из текущей базы другой GBL-файл и выполняет его как часть текущего сценария. Он нужен, когда общую последовательность команд используют в нескольких глобальных корректировках или когда большой сценарий удобнее разделить на отдельные задания.
Используйте вложенное задание, если один и тот же фрагмент корректировки повторяется в нескольких сценариях: например, обновляет связанные поля, пересчитывает служебные данные или выполняет типовую очистку перед продолжением основного сценария.
Не выносите в отдельный файл короткий уникальный фрагмент, который используется только в одном месте. В этом случае вложение усложнит проверку сценария и поиск причины ошибки.
Строка подключения начинается с символа @, после него указывается имя GBL-файла.
@KUMUL909
Если в имени нет точки, движок автоматически добавляет расширение .gbl. Поэтому строка @KUMUL909 загружает файл KUMUL909.gbl. Если нужно указать файл с другим расширением, напишите имя полностью:
@TASK.GBL128
Файл ищется среди файлов текущей базы данных. Для серверного движка это путь APATH_DB: каталог datai/<имя_базы>/ у провайдеров ИРБИС.
При первом обращении движок читает вложенный файл и кэширует его содержимое по имени файла. Затем команды из вложенного задания выполняются тем же экземпляром GblEngine, что и основной сценарий.
Вложенный сценарий работает с той же текущей записью и той же временной областью выполнения. Это означает, что:
@, доступны вложенному заданию;v*** и &&& подставляются перед выполнением команд;NEWREC или NEWMFN команда END завершает создаваемую запись и возвращает выполнение к исходной записи.Основной сценарий может подготовить временное поле, вызвать общий фрагмент и затем удалить временные данные. Пустые строки в примере являются пустыми параметрами команд GBL.
ADD
1001
'^&',,v1010,
@KUMUL909
DEL
1001
*
В этом примере вложенный файл получает поле 1001, выполняет общую корректировку, а основной сценарий после возврата удаляет временное поле.
Перед запуском проверьте, что вложенный файл есть в той же базе, имя указано с нужным расширением, а основной и вложенный сценарии согласованы по временным полям и командам NEWREC/END.
Если вложенный файл не найден, движок пропускает подключение без отдельной пользовательской страницы с ошибкой. Поэтому для критичных сценариев полезно заранее проверять наличие файла в базе и сначала выполнять корректировку на малой выборке.