• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Специфический Импорт Из Ёкселя

  • Автор темы beloff
  • Дата начала
B

beloff

Всем добрый. Есть такая задача: импортировать регулярно кучу инфы из ёкселя в лотус (дисконтные карты покупателей, список которых постоянно пополняется). Выгружается из другой системы в ексель файл. Реализовать это в лотус знаю как. Как с наименьшими проблемами реализовать постоянное обновление этой базы при выгрузке в Лотус (тоже знаю как но наименьшими проблемами это назвать не могу), т.е. актуализировать БД в ЛОтусе чтобы пополнялась БД только новыми записями, которых в Лотусе нету
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
159
А выгружать в Excel только новые нельзя?
Номер карты уникален, как ключ поиска по документам подойдет. Искать можно через DigestSearch.

Думаю для данной задачи подойдет очень хорошо.
 
B

beloff

savl очень вам большое спсибо, сейчас буду изучать
+ в репу
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
159
Спасибо, но опять же... Можно использовать, а можно и вьюхой обойтись.
Но есть идея некого гибрида:
Если база только-только будет заполняться, и никаких записей еще нет.
При создании документов, при первой выгрузке, генерить им UniversalID, как используется в "DS".
Таким образом можно избавиться от базы индекса, по сути сделать хранилище доков и индекс одной базой.
Возможно импорт будет увеличен по времени, но уникальность данных сохраниться.
И вопрос, не понадобиться ли обновлять уже загруженные записи в дальнейшем?
 
B

beloff

в первый раз конечно просто конвертну, это потом уже при подгружении новых поставлю на проверку. Обновлять скорей всего не потребуется, т.к. более 300 000 записей будет, универсал ИД зачем? у них будет уникальный номер карты, по-мойму просто дублирование (хотя может чего то не догоняю). Про вьюху только потом сообразил getdocumentbykey (тоже кста, отличный способ шустрого поиска). Индекс все равно надо будет создавать т.к. у нас очень любят поиском пользоваться пользователи (кста, отличная скороговорка: пользователи поиском пользовались-пользовались да не выпользовались)
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 933
609
BIT
177
делал базу для "универсального" импорта/экспорта...
одна из версий здесь есть
https://codeby.net/threads/41201.html?vi...st&p=210192
есть желание - разбирайтесь



Добавлено: коротко - зачем создавалась https://codeby.net/threads/41202.html?vi...st&p=210194
есть уже версия свежее...:
1.0.7b:
-введены доп. константы для конфигурации (маппинга полей):
Const NOTUNIQ_SIGN={NU} 'не обрабатывать массивы на уникальность использовать вместе с опцией APPEND_SIGN
Const DEL_SIGN={D} 'удаляет значение из поля если встретит соответствие в поле (актуально для мультивэлью)
-реализована обработка удаления (в мультивэлью полях)
-обработка коллекции документов (если поиск по ключу выдает > 1 значения)
-обрабатывает все листы XLS файла (раньше был только первый, в будущих конфигурациях необходимо предусмотреть выбор листов)
-добавлено логирование в файл (при соответ. опции, либа ErrorHandling)
 

Cleric-Lviv

Well-known member
03.01.2008
603
0
BIT
0
beloff

откуда данные попадают в ексель? может стоит обеденить две системы и откинуть промежуточный етап с екселем?
 
A

Anatoly

Я бы все таки подумал об прямом взаимодействии Лотуса с платформой данных. Что там: MS SQL, ORACLE...
Уйдет "брехучий телефончик" в виде EXCEL, перестаем зависить от пользователей, выборками можешь рулить сам, импорт можно сделать фоновым.
Если работаешь с нарастающим ключом, всегда можно получить значение ключа последней импортированой записи и по SELECT получать уже не все,
а вновь добавленные. Аналогично по ключу можно организовать и синхронизацию уже имеющихся записей.
 

Cleric-Lviv

Well-known member
03.01.2008
603
0
BIT
0
beloff

ну так вот вам задача которая поможет расширить ваши знания в области odbc. Кристал репортс ето имхо mssql . если попробуете поискать по форуму то найдете кучу информации
Вот пример: https://codeby.net/threads/22647.html?hl=ODBCClass
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
159
Насколько я помню, кристал это система построения отчетов, она сама данные вроде не хранит.
Собирает их из реляционки, значит источник MS SQL скоре всего. Написать свой коннектор к ней не сильно долго, да и лучше, как заметил Anatoly. Лучше потратить чуть больше времени, за то будет прямое соединение.
Да и если покопаться можно найти примеры.
Посмотри Designer Help "Lotus Connector for ODBC", можно воспользоваться LEI Administrator, в Help так же расписано.
 
G

GveinBlade

Данные в какой реляционке хранятся или в файлах?
 
A

Anatoly

Ну, если речь о продукте от «Кристалл Сервис» - то вот с их сайта:
"Одним из преимуществ SET Retail является многоплатформенность. Система обеспечит Вам свободу выбора всех компонентов IT-инфраструктуры. SET Retail поддерживает платформы Windows, Unix и Linux, а также популярные СУБД: MS SQL, MySQL, Oracle, Derby и т. д. "
Так что гадать можно долго :(
 
B

beloff

чего то ругается на fastsearchbykey пишу

strng = xlCells(i,2).Value
Set dsrch = FastSearchByKey(db, strng)

пишет illegal parenthesized reference
 
B

beloff

Dim strng As String

строка и есть строка. фуллтрим же из массивов убрает пустые элементы (из строк пробелы но там пробелов нету). может эту функцию надо как то подключить? я то вписал use digestsearchlib но он ругается на стадии компиляции

ЗЫ %INCLUDE не делал ничего
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!