Как запустить приложение из Lotus Notes, а затем сохранить в базе данных Lotus? - PullRequest
2 голосов
/ 05 января 2011

Я работаю в команде, которая разработала приложение Java Swing, и сейчас я пытаюсь помочь другой команде интегрировать это приложение в Lotus Notes. К сожалению, я не так много знаю о Notes и, похоже, не могу найти никакой документации, связанной с тем, что мы пытаемся сделать.

Мы хотим, чтобы пользователь запустил наше приложение с некоторыми данными, переданными из Notes, чтобы пользователь работал с переданными данными, а затем, когда он будет готов к сохранению, измененные данные будут сохранены обратно в Notes. базы данных.

Первая часть, которую мы достигли с помощью агента Notes - он может запустить наше приложение и передать исходные данные - проблема заключается в сохранении. Агент, кажется, завершается и «умирает» после вызова, чтобы запустить наше приложение, поэтому нет способа получить ссылку на сессию / базу данных позже, когда пользователь будет готов сохранить. Один из разработчиков Lotus заставил его работать, сделав в агенте цикл ожидания, чтобы поддерживать его после запуска приложения, но это побочный эффект - предотвращение любого другого использования Lotus Notes, пока приложение открыто, поэтому это не совсем приемлемое решение.

Кто-нибудь знает, возможно ли то, что мы пытаемся сделать? Как это сделать? Ссылки на какие-либо примеры / документацию по этому вопросу?

Ответы [ 3 ]

3 голосов
/ 05 января 2011

У вас есть несколько вариантов возврата данных в Lotus Notes. Я думаю, что лучше всего использовать Java API для вызова Lotus Notes и добавления данных обратно. В Java API есть интерфейс с открытым исходным кодом, который может облегчить жизнь, который называется domingo . В противном случае см. Справку разработчика domino о том, как использовать Java API.

Вот список всех способов вернуть данные в Notes, которые я могу придумать за пять минут:

  • использовать COM или Java API для вызова объектов и методов Notes ( см. Справку Domino Designer) .
  • использовать NotesSQL для ВСТАВКИ данных обратно в Notes с помощью команд SQL.
  • Настройка базы данных Notes в качестве почтовой базы данных и передача данных по электронной почте
  • Настройка запланированного агента для чтения из указанного каталога (запускать его каждую минуту или две) и импорта данных из файла.
  • Если вы используете Domino, вы можете передавать данные через строку запроса URL-адреса и обрабатывать их в агенте.
3 голосов
/ 05 января 2011

Один из вариантов заключается в том, чтобы агент Notes запускал приложение Java и позволял приложению Java работать асинхронно; затем он может записывать данные непосредственно в базу данных Notes (используя Java-интерфейс Notes). Вы можете настроить клиент для совместного использования учетных данных с клиентом Notes, чтобы аутентификация не была проблемой (или вы можете сделать так, чтобы приложение Java проходило аутентификацию в Notes). Java API довольно прост - он в основном имитирует внутренние классы, доступные в LotusScript. Если вам нужно записать результаты обратно в конкретный документ, вы можете передать DocumentUniqueID (docid) в приложение Java из агента Notes, а затем использовать его в приложении Java для обратной записи. (См. Метод GetdocumentByUnid в классе Database).

Эта статья немного устарела, но я думаю, что она по-прежнему актуальна: http://www.ibm.com/developerworks/lotus/library/ls-Java_access_pt1/index.html

1 голос
/ 05 января 2011

Существует полноценный Java API для баз данных Lotus Notes.Единственное предостережение: API представляет собой тонкую оболочку вокруг ядра C и требует, чтобы you выполнила сборку мусора для объектов Notes.Таким образом, после использования, например, NotesDocument, вам нужно вызвать его метод .recycle (), иначе вы потеряете память.

...