Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
АРМ Каталогизатор :  ИРБИС Irbis
 
Как быстро убрать лишние фото
Пользователь: p_pinus (IP-адрес скрыт)
Дата: 12, August, 2021 16:48

Существует ли быстрый способ удаления файлов из папки photo в базе RDR?
Студентов, окончивших ВУЗ или отчисленных удаляют библиотекари на учебном абонементе. Доступа на сервер у них нет.
Администратор чистит папку photo путем сравнения идентификатора оставшихся пользователей с файлами в папке.
Этот процесс занимает много времени и требует внимания.
Нельзя автоматизировать процесс: когда удаляешь читателя, удаляется и его фото.

Вложения: фото.JPG (238.4KB)  
Re: Как быстро убрать лишние фото
Пользователь: А. Роман (IP-адрес скрыт)
Дата: 13, August, 2021 09:22

ИРБИС отличается тем, что в нем всё можно. Учите мат. часть ;)

Удалить заданный файл – &uf('+9K…
Вид функции: +9K.

Назначение: Удалить заданный файл. Если имя файла задано в виде маски, то удаляться будут все соответствующие маске файлы.

Присутствует в версиях ИРБИС с 2010.1.

Формат (передаваемая строка):

+9K<полный путь и имя файла>

То есть для пакетной очистки ненужных файлов вам надо определить какой параметр и какое условие в записи будет отвечать за решение удалять файл или нет.
Далее создаете задание на глобальную корректировку записей в БД RDR по которому, скажем, добавляете в записи 907 поле с этапом работ например F_DEL

что-то вроде:

0
ADD
907
XXXXXXXXXXXXXXXXXXX
,if ... then &uf('+9K'E:\PHOTO\'v950) fi, '^A',&uf('3'),'^BИванов','^CF_DEL'
XXXXXXXXXXXXXXXXXXX

вместо ... указываете условие выполнения формата удаления файла, а вместо E:\PHOTO\ указываете путь к файлам на сервере.

Задание нужно выполнять на сервере в АРМ Администратор серверный.

Удалить неактуальные файлы можно составив сценарии перемещения актуальных файлов во временную директорию.
Создать файл формата с текстом 'move E:\PHOTO\',V50,' E:\PHOTO\ACTUAL\'
Включить формат в список форматов и далее печать списков, данный формат, чекбокс "плоский текст"). Сохраняете файл (результат печати) с расширением cmd и выполняете его на сервере. Актуальные файлы будут перемещены в директорию E:\PHOTO\ACTUAL\, а в исходной директории останутся неактуальные файлы (которых нет в поле 50 записей БД RDR).

Далее вы перемещаете разом все неактуальные файлы куда-либо или удаляете их и после возвращаете разом все файлы из директории E:\PHOTO\ACTUAL\ в исходную директорию E:\PHOTO\

Как-то так. Возможны и другие варианты.



Редактировано 1 раз. Последний раз 13.08.2021 09:23 пользователем А. Роман.

Re: Как быстро убрать лишние фото
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 13, August, 2021 11:31

Цитата:
Администратор чистит папку photo путем сравнения идентификатора оставшихся пользователей с файлами в папке.
Этот процесс занимает много времени и требует внимания.
Этот процесс можно автоматизировать. Написать скрипт и запускать его через планировщик задач. Скрипт может быть на php и использовать клиентскую библиотеку PhpIrbis.
Логика проста: если имя файла найдено в словаре - не удалять, не найден - удалить.
Цитата:
Нельзя автоматизировать процесс: когда удаляешь читателя, удаляется и его фото.
Нельзя.



Редактировано 2 раз. Последний раз 13.08.2021 13:00 пользователем woodyfon.

Re: Как быстро убрать лишние фото
Пользователь: А. Роман (IP-адрес скрыт)
Дата: 13, August, 2021 12:23

p_pinus написал(а):
-------------------------------------------------------

> Нельзя автоматизировать процесс: когда удаляешь
> читателя, удаляется и его фото.

Можно!
winking smiley

1. Удалять запись не по кнопке Удалить в интерфейсе АРМ Каталогизатор, а по кнопке "Удалить" Произвольного пользовательского оперативного режима, в котый добавить выполненеие задание на ГК записи указанного выше - выполнение формата удаления фото и выполнение дополнительной команды DELR.

2. Пакетным заданием АРМ Администратор, которое будет выполняться в планировщике каждый день в 22 часа. В пакетное задание можно включить отбор записей удаленных логически в текущем дне и печать выходной формы (или отправку письма по электронной почте администратору) плоского формата, в который будет добавляться имя удаленного файла и сам формат удаления файла.

Т.е. можно обойтись и без внешних скриптов. Вариантов мас-са!



Редактировано 1 раз. Последний раз 13.08.2021 12:38 пользователем А. Роман.

Вложения: del-rec.png (42.6KB)  
Re: Как быстро убрать лишние фото
Пользователь: ochagova (IP-адрес скрыт)
Дата: 13, August, 2021 12:28

Если удалять записи по кнопке "Удалить", то тоже можно сделать. При удалении записи на ней выполняется autoin, например, добавляется поле 907. и к этому можно добавить удаление файла, на что есть unifor

Re: Как быстро убрать лишние фото
Пользователь: А. Роман (IP-адрес скрыт)
Дата: 13, August, 2021 12:48

Да, все верно! Только хорошо бы скорректировать файл автоввода БД RDR чтобы добавлялся в 907 поле признак DEL, как и в файле автоввода БД ЭК, чтобы записи можно было отбирать.
Также ранее была просьба/предложение для всех БД САБ ИРБИС ввести БД логов удаления записей, куда писать информацию обо всех действиях по удалению записей в АРМ Каталогизатор (при выполнении автоввода). DEL_ARH
Тогда можно было бы проводить мониторинг действий по удалению записей пользователями и автоматизировать отправку протоколов мониторинга администратору по электронной почте.

Re: Как быстро убрать лишние фото
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 13, August, 2021 13:07

Цитата:
При удалении записи на ней выполняется autoin, например, добавляется поле 907. и к этому можно добавить удаление файла, на что есть unifor
Сначала выполняется autoin, а уж затем запись помечается как логически удаленная?

Re: Как быстро убрать лишние фото
Пользователь: p_pinus (IP-адрес скрыт)
Дата: 13, August, 2021 14:31

Глобальная корректировка это в каталогизаторе, и там надо конкретно прописывать.
907 поле заполняется автоматически.
В программные файлы я изменения не вношу, только в файлы с расширением mnu.
А нельзя сделать пакетное задание в книгообспеченности для базы RDR, по которому можно почистить папку photo?

Re: Как быстро убрать лишние фото
Пользователь: А. Роман (IP-адрес скрыт)
Дата: 13, August, 2021 17:07

p_pinus написал(а):
-------------------------------------------------------
> А нельзя сделать пакетное задание в
> книгообспеченности для базы RDR, по которому можно
> почистить папку photo?


Не стоит. У АРМ Книгообеспеченность совершенно другие задачи. Это вопрос администрирования ИРБИС.
Изучите документацию, посмотрите записи вебинаров по администрированию и сделайте. Или поручите администратору ИРБИС, своему или на стороне (на взаимовыгодных условиях).

Re: Как быстро убрать лишние фото
Пользователь: ochagova (IP-адрес скрыт)
Дата: 16, August, 2021 12:01

woodyfon написал(а):
-------------------------------------------------------
> При удалении записи на ней выполняется autoin,
> например, добавляется поле 907. и к этому можно
> добавить удаление файла, на что есть unifor
> Сначала выполняется autoin, а уж затем запись
> помечается как логически удаленная?

Ставится признак, что запись удалена, потом выполняется автоввод. Поэтому можно использовать &uf('+6'). А за ним уже можно использовать &uf('+9K....

Re: Как быстро убрать лишние фото
Пользователь: p_pinus (IP-адрес скрыт)
Дата: 23, August, 2021 14:00

Как и в каком файле это можно прописать?
Я не программист, могу только конкретно вставить запись в файл.

Re: Как быстро убрать лишние фото
Пользователь: ochagova (IP-адрес скрыт)
Дата: 24, August, 2021 10:51

Если вы только программист, то решайте проблему кодами. Иначе надо владеть такими инструментами, как - язык форматирования и язык пакетной корректировки. Тогда два варианта:
1. Использовать задание автоввода. Пример оператора автоввода БД IBIS, в котором выполняются некие действия при условии, что запись удалена:
ADD
907
XXXXXXXXXXXXXXXXXXX
if &uf('+6')='0' then '^CDEL','^A',&unifor('3'),'^B',&uf('IPRIVATE,FIO,') else ......... fi
XXXXXXXXXXXXXXXXXXX

2. Отметить все удаленные записи, этот режим есть в опции "Корректировка". Вывести список полей 950 (Фото читателя) из этих записей. По списку уже ручками удалить.
Чтобы вывести поле 950, надо сделать в блокноте файлик из одной строки - v950. Назвать этот файлик, например, AAA, добавить его имя в справочник pftw.mnu.
Вывод - Сервис-Печать-Списки- выбор ААА - Выполнить

Re: Как быстро убрать лишние фото
Пользователь: p_pinus (IP-адрес скрыт)
Дата: 24, August, 2021 15:37

Перед генерацией БД RDR, поскольку файл фото совпадает с идентификатором, то можно выводить любой краткий список и по нему удалять фото вручную.



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