Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
Общие вопросы Ирбис64 :  ИРБИС Irbis
 
Дубли записей при автоматическом ипорте
Пользователь: newkos (IP-адрес скрыт)
Дата: 22, April, 2013 08:42

Добрый день

Помогите пожалуйста решить проблему с дублями записей при автоматизированном импорте через АРМ Администратор.
Версия Ирбис 64 - 2010.1

У нас в библиотеке есть несколько баз данных, которые каждую ночь сливаются в 1 главную базу. Слияние происходит автоматическе по заданному файлу, вот пример этого файла.

SVEDENIE_BOOK_ALL.ibf
------------------------
OpenDB COLL
UnLockDB
ActualIf
ExportDB 0,,0,1,C:\EXPORTS_ALL\COLL.ISO
OpenDB EKATB
UnLockDB
ActualIf
ExportDB 0,,0,1,C:\EXPORTS_ALL\EKATB.ISO
OpenDB RETRO
UnLockDB
ActualIf
ExportDB 0,,0,1,C:\EXPORTS_ALL\RETRO.ISO
OpenDB EKKTB
UnLockDB
ClearDB
ImportDB 0,,0,1,C:\EXPORTS_ALL\COLL.ISO,0
ImportDB 0,,0,1,C:\EXPORTS_ALL\EKATB.ISO,0
ImportDB 0,,0,1,C:\EXPORTS_ALL\RETRO.ISO,0
LoadIfComplete
Exit C:\EXPORTS_ALL\report.log

После слияния баз почему-то не удаляются дубли. Пример записи прикрепил, разница только в наличии поля штрихкода.

Как сделать так что бы при импорте удалялись дублированные записи ?

Заранее благодарен за помощь.



Редактировано 1 раз. Последний раз 22.04.2013 08:42 пользователем newkos.

Вложения: 111.TXT (1.3KB)  
Re: Дубли записей при автоматическом ипорте
Пользователь: Alio (IP-адрес скрыт)
Дата: 22, April, 2013 08:58

О каких дублях идет речь? Если о тех, которые находятся ВНУТРИ вливаемой порции, то они, разумеется, выявляться не будут.

Re: Дубли записей при автоматическом ипорте
Пользователь: newkos (IP-адрес скрыт)
Дата: 22, April, 2013 09:02

дубли записей беруться из разных баз, например первая запись из тех что прикреплена берётся из EKATB.ISO а вторая запись из RETRO.ISO, потом в базе EKKTB появляются 2 записи и они дублетные, разница только в введённом штрихкоде

п.с. если нет возможности при импорте удалять дубли записей, то помогите пожалуйста сделать глобальную коректировку после импорта для выявления дублей



Редактировано 1 раз. Последний раз 22.04.2013 09:02 пользователем newkos.

Re: Дубли записей при автоматическом ипорте
Пользователь: Gena (IP-адрес скрыт)
Дата: 22, April, 2013 09:43

Проблема в том, что импорт в АРМе Администратор идет без актуализации. а проверка на дублетность идет по словарю (тоесть, записи должны быть актуализированными). Я вот так ниразу и не попробовал использовать серверный модуль глобальной корректировки, который может запускаться автономно не из каталогизатора. Думаю, вам оптимально пробовать именно с его помощью решить эту задачу. Таким образом у вас должно быть задание следующего содержания:

1. пакетным заданием загружаем нужные БД в сводную БД
2. -/-/-/-/-/-/-/-/- создаем словарь заново полностью в сводной БД
3. запускаем сервреный модуль ГБЛ и запускаем корректировку, которая идет по все БД и поочередно отрабатывает на каждой записи проверку на дублетность (ее можно вытянуть из файла dbnflk.mnu). Если проверка не ругается, идем дальше, ругается - удаляем запись

Re: Дубли записей при автоматическом ипорте
Пользователь: newkos (IP-адрес скрыт)
Дата: 22, April, 2013 09:48

Спасибо за ответ.

Не мог сначала найти файл dbnflk.mnu, но есть такой файл dbnflk.pft.

Скажите пожалуйста, какой код конкретно нужно взять из того файла для составления глобальной корректировки для удаления дублей ?

я думаю что глоб. корректировку я буду запускать после импорта в базу слияния.

Re: Дубли записей при автоматическом ипорте
Пользователь: newkos (IP-адрес скрыт)
Дата: 22, April, 2013 10:09

Ещё дополнительный вопрос.
А если после всего импорта я сделаю экспорт это базы в которую сливались записи и сделаю ещё раз импорт, оно удалит дублетные записи? и какие параметры надо указать в пакетном задании, например вот такое задание что б оно проверяло на дублетность:

SVEDENIE_BOOK_ALL.ibf
------------------------
OpenDB EKKTB
UnLockDB
ActualIf
ExportDB 0,,0,1,C:\EXPORTS_ALL\EKKTB.ISO
OpenDB EKKTB
UnLockDB
ClearDB
ImportDB 0,,0,1,C:\EXPORTS_ALL\EKKTB.ISO,0
LoadIfComplete
Exit C:\EXPORTS_ALL\report.log


п.с. тогда вроде сразу возникает вопрос, как оно сможет понять какую запись удалить ? в 2 записях может быть разница только в количестве введённой информации.

Re: Дубли записей при автоматическом ипорте
Пользователь: Gena (IP-адрес скрыт)
Дата: 22, April, 2013 10:13

