Lotus Web Service 2 Excel


Постановка задачи:

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

Если таких данных не очень много, тогда можно использовать web service и Excel.

Этап 1: Domino

Размещаем базу SOAP.NSF у себя на сервере Domino.

Надо убедиться, что задача HTTP запущена на сервере Domino.

Надо убедится, что пользователи могут обращаться к серверу Domino по протоколу HTTP.

Необходимо настроить ACL так, чтобы пользователи вводили свое имя и пароль для доступа к базе — это повысит безопасность.

Этап 2: Клиент

Установите на каждый компьютер Microsoft .NET Framework 4

MS Office 2010 и выше.

Установите программу из файла Install.zip

Этап 3: report.xlsx

Вводим параметры:

Web URL: http://192.168.1.10/SOAP.nsf/BKGNEW?WSDL

Имя пользователя и пароль

Базу данных из которой будут выгружаться данные

Наименование полей или формулы Lotus Notes

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

Этап 4: проверка

Загрузите в первую колонку Notes Document UNID из которых будем извлекать информацию, рекомендую не более 100 UNID, так как скорость обновления слишком маленькая, особенно если вы выгружаете очень много полей. Здесь есть возможность оптимизации, но это на будущее.

Нажмите кнопку «Загрузить»

Прогресс бар будет показывать процент выполнения загрузки.

По окончанию появится окно с указанием, что загрузка завершена и время завершения, это требуется для расчета времени выполнения запроса.

Перечень прилагаемых файлов:

SOAP.NSF — необходимо разместить на сервере Domino
Install.zip — установить на компьютер с MS Office 2010 и выше (с установленной .NetFramework 4.0 и выше)
bkgexcel.zip — проект с исходным кодом для Visual Studio 2013 Pro

Скачать | Download

Lotus Domino Web Service


Бизнес требование:

Предоставить возможность пользователю получать и обновлять информацию в базе Lotus Notes, но без установки клиента Lotus Notes и не через сайт, так как пользователю не должен вводить совой логин и пароль, эту задачу решает сам терминал (например смартфон).

Так же, требуется обеспечить безопасность решения.

Решение:

Самый простой способ, это организация Web-сервиса на Domino штатными средствами.

Для того, чтобы обеспечить безопасность в базе SOAP будет ограничена авторизация (ограничим доступ через ACL). Второй шаг, это доступность сервиса через SSL. Конечно безопасность получится не супер крутой, но достаточной, трафик шифруется, без знания пароля не подключиться.

Далее создаем в LN Web Service с два метода: GetInfo() и SetInfo(). Этими методами мы будем считывать информацию из базы LN, например артикул товара, а SetInfo будет создавать в базе документ с указанием номера терминала, артикула.

Далее разрабатываем клиента для терминала, для этого можно воспользоваться бесплатной платформой MS Visual Studio Express, если он (терминал) работает под управлением Windows.

Нам потребуется установить на все терминалы .Net Framework 4.0 и выше (только для Windows).


'авторизация Web сервиса

Dim creds As System.Net.NetworkCredential = New System.Net.NetworkCredential()
creds.UserName = "User_Name"
creds.Password = "Password"
s.Credentials = creds

'получить артикул
articul = TextBox1.Text

'получить информацию о товаре
goodinfo = s.GetInfo(articul)

'записать в LN информацию с терминала о подтверждении покупки
s.SetInfo(TermNum, articul)

Минус такого подхода в медленной работе сервиса, но он позволяет унифицировать и стандартизировать обработку информации под LN и позволяет значительно расширить область применения решений на Domino.

Update Lotus Notes from Excel


На этапе проектирования или миграции требуется обновить поля в базе Lotus Notes. Обычно пишется агент, но можно этот процесс автоматизировать, и даже передать в зону ответственности продвинутого менеджера.

Алгоритм прост. Вы создаете Excel файл со следующей структурой:

  1. уникальный ключ, обычно это UNID документа
  2. название поля
  3. тип поля (TEXT, DATETIME, NUMBER, EXEC)
  4. значение

Далее запускаете макрос и указываете на созданный файл.

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

Скачать | Download

Import Excel2Notes


Иногда требуется быстренько подгрузить Excel файл в Lotus Notes, вот для таких случаев можно использовать скрипт.

Имеются особенности:

Константы указывают ограничения по строкам и столбца

Const actRows=20000
Const actColumns=9

Переменная startRow = 2 указывает с какой строки начинаются данные

If y=2 And currentvalue=»» Then GoTo import_stop

Тут мы смотрим на вторую колонку и если там станет пусто, значит массив с данными закончился.

ImportExcel