Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
АРМ Администратор :  ИРБИС Irbis
 
Автоввод в ATHRS
Пользователь: goirvi (IP-адрес скрыт)
Дата: 23, March, 2007 07:45

Уважаемые разработчики, при работе в Irbis-32, версия 5.2, база ATHRS, у меня сложилась следующая ситуация. Формат autoin.gbl., а точнее команда

NEWMFN
if &unifor('Av1002#1'):'^a'then if &unifor('JATHRS,','!',if &unifor('Av1002#1'):'^a' and &unifor('Av1002^b#1')='' and &unifor('Av1002^G#1')='' and &unifor('Av1002^H#1')='' and &unifor('Av1002^9#1')='' and &unifor('Av1002^a*27#1')=''then &unifor('Av1002^a#1') else &unifor('Av1002^a.10#1'),&unifor('+B'&unifor('Av1002^a*10#1'))fi,if &unifor('Av1002^B#1')<>''then if &unifor('Av1002^b#1')<>'' and &unifor('Av1002^b*10#1')='' then &unifor('Av1002^b#1') else &unifor('Av1002^b.1#1'),&unifor('+B'&unifor('Av1002^B*1#1')) fi fi,if &unifor('Av1002^C#1')<>''then &unifor('+B'&unifor('Av1002^C#1')) fi,if &unifor('Av1002^D#1')<>''then &unifor('+B'&unifor('Av1002^d#1')) fi,if &unifor('Av1002^G#1')<>''then &unifor('+B'&unifor('Av1002^G#1')) fi,if &unifor('Av1002^E#1')<>''then &unifor('+B'&unifor('Av1002^E#1')) fi,if &unifor('Av1002^O#1')<>''then &unifor('+B'&unifor('Av1002^O#1')) fi,if &unifor('Av1002^H#1')<>''then &unifor('+B'&unifor('Av1002^H#1')) fi,if &unifor('Av1002^9#1')<>''then &unifor('+B'&unifor('Av1002^9#1')) fi)=''then 'ATHRS' else fi fi
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX

при тестировании в редакторе форматов работает нормально, т.е. условный оператор (с заменой v1002 на v510) для тех повторений поля 510, для которых нет соответствующих предметных рубрик, оператор выдает ‘ATHRS’, если для некоторого повторения поля 510 предметная рубрика есть, то не выдается ничего, а значит, новая запись не создается.
Но вот при импорте с подключенным автовводом новые записи в ATHRS создаются для всех повторений поля 510 независимо от того, присутствует в базе соответствующая предметная рубрика (поле 210) или нет. Т.о. создаются многочисленные дублеты.
Так и должно быть или что-то работает неправильно? Помогите, пожалуйста, разобраться.

Re: Автоввод в ATHRS
Пользователь: Карауш (IP-адрес скрыт)
Дата: 24, March, 2007 15:35

Дело в том, что импорт делается без последовательной поочередной актуализации словарей для каждой поступающей записи из импортируемого файла. И поэтому рубрики на дублетность проверяются только относительно тех, что были в базе до момента импорта. Все "новые" рубрики, которые находятся в импортирумом блоке записей будут создавать столько записей в БД ATHRS, сколько раз они стретятся в импортируемых записях.
Для ухода от этого необходимо воспользоваться режимом импорта из АРМ Каталогизатор. Это дольше, но зато вы получите требуемый результат.

Re: Автоввод в ATHRS
Пользователь: goirvi (IP-адрес скрыт)
Дата: 26, March, 2007 12:16

Спасибо. Гончарова Ирина.

Re: Автоввод в ATHRS
Пользователь: Яковлева Татьяна (IP-адрес скрыт)
Дата: 26, March, 2007 17:12

Это работает только для ИРБИС-32. Для Ирбис-64 надо загружать через АРМ Администратор со снятием режима автоввода. Эта проблема из-за того, что в autoin.gbl задействован оператор REPEAT- размножение.