повторюсь. АРМ Администратор импортирует записи без актуализации, так что дубли не отловятся при экспорте/импорте все БД

Re: Дубли записей при автоматическом ипорте
Пользователь: newkos (IP-адрес скрыт)
Дата: 22, April, 2013 10:16

Gena написал(а):
-------------------------------------------------------
> повторюсь. АРМ Администратор импортирует записи
> без актуализации, так что дубли не отловятся при
> экспорте/импорте все БД


Понял, тогда вопрос остаётся открытым

Скажите пожалуйста, какой код конкретно нужно взять из того файла для составления глобальной корректировки для удаления дублей ?

Re: Дубли записей при автоматическом ипорте
Пользователь: newkos (IP-адрес скрыт)
Дата: 23, April, 2013 15:17

Помогите пожалуйста, нужно задание на глобальную корректировку на поиск и удаление дублей записей.

Re: Дубли записей при автоматическом ипорте
Пользователь: ochagova (IP-адрес скрыт)
Дата: 24, April, 2013 09:53

Прежде чем делать задание, надо определить критерии дублетности. Обычно это свертка записи. Из опыта работы могу предложить:
1. формат, который сделан на основе таблицы FST, по этому формату делается свертка записи - svertka.pft
2. для проверки будующего задания на удаление получите сначала таблицу, в которой указаны по номерам дублетные записи (Dubl_svertka). Проверьте. Если дубли определяются неверно, значит формат свертки не соответствует таблице, по которой свертка формируется в словаре.
3. потом уже запустите задание на удаление - Del_Dubl.gbl. Лучше использовать глобальную на сервере. Запускать надо на всю БД. Удаляться должны записи, которые не первые в списке номеров к одной и той же свертке.
4. Перед выполнением глобальной сделайте копию записи.

Вложения: Дубли.rar (1.8KB)  
Re: Дубли записей при автоматическом ипорте
Пользователь: newkos (IP-адрес скрыт)
Дата: 24, April, 2013 14:08

Спасибо за помощь, попробую, потом отпишу как получилось.

Re: Дубли записей при автоматическом ипорте
Пользователь: newkos (IP-адрес скрыт)
Дата: 18, September, 2013 10:09

Добрый день

Вынужден поднять тему, так как за прошедшее время небыло возможности испробовать Ваши рекомендации.

Можно ли для "особо-одарённых" объяснить как использовать Ваше решение по шагам ? Тоесть, что брать и где запускать.

Заранее благодарен за помощь

Re: Дубли записей при автоматическом ипорте
Пользователь: newkos (IP-адрес скрыт)
Дата: 19, May, 2014 15:40

Добрый день, ещё раз обращаюсь к разработчикам, то что привела в ответе госпожа ochagova не работает. Таблица не создаётся, а записи не удаляются.


Повторю вопрос.Есть база данных, в ней есть записи, есть много дублетных записей. Вопрос, как найти и удалить записи в которых одинаковые инвентарные номера и в которых отсутствует поле 910^H (поле штрихкода).

Пример записей я приложил к сообщению
Пример 1 - запись без штрихкода
Пример 2 - запись с штрихкодом

Заранее спасибо за помощь



Редактировано 1 раз. Последний раз 19.05.2014 15:40 пользователем newkos.

Вложения: primer1.TXT (521 bytes)   primer2.TXT (536 bytes)  
Re: Дубли записей при автоматическом ипорте
Пользователь: Сорокина Лариса (IP-адрес скрыт)
Дата: 21, May, 2014 11:22

newkos написал(а):
-------------------------------------------------------
> Добрый день, ещё раз обращаюсь к разработчикам, то
> что привела в ответе госпожа ochagova не работает.
> Таблица не создаётся, а записи не удаляются.
>
>
> Повторю вопрос.Есть база данных, в ней есть
> записи, есть много дублетных записей. Вопрос, как
> найти и удалить записи в которых одинаковые
> инвентарные номера и в которых отсутствует поле
> 910^H (поле штрихкода).
>
> Пример записей я приложил к сообщению
> Пример 1 - запись без штрихкода
> Пример 2 - запись с штрихкодом
>
> Заранее спасибо за помощь

А если запись содержит больше одного экземпляра и только один из них с дублетным инвентарем? Или две записи дублетные по инвентарям, но не дублетные по БО? Что в таких случаях удалять?

Re: Дубли записей при автоматическом ипорте
Пользователь: newkos (IP-адрес скрыт)
Дата: 21, May, 2014 11:39

Даже если такое и есть, для нас это не страшно, это не рабочая база, а база для веб-ирбиса на сайт.

Цитата:
Что в таких случаях удалять?

Удалять всё равно там где нет штрихкода

Re: Дубли записей при автоматическом ипорте
Пользователь: Сорокина Лариса (IP-адрес скрыт)
Дата: 27, May, 2014 14:32

newkos написал(а):
-------------------------------------------------------
> Даже если такое и есть, для нас это не страшно,
> это не рабочая база, а база для веб-ирбиса на
> сайт.
>
>
>
> Удалять всё равно там где нет штрихкода


Если вам все равно, тогда отберите записи, инвентари которых имеют дубли, свободным поиском:
| val(&uf(|J,IN=|v910^b))>1
И напустите на них глобальну корректировку:
0
IF
if rsum((if p(v910)then if val(&uf(|J,IN=|v910^b))>1 and v910^h=''then '1;'else '0;'fi fi))>0 then'1' fi

DELR




FI



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