Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
АРМ Каталогизатор :  ИРБИС Irbis
 
Глобальная коректировка
Пользователь: LIB (IP-адрес скрыт)
Дата: 24, July, 2017 13:11

Здравствуйте!
Помогите сделать глобальную корректировку.
В поле 902 "Держатель документа" в подполе "Наименование организации" нужно добавить кодировку 02.(см. скрин)

Данные Из поля 903 "Шифр документа в БД" скопировать в поле 951 "ССылка на внешний объект" в подполе "Имя файла" и добавить тип файла *.pdf (см. скрин)

Заранее спасибо.

Вложения: Ссылка на внешний объект.doc (130KB)   держатель документ.doc (67KB)  
Re: Глобальная коректировка
Пользователь: Linno K. (IP-адрес скрыт)
Дата: 24, July, 2017 14:02

В простейшем варианте — во вложении.

Просто добавляет одно повторение по указанному вами алгоритму в 902 и 951 поля.
Учитывайте, что оба этих поля, вообще говоря, повторяющиеся.

---
Линно
Константин Гуннарович,

ЦГПБ им. В. В, Маяковского,
Санкт-Петербург

Вложения: 1.gbl (133 bytes)  
Re: Глобальная коректировка
Пользователь: eulabina (IP-адрес скрыт)
Дата: 24, July, 2017 14:21

Уважаемые коллеги, помогите, пожалуйста, несведущему пользователю!

Подскажите, пожалуйста, как можно перенести содержание одного поля в другое (например, из 610 в 606^A), если имеются несколько повторений поля?
При использовании оператора ADD:

0
ADD
606^A
XXXXXXXXXXXXXXXXXXX
v610
XXXXXXXXXXXXXXXXXXX

- содержание из всех повторений поля выстраивается в одну строчку.

Подскажите, пожалуйста, есть ли способ с этим бороться?

Заранее большое спасибо!



Редактировано 1 раз. Последний раз 24.07.2017 14:27 пользователем eulabina.

Re: Глобальная коректировка
Пользователь: Linno K. (IP-адрес скрыт)
Дата: 24, July, 2017 14:32

Нужно учесть повторения:
вместо v610 вставить (V610/), что означает:
скобки — обрабатывать повторения (перебор повторений поля), а не поле целиком;
косая черта — "перенос строки", графически можно себе это представлять, как
переход на следующее повторение при работе в АРМ Каталогизатор.

Таким образом, если у вас есть два повторения поля 610:

американская
белая

То v610 дает американскаябелая,
а (v610/) дает

американская
белая


Вот, собственно, и все.

---
Линно
Константин Гуннарович,

ЦГПБ им. В. В, Маяковского,
Санкт-Петербург

Re: Глобальная коректировка
Пользователь: eulabina (IP-адрес скрыт)
Дата: 24, July, 2017 14:54

Большое спасибо за помощь!

Извиняюсь, но всплыл новый вопрос: при запуске коррекции:

0
ADD
606^A
XXXXXXXXXXXXXXXXXXX
(v610/)
XXXXXXXXXXXXXXXXXXX

- в 606^A попадает только первое повторение поля, при том, что при коррекции

0
ADD
606
XXXXXXXXXXXXXXXXXXX
(v610/)
XXXXXXXXXXXXXXXXXXX

- то есть, если не задавать подполе, все работает правильно. Подскажите, пожалуйста, с чем это может быть связано!

Re: Глобальная коректировка
Пользователь: Linno K. (IP-адрес скрыт)
Дата: 24, July, 2017 15:02

Это связано с взаимодействием двух повторяющихся полей.
Я упустил этот момент.
Если вы хотите добавить новые повторения с подполем A в 606 поле,
то правильно, конечно, написать так:
(if p(v610) then '^A', v610 fi/)

---
Линно
Константин Гуннарович,

ЦГПБ им. В. В, Маяковского,
Санкт-Петербург

Re: Глобальная коректировка
Пользователь: eulabina (IP-адрес скрыт)
Дата: 24, July, 2017 15:11

Огромное спасибо Вам за помощь!

Теперь все заработало!

Re: Глобальная коректировка
Пользователь: LIB (IP-адрес скрыт)
Дата: 25, July, 2017 12:41

спасибо все получилось!

Re: Глобальная коректировка
Пользователь: Linno K. (IP-адрес скрыт)
Дата: 25, July, 2017 12:50

smiling smiley

---
Линно
Константин Гуннарович,

ЦГПБ им. В. В, Маяковского,
Санкт-Петербург

Re: Глобальная коректировка
Пользователь: elkinaos (IP-адрес скрыт)
Дата: 02, August, 2017 06:55

Добрый день.
Подскажите пожалуйста, как правильно сделать глобальную корректировку.
Нам нужно в каждом повторении поля 330 перенести значение подполя ^7 в подполе ^Е , при условии что подполе ^Е пустое.

Re: Глобальная коректировка
Пользователь: ochagova (IP-адрес скрыт)
Дата: 02, August, 2017 09:22

Попробуйте так:

CHA
330
F
(if p(v330) then if v330^7<>'' and v330^E='' then '^7' else # fi fi /)
(if p(v330) then if v330^7<>'' and v330^E='' then '^E' else # fi fi /)

Re: Глобальная коректировка
Пользователь: elkinaos (IP-адрес скрыт)
Дата: 02, August, 2017 13:52

Спасибо!!!!



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