Re: Автоввод в ATHRS
Пользователь: goirvi (IP-адрес скрыт)
Дата: 28, March, 2007 10:48

Спасибо за это добавление тоже.

Re: Автоввод в ATHRS
Пользователь: artgonch (IP-адрес скрыт)
Дата: 09, September, 2008 12:28

Столкнулся с аналогичной проблемой.

Версия 2006-2 (32). Взял уже сценарий автоввода из 2007-2 (64). Есть в Каталогизаторе запись на рубрику с несколькими повторениями 510 поля. При нажатии кнопки Сохранить создаются отдельные записи на каждую ссылку СМ. Если в исходную запись добавить еше одно или несколько повторений 510 поля, то при сохранении создаются помимо новых дублетные записи на те повторения 510, которые раньше уже были автоматически созданы.

Вот фрагмент сценария автоввода:
IF
if s(v510)<>''then '1' else '0' fi
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
ADD
1002
XXXXXXXXXXXXXXXXXXX
rubr
XXXXXXXXXXXXXXXXXXX
REPEAT
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
NEWMFN
if &unifor('Av1002#1'):'^a'then if &unifor('JATHRS,','!',if &unifor('Av1002#1'):'^a' and &unifor('Av1002^b#1')='' and &unifor('Av1002^G#1')='' and &unifor('Av1002^H#1')='' and &unifor('Av1002^9#1')='' and &unifor('Av1002^a*27#1')=''then &unifor('Av1002^a#1') else &unifor('Av1002^a.10#1'),&unifor('+B'&unifor('Av1002^a*10#1'))fi,if &unifor('Av1002^B#1')<>''then if &unifor('Av1002^d#1')='' and &unifor('Av1002^b*10#1')='' then &unifor('Av1002^b#1') else &unifor('Av1002^b.1#1'),&unifor('+B'&unifor('Av1002^B*1#1')) fi fi,if &unifor('Av1002^C#1')<>''then &unifor('+B'&unifor('Av1002^C#1')) fi,if &unifor('Av1002^D#1')<>''then &unifor('+B'&unifor('Av1002^d#1')) fi,if &unifor('Av1002^G#1')<>''then &unifor('+B'&unifor('Av1002^G#1')) fi,if &unifor('Av1002^E#1')<>''then &unifor('+B'&unifor('Av1002^E#1')) fi,if &unifor('Av1002^O#1')<>''then &unifor('+B'&unifor('Av1002^O#1')) fi,if &unifor('Av1002^H#1')<>''then &unifor('+B'&unifor('Av1002^H#1')) fi,if &unifor('Av1002^9#1')<>''then &unifor('+B'&unifor('Av1002^9#1')) fi)=''then 'ATHRS' else fi fi
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
ADD
210
XXXXXXXXXXXXXXXXXXX
if &unifor('Av1002#1'):'^A' then '^A'&unifor('Av1002^a#1'),if &unifor('Av1002#1'):'^B'then '^B',&unifor('Av1002^b#1')fi,if &unifor('Av1002#1'):'^C'then '^C',&unifor('Av1002^c#1')fi,if &unifor('Av1002#1'):'^D'then '^D',&unifor('Av1002^d#1') fi,if &unifor('Av1002#1'):'^G'then '^G',&unifor('Av1002^G#1') fi,if &unifor('Av1002#1'):'^E'then '^E',&unifor('Av1002^E#1') fi,if &unifor('Av1002#1'):'^O'then '^O',&unifor('Av1002^O#1') fi,if &unifor('Av1002#1'):'^H'then '^H',&unifor('Av1002^H#1') fi,if &unifor('Av1002#1'):'^9'then '^9',&unifor('Av1002^9#1') fi,if &unifor('Av1002#1'):'^1'then '^1',&unifor('Av1002^1#1') fi,if &unifor('Av1002#1'):'^2'then '^2',&unifor('Av1002^2#1') fi,if &unifor('Av1002#1'):'^3'then '^3',&unifor('Av1002^3#1') fi,if &unifor('Av1002#1'):'^4'then '^4',&unifor('Av1002^4#1') fi,if &unifor('Av1002#1'):'^5'then '^5',&unifor('Av1002^5#1') fi,if &unifor('Av1002#1'):'^6'then '^6',&unifor('Av1002^6#1') fi fi
XXXXXXXXXXXXXXXXXXX
ADD
801
XXXXXXXXXXXXXXXXXXX
'^A',&unifor('Korg.mnu|1'),'^B',&unifor('Korg.mnu|2'),'^10','^C',&unifor('3')
XXXXXXXXXXXXXXXXXXX
ADD
920
XXXXXXXXXXXXXXXXXXX
'ATHRS'
XXXXXXXXXXXXXXXXXXX
END
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
NEWMFN
if &unifor('Av1002#1'):'^X'then if &unifor('JATHRS,','!',if &unifor('Av1002^X*23.1#1')<>''then &unifor('B'&unifor('Av1002^X#1')) else &unifor('Av1002^X#1'),if &unifor('Av1002^?#1')='' then &unifor('Av1002^Y#1') else &unifor('B'&unifor('Av1002^?#1'))fi,if &unifor('Av1002^1#1')<>''then &unifor('Av1002^=#1') fi,if &unifor('Av1002^F#1')<>'' then &unifor('Av1002^F#1') fi,if &unifor('Av1002^K#1')<>'' then &unifor('Av1002^K#1') fi,if &unifor('Av1002^M#1')<>'' then &unifor('Av1002^M#1') fi,if &unifor('Av1002^6#1')<>'' then &unifor('Av1002^6#1') fi,if &unifor('Av1002^Q#1')<>'' then &unifor('Av100Q^F#1') fi,if &unifor('Av1002^T#1')<>'' then &unifor('Av1002^T#1') fi,if &unifor('Av1002^O#1')<>'' then &unifor('Av1002^O#1') fi,if &unifor('Av1002^J#1')<>'' then &unifor('Av1002^J#1') fi,if &unifor('Av1002^0#1')<>'' then &unifor('Av1002^0#1') fi,if &unifor('Av1002^Z#1')<>'' then &unifor('Av1002^Z#1') fi,if &unifor('Av1002^5#1')<>'' then &unifor('Av1002^5#1') fi,if &unifor('Av1002^+#1')<>'' then &unifor('Av1002^+#1') fi fi)=''then 'ATHRS' else fi fi
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
ADD
210
XXXXXXXXXXXXXXXXXXX
if &unifor('Av1002#1'):'^X'then '^A',&unifor('Av1002^X#1'),if &unifor('Av1002#1'):'^Y'then '^B',&unifor('Av1002^Y#1')fi,if &unifor('Av1002#1'):'^1'then '^1',&unifor('Av1002^1#1')fi,if &unifor('Av1002#1'):'^='then '^D',&unifor('Av1002^=#1') fi,if &unifor('Av1002#1'):'^?'then '^G',&unifor('Av1002^?#1') fi,if &unifor('Av1002#1'):'^F'then '^F',&unifor('Av1002^F#1') fi,if &unifor('Av1002#1'):'^K'then '^K',&unifor('Av1002^K#1') fi,if &unifor('Av1002#1'):'^M'then '^M',&unifor('Av1002^M#1') fi,if &unifor('Av1002#1'):'^6'then '^6',&unifor('Av1002^6#1') fi,if &unifor('Av1002#1'):'^Q'then '^T',&unifor('Av1002^T#1') fi,if &unifor('Av1002#1'):'^O'then '^O',&unifor('Av1002^O#1') fi,if &unifor('Av1002#1'):'^J'then '^J',&unifor('Av1002^J#1') fi,if &unifor('Av1002#1'):'^0'then '^0',&unifor('Av1002^0#1') fi,if &unifor('Av1002#1'):'^J'then '^J',&unifor('Av1002^J#1') fi,if &unifor('Av1002#1'):'^Z'then '^Z',&unifor('Av1002^Z#1') fi,if &unifor('Av1002#1'):'^:'then '^:',&unifor('Av1002^:#1') fi, if &unifor('Av1002#1'):'^2'then '^2',&unifor('Av1002^2#1') fi,if &unifor('Av1002#1'):'^.'then '^.',&unifor('Av1002^.#1') fi,if &unifor('Av1002#1'):'^+'then '^+',&unifor('Av1002^+#1') fi,if &unifor('Av1002#1'):'^;'then '^;',&unifor('Av1002^;#1') fi,if &unifor('Av1002#1'):'^,'then '^,',&unifor('Av1002^,#1') fi, if &unifor('Av1002#1'):'^<'then '^<',&unifor('Av1002^<#1') fi, if &unifor('Av1002#1'):'^>'then '^>',&unifor('Av1002^>#1') fi, if &unifor('Av1002#1'):'^7'then '^7',&unifor('Av1002^7#1') fi,if &unifor('Av1002#1'):'^:'then '^8',&unifor('Av1002^8#1') fi fi,
XXXXXXXXXXXXXXXXXXX
ADD
801
XXXXXXXXXXXXXXXXXXX
'^A',&unifor('Korg.mnu|1'),'^B',&unifor('Korg.mnu|2'),'^10','^C',&unifor('3')
XXXXXXXXXXXXXXXXXXX
ADD
920
XXXXXXXXXXXXXXXXXXX
'ATHRA'
XXXXXXXXXXXXXXXXXXX
END
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
NEWMFN
if &unifor('Av1002#1'):'^I'then if &unifor('JATHRS,',if &unifor('Av1002^N#1')='' and &unifor('Av1002^W#1')='' and &unifor('Av1002^P#1')='' and  &unifor('Av1002#1'):'^4' then '!',&unifor('Av1002^4#1'),if &unifor('Av1002^I*6.1#1')<>''then &unifor('B',&unifor('Av1002^I#1')) else &unifor('Av1002^I#1') fi,if &unifor('Av1002^S*6.1#1')<>''then &unifor('B'&unifor('Av1002^S#1')) else &unifor('Av1002^S#1') fi, else if &unifor('Av1002#1'):'^N' or &unifor('Av1002#1'):'^W' or &unifor('Av1002#1'):'^P' then '!',&unifor('Av1002^N#1'),&unifor('Av1002^W#1'),&unifor('Av1002^P#1'),if &unifor('Av1002^I*6.1#1')<>''then &unifor('B'&unifor('Av1002^I#1'))else &unifor('Av1002^I#1') fi fi fi,if &unifor('Av1002^K#1')<>'' then &unifor('Av1002^K#1') fi,if &unifor('Av1002^M#1')<>'' then &unifor('Av1002^M#1') fi,if &unifor('Av1002^6#1')<>'' then &unifor('Av1002^6#1') fi,if &unifor('Av1002^Q#1')<>'' then &unifor('Av100Q^F#1') fi,if &unifor('Av1002^T#1')<>'' then &unifor('Av1002^T#1') fi,if &unifor('Av1002^O#1')<>'' then &unifor('Av1002^O#1') fi,if &unifor('Av1002^J#1')<>'' then &unifor('Av1002^J#1') fi,if &unifor('Av1002^0#1')<>'' then &unifor('Av1002^0#1') fi,if &unifor('Av1002^Z#1')<>'' then &unifor('Av1002^Z#1') fi,if &unifor('Av1002^5#1')<>'' then &unifor('Av1002^5#1') fi,if &unifor('Av1002^+#1')<>'' then &unifor('Av1002^+#1') fi)=''then 'ATHRS' else fi fi
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
ADD
210
XXXXXXXXXXXXXXXXXXX
if &unifor('Av1002#1'):'^I'then '^A',&unifor('Av1002^I#1'),if &unifor('Av1002#1'):'^S'then '^B',&unifor('Av1002^S#1')fi,if &unifor('Av1002#1'):'^N'then '^D',&unifor('Av1002^N#1')fi,if &unifor('Av1002#1'):'^W'then '^F',&unifor('Av1002^W#1') fi,if &unifor('Av1002#1'):'^P'then '^E',&unifor('Av1002^E#1') fi,if &unifor('Av1002#1'):'^4'then '^C',&unifor('Av1002^4#1') fi,if &unifor('Av1002#1'):'^K'then '^K',&unifor('Av1002^K#1') fi,if &unifor('Av1002#1'):'^M'then '^M',&unifor('Av1002^M#1') fi,if &unifor('Av1002#1'):'^6'then '^6',&unifor('Av1002^6#1') fi,if &unifor('Av1002#1'):'^Q'then '^T',&unifor('Av1002^T#1') fi,if &unifor('Av1002#1'):'^O'then '^O',&unifor('Av1002^O#1') fi,if &unifor('Av1002#1'):'^J'then '^J',&unifor('Av1002^J#1') fi,if &unifor('Av1002#1'):'^0'then '^0',&unifor('Av1002^0#1') fi,if &unifor('Av1002#1'):'^J'then '^J',&unifor('Av1002^J#1') fi,if &unifor('Av1002#1'):'^Z'then '^Z',&unifor('Av1002^Z#1') fi,if &unifor('Av1002#1'):'^:'then '^:',&unifor('Av1002^:#1') fi, if &unifor('Av1002#1'):'^2'then '^2',&unifor('Av1002^2#1') fi,if &unifor('Av1002#1'):'^.'then '^.',&unifor('Av1002^.#1') fi,if &unifor('Av1002#1'):'^+'then '^+',&unifor('Av1002^+#1') fi,if &unifor('Av1002#1'):'^;'then '^;',&unifor('Av1002^;#1') fi,if &unifor('Av1002#1'):'^,'then '^,',&unifor('Av1002^,#1') fi, if &unifor('Av1002#1'):'^<'then '^<',&unifor('Av1002^<#1') fi, if &unifor('Av1002#1'):'^>'then '^>',&unifor('Av1002^>#1') fi, if &unifor('Av1002#1'):'^7'then '^7',&unifor('Av1002^7#1') fi,if &unifor('Av1002#1'):'^:'then '^8',&unifor('Av1002^8#1') fi fi,
XXXXXXXXXXXXXXXXXXX
ADD
801
XXXXXXXXXXXXXXXXXXX
'^A',&unifor('Korg.mnu|1'),'^B',&unifor('Korg.mnu|2'),'^10','^C',&unifor('3')
XXXXXXXXXXXXXXXXXXX
ADD
920
XXXXXXXXXXXXXXXXXXX
'ATHRC'
XXXXXXXXXXXXXXXXXXX
END
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
DEL
1002
1
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
UNTIL
if p(v1002) then '1' else '' fi
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
FI
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX

