Примеры заданий на пакетную корректировку

Navigation:  ПРИЛОЖЕНИЯ > 7. Язык Пакетной Корректировки >

Примеры заданий на пакетную корректировку

Previous pageReturn to chapter overviewNext page

Пример 1:

Списание экземпляров из ФО-26 в ФМЗ

Для каждой записи заданного фрагмента выполнить следующие действия:

В повторениях поля экземпляров (метка поля 910) удалить те повторения, у которых в подполе статуса экземпляра (подполе ^A) содержится значение “6”, т.е. экземпляр списан.

Удаляемые из поля 910 повторения сохранить в поле архивных данных о выбытии (метка поля 940).

Перенести в поле общего примечания (метка поля 300), предварительно его очистив, некоторые данные о первом авторе (метка поля 700): фамилию (подполе ^A), через пробел инициалы (подполе ^B), через знак тире неотъемлемую часть имени (подполе ^1) и в скобках даты жизни (подполе ^F).

Заменить в повторениях поля экземпляров (метка поля 910), у которых значение места хранения “ФО-26” (подполе ^D),  дату поступления (подполе ^C) на новую дату “20021206”.

Заменить во всех повторениях поля экземпляров (метка поля 910) значение места хранения “ФМЗ” (подполе ^D) на новое значение “ФМЗ-1”.

 

Задание на пакетную обработку:

0

ADD

940

 

(if p(v910) then if v910^A='6' then v910 fi fi/)

 

REP

910

F

(if p(v910) then if v910^A='6' then # else v910 fi fi/)

 

DEL

300

*

 

 

ADD

300

 

v700^A," "v700^B," - "v700^1,"("v700^F")"

 

CHA

910

F

(v910^C/)

(if p(v910) then if v910^D: 'ФО-26' then '20021206' else v910^C fi fi/)

CHA

910^D

*

'ФМЗ'

'ФМЗ-1'

 

Пример 2:

 

Для каждой записи заданного фрагмента выполнить следующие действия:

Если в одном из повторений поля ГРНТИ (метка поля 964) содержится значение “14”, то выполнить несколько операторов:

добавить поле 621 со значением “141”;

добавить поле 606 со значением “Физика”;

удалить поле 690.

Если в одном из повторений поля УДК (метка поля 675) содержится индекс “37(470.311)”, то создать новую запись в базе данных CMPL, в которой надо сформировать поля:

метка 675 – значение этого индекса;

метка 920 – значение ‘PAZK’;

метка 200 – значение из исходной записи;

метка 700 – значение из исходной записи;

метка 910 – все повторения из исходной записи.

 

Задание на пакетную обработку:

0

IF

if (v964|!|): '14!' then '1' else '0' fi

ADD

621

 

'141'

 

ADD

606

 

'Физика'

 

DEL

690

*

 

FI

NEWMFN

if (v675|!|): '37(470.311)!' then 'CMPL' else '' fi

ADD

675

 

'37(470.311)'

 

ADD

920

 

'PAZK'

 

ADD

200

 

v200

 

ADD

700

 

v700

 

ADD

910

 

(v910/)

 

END

 

Пример 3:

 

Для каждой записи заданного фрагмента выполнить следующие действия:

Если в поле кода рабочего листа (метка поля 920) содержится значение “SPEC”, то для всех значений индекса УДК (метка поля 675) отобрать в той же БД записи с этими индексами УДК (значения индексов без учечения).

В отобранные записи добавить все повторения поля экземпляров (метка поля 910) из основной записи.

В основной же записи повторения поля экземпляров удалить.

 

Задание на пакетную обработку:

0

CORREC

if v920='SPEC' then '*' else '' fi

(v910/)

(|U=|v675/)

ADD

910

 

(v1001/)

 

DEL

1001

*

 

 

END

DEL

910

*

 

Пример 4:

 

Для каждой записи заданного фрагмента выполнить следующие действия:

Во всех экземплярах (метка поля 910) заменить значение места хранения (подполе ^D) “XP” на значение “ОФ” и значение “ФМЗ” на значение “БИНТ”. Это можно выполнить с помощью задания, в котором жестко указываются эти значения, а именно

0

CHA

910^D

*

‘ХР’

‘ОФ’

CHA

910^D

*

‘ФМЗ’

‘БИНТ’

Можно составить задание для общего случая замены старых значений мест хранения на новые, используя возможность работы с параметрами. Например, для замены значений двух разных мест хранения на новые значения нужно определить 4 параметра, причем вводить их можно, используя справочник с именем mhr.mnu.

 

Задание на пакетную обработку:

4

mhr.mnu

Старое значение (1)

mhr.mnu

Новое значение (1)

mhr.mnu

Старое значение (2)

mhr.mnu

Новое значение (2)

REP

910^d

F

(if p(v910) then if v910^d='%1' then '%2'else if v910^d='%3' then '%4' else v910^d fi fi fi/)

 

Пример 5:

 

Для каждой записи заданного фрагмента выполнить следующие действия:

Создать в БД ‘CMPL’ новую запись, которая является копией исходной, изменив в ней:

Код рабочего листа (метка поля 920) заменить на ‘ZK’.

Год издания (метка поля 210, подполе ^D) заменить на 2002.

Объем (метка поля 215, подполе ^A) заменить на 500.

Удалить все повторения поля  “Каталогизатор, дата” (метка поля 907) и добавить новое значение, задав этап работы, дату и ФИО.

Исходную запись при этом удалить.

 

Задание на пакетную обработку:

0

NEWMFN

'CMPL'

ALL

REP

920

*

'ZK'

 

REP

210^D

*

'2002'

 

REP

215^A

*

'500'

 

DEL

907

*

 

 

ADD

907

 

'^CПК^A20020524^BДСМ'

 

END

 

DELR

 


См. также:

Создание файла задания

Структура файла задания

Операторы корректировки