Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
АРМ Каталогизатор :  ИРБИС Irbis
 
Формат пакетного задания c переменными параметрами
Пользователь: А. Роман (IP-адрес скрыт)
Дата: 05, March, 2024 11:02

Уважаемые коллеги, подскажите пожалуйста, есть ли возможность выполнить преобразование строки (которая водится в опросном листе) в формате формирующем пакетное задание ?

Текст формата:

'rdr_srch.wss'/
'silent'/
'search "MD5=',&uf('$',&uf('+97%1')),'"'/
'contextout'/
'exit'/

Этот формат преобразует текст %1, а не значение переменного параметра %1.

Вложения: img-2024-03-05-10-59-06.png (336.5KB)   img-2024-03-05-11-00-10.png (169.6KB)  
Re: Формат пакетного задания c переменными параметрами
Пользователь: TatyanaB (IP-адрес скрыт)
Дата: 13, March, 2024 12:40

Дело в том, что оперативный режим обработал формат пакетного задания и отправил его на выполнение. И в формате он записал, что юнифор обрабатывает конкретно строку '%1'. Во время компиляции формата он не знает что там введено в рабочий лист, т.к. никакой рабочий лист ещё даже не вызван.

Могу предложить такой вариант: в бд создаётся некая служебная запись, в определённое поле которой сотрудники вводят искомое значение и сохраняют. Затем запускают оперативный режим, который берёт значение из поля, шифрует, очищает значение поля в служебной записи и отправляет зашифрованное значение на поиск. Пример формата пакетного задания для такого варианта:

'silence'/
&uf('+7W1#'&uf('$'v130)),'global del_130.gbl'/
'search "MD5='g1'"'/
'contextout'/
'exit'/

В принципе, можно использовать даже не определённую служебную запись, а текущую. Добавить новое поле на РЛ RDR. Тогда отпадёт необходимость в переходе на какую-то определённую запись. А ГК будет отрабатывать всё равно не текущей записи, так что поле будет очищаться корректно.

Государственная универсальная научная библиотека Красноярского края, Ассоциация ЭБНИТ.

Re: Формат пакетного задания c переменными параметрами
Пользователь: А. Роман (IP-адрес скрыт)
Дата: 13, March, 2024 20:31

Татьяна, большое спасибо за комментарии! У нас с коллегами уже были мысли насчет того, чтобы предварительно писать информацию из опросного РЛ в какую-нибудь отдельную запись в БД LOGC или в параметр ini-файла и уже оттуда вызывать значение в следующих операторах.

Непонятно только почему формат в котором похожая конструкция не приводит к проблемам.

'rdr_srch.wss'/
'silent'/
'search "K=',&uf('+97%1'),'"'/
'contextout'/
'exit'/

См. видеозапись: https://skrinshoter.ru/vOjZPZd8bsO
в данном примере формат также не имеет представления о том, что будет введено в РЛ.

Re: Формат пакетного задания c переменными параметрами
Пользователь: GLUKa (IP-адрес скрыт)
Дата: 14, March, 2024 06:28