Формат rubr.pft в каталоге БД присутствует.

Почему так происходит? Заранее спасибо.

Re: Автоввод в ATHRS
Пользователь: Яковлева Татьяна (IP-адрес скрыт)
Дата: 09, September, 2008 13:37

К версии 2007.2 сделаны изменения в ATHRA и ATHRS,а пока я Вам высылаю 3 файла из этих изменений в ATHRS: athrs.fst,autoin.gbl,dbnflc.pft

Вложения: autoin.gbl (20KB)   athrs.fst (7.6KB)   DBNFLC.PFT (4.8KB)  
Re: Автоввод в ATHRS
Пользователь: artgonch (IP-адрес скрыт)
Дата: 09, September, 2008 14:15

Спасибо, теперь все в порядке.



Редактировано 1 раз. Последний раз 09.09.2008 14:21 пользователем artgonch.

Re: Автоввод в ATHRS
Пользователь: Кобрина (IP-адрес скрыт)
Дата: 20, February, 2009 15:03

Татьяна Васильевна, добрый день.
1. У нас та же ошибка: при вводе в 410 поле, автоматически строятся самостоятельные рубрики ( на др. формы наименования предмета). Во вложнении выгружу 3 записи: одна из них ( с индексом ББК) создана предметизатором, а 2 другие - созданы автоматически ( при этом в поле 801- источник записи ГПНТБ).
Смотрела предыдушие посты, исправления и добввления ( до 7.2D9) внесены. Прикрепляю файл AUTOIN.GLB
2. При использовании ATHRS (у нас пр. рубрики имееют индекс ББК) при заполнении поля 606 в РЛ ASP в аналитичесих записях статей из журналов строится индекс систематического каталога в режимах просмотра и печати карточек (КК), как для статей из сборников.
Как это исправить?

