Я просмотрел как это работает в других местах.
Там используется база по умолчанию видимо, это IBIS.
Почему это не работало.
Дело в том, что этот формат должен сформировать строки задания, в строках задания могут быть тоже параметры %N.
Типа как в веб ирбисе - формат выводит литералы, которые потом парсятся.
Проблема была в том, что в этом месте формат не патчится на параметры, потому что параметры разбираются после выполнения этого формата в его результатах, а не в нем самом.
И только результат его выполнения реально получает эти данные.
Я добавил разбор параметров в 2 прохода.
до выполнения формата
выполнение формата
оригинальный алгоритм разбора параметров
Здесь могут быть и последствия.
Оказалось, что Бродовский применяет последовательно разные схемы к первой строке.
Если расширение в первой строке .WSS, делаем параметры
Если первая строка строка начинается с @ делаем тоже параметры.
Как только я скопировал этот блок в начало, он тут же стал выводить окно параметров 2 раза.
Причем эти 2 блока с параметрами - для .WSS и для строки с @ - они разные.
Я сделал первый проход так.
если первая строка с .WSS ...
иначе если первая строка с @ ..
Оригинальное место с просмотром первой строки задания, после выполнения формата осталось как есть.
Так что если формат выведет что-то, что в первой строке содержит .WSS или начинается с @, то окошко параметров покажется снова.
Может даже 2 раза.
Поэтому может и основной блок обработки параметров надо сделать не последовательно, а через ИНАЧЕ, чтобы он 2 раза не трогал первую строку.
Присланный формат косячный, не хватает FI в конце повторяющейся группы.
К сожалению, клиент при разборе формата не пишет xpft_error.log, поэтому разобрать ошибку можно только в серверном редакторе.
Я могу включить лог ошибок в этом месте, потом выключить после, чтобы лог писался, так как здесь - то явно формат, если это поможет трудящимся.
так надо
&uf('+7'),
'SILENCE'/
'SEARCH "NKSU=%1"' /
&uf('+7W1#'(&unifor('+5Tmhr.mnu')/)),
(if p(g1) then if val(&uf('+3S,0,?(NKSU=%1)(MHR='g1')?,'))>0 then
'PRINT 1,TAB4BW,,,,^A%1^B'g1',1/c:\irbiswrk\накл'&unifor('+9I!/!/*/',g1) '.rtf',
fi fi /)
[I128-1858] Поддержка переменных параметров в пакетном задании АРМ Каталогизатор в момент фомирования самого задания
Статус: Отменено | Автор: Ilya Mikhaylenko