У Вас unifor('+97
Увеличивает только сам %1 , если вы обратите внимание на строку запроса на вкладке результатов поиска, то увидете что текст не большими буквами, а маленькими так как он и был введен. А находит потому что Вы обращаетесь к словарю по указанному префиксу и термину.
А. Роман написал(а):
-------------------------------------------------------
> Татьяна, большое спасибо за комментарии! У нас с
> коллегами уже были мысли насчет того, чтобы
> предварительно писать информацию из опросного РЛ в
> какую-нибудь отдельную запись в БД LOGC или в
> параметр ini-файла и уже оттуда вызывать значение
> в следующих операторах.
>
> Непонятно только почему формат в котором похожая
> конструкция не приводит к проблемам.
>
> 'rdr_srch.wss'/
> 'silent'/
> 'search "K=',&uf('+97%1'),'"'/
> 'contextout'/
> 'exit'/
>
> См. видеозапись:
> [skrinshoter.ru]
> в данном примере формат также не имеет
> представления о том, что будет введено в РЛ.

Государственная универсальная научная библиотека Красноярского края, Ассоциация ЭБНИТ



Редактировано 1 раз. Последний раз 14.03.2024 06:29 пользователем GLUKa.

Re: Формат пакетного задания c переменными параметрами
Пользователь: TatyanaB (IP-адрес скрыт)
Дата: 14, March, 2024 06:29

Только что протестировала вариант вот с таким форматом пакетного задания:

'rdr_srch.wss'/
'silence'/
|search "MD5=$",,,v10=&uf('$%1')|d920/
'contextout'/
'exit'/

В команде search задаётся поиск по нужному вам префиксу с усечением. А в качестве уточняющего последовательного поиска - условие, что нужное поле (в котором хранится хэш) содержит md5-хэш значения из РЛ ввода. За счёт использования именно последовательного поиска можно избежать записи значения в какое-то место и работать с ним сразу из листа ввода. Поиск осуществляется корректно.
Но при таком варианте стоит помнить, что при большом записей в бд последовательный поиск будет работать долго.

Государственная универсальная научная библиотека Красноярского края, Ассоциация ЭБНИТ.



Редактировано 1 раз. Последний раз 14.03.2024 06:31 пользователем TatyanaB.

Re: Формат пакетного задания c переменными параметрами
Пользователь: А. Роман (IP-адрес скрыт)
Дата: 14, March, 2024 11:22

Спасибо, но даже в случае с последовательным поиском не получится хешировать строку в верхнем регистре, т.к. добавляя в формат перевод значения переменной в верхний регистр |search "MD5=$",,,v10=&uf('$',&uf('+97'%1'))|d920 формат уже не срабатывает.

Почему в одном случае в формате

&uf('+7'),&uf('+7W1088#',&uf('+97%1'))

используется текст %1 а в другом (в вашем примере)

|search "MD5=$",,,v10=&uf('$%1')|d920/

подставляется значение переменной %1 ?

Re: Формат пакетного задания c переменными параметрами
Пользователь: GLUKa (IP-адрес скрыт)
Дата: 14, March, 2024 11:25

|search "MD5=$",,,v10=&uf('$',&uf('+97'%1'))|d920 - ошибка формата.

А. Роман написал(а):
-------------------------------------------------------
> Спасибо, но даже в случае с последовательным
> поиском не получится хешировать строку в верхнем
> регистре, т.к. добавляя в формат перевод значения
> переменной в верхний регистр |search
> "MD5=$",,,v10=&uf('$',&uf('+97'%1'))|d920 формат
> уже не срабатывает.
>
> Почему в одном случае в формате
>
> &uf('+7'),&uf('+7W1088#',&uf('+97%1'))
>
> используется текст %1 а в другом (в вашем
> примере)
>
> |search "MD5=$",,,v10=&uf('$%1')|d920/
>
> подставляется значение переменной %1 ?

Государственная универсальная научная библиотека Красноярского края, Ассоциация ЭБНИТ



Редактировано 2 раз. Последний раз 14.03.2024 11:27 пользователем GLUKa.

Re: Формат пакетного задания c переменными параметрами
Пользователь: А. Роман (IP-адрес скрыт)
Дата: 14, March, 2024 11:38

Спасибо! Глаз замылился, не заметил лишний символ '

Re: Формат пакетного задания c переменными параметрами
Пользователь: GLUKa (IP-адрес скрыт)
Дата: 14, March, 2024 11:38

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

А. Роман написал(а):
-------------------------------------------------------
> Спасибо, но даже в случае с последовательным
> поиском не получится хешировать строку в верхнем
> регистре, т.к. добавляя в формат перевод значения
> переменной в верхний регистр |search
> "MD5=$",,,v10=&uf('$',&uf('+97'%1'))|d920 формат
> уже не срабатывает.
>
> Почему в одном случае в формате
>
> &uf('+7'),&uf('+7W1088#',&uf('+97%1'))
>
> используется текст %1 а в другом (в вашем
> примере)
>
> |search "MD5=$",,,v10=&uf('$%1')|d920/
>
> подставляется значение переменной %1 ?

Государственная универсальная научная библиотека Красноярского края, Ассоциация ЭБНИТ



Редактировано 1 раз. Последний раз 14.03.2024 11:38 пользователем GLUKa.



Извините, только зарегистрированные пользователи могут писать в этом форуме.
This forum powered by Phorum.