Вложения: ATHRS_primer_sptl.ISO (961 bytes)   autoin.gbl (20KB)  
Re: Автоввод в ATHRS
Пользователь: Яковлева Татьяна (IP-адрес скрыт)
Дата: 20, February, 2009 15:29

Возьмите файл autoin.gbl

Вложения: autoin.gbl (20KB)  
Re: Автоввод в ATHRS
Пользователь: Кобрина (IP-адрес скрыт)
Дата: 20, February, 2009 17:02

Татьяна Васильевна! Спасибо, заменила файл. Дублирование рубрик, кажется, не происходит. А с ASP для журналов: в области просмотра теперь все нормально, но на печать запись выходит неправильно, и 903 поле формирует неверно (начиная с шифра ББК) - посмотрите вложение.
Заранее признательна.

Вложения: ATHRS_ASP.doc (226KB)  
Re: Автоввод в ATHRS
Пользователь: Яковлева Татьяна (IP-адрес скрыт)
Дата: 25, February, 2009 11:47

Вышлите мне формат !kkkbo.pft

Re: Автоввод в ATHRS
Пользователь: Кобрина (IP-адрес скрыт)
Дата: 25, February, 2009 12:45

Татьяна Васильевна! Прикрепляю нужный файл. Очень признательна за помощь.

Вложения: !kkkbo.pft (8.2KB)  
Re: Автоввод в ATHRS
Пользователь: Яковлева Татьяна (IP-адрес скрыт)
Дата: 25, February, 2009 15:17

У меня этот формат показывает все правильно. Пришлите мне,пожалуйста,3 записИ: сам журнал,номер журнала,в котором эта статья и саму статью

Re: Автоввод в ATHRS
Пользователь: Кобрина (IP-адрес скрыт)
Дата: 25, February, 2009 17:11

У нас так получается при заполнении поля 606 из АФ Предм. рубрик, содержащий индексы ББК, в других случаях все получается правильно. Прикрепляю все, что Вы просили.

Вложения: primer_oj.ISO (4KB)   primer_nj.ISO (3.7KB)   primer_asp.ISO (1.3KB)  
Re: Автоввод в ATHRS
Пользователь: Кобрина (IP-адрес скрыт)
Дата: 25, February, 2009 17:16

К выше написанному.Шлю уще одно вложение - образ КК, который получается

Вложения: Primer_ASP_KK.doc (450.5KB)  
Re: Автоввод в ATHRS
Пользователь: Яковлева Татьяна (IP-адрес скрыт)
Дата: 26, February, 2009 10:52

Высылаю Вам исправленный !kkkbo.pft

Вложения: !kkkbo.pft (7.4KB)  
Re: Автоввод в ATHRS
Пользователь: Кобрина (IP-адрес скрыт)
Дата: 26, February, 2009 13:31

Спасибо большое!



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