Тема: Потрясая основы... :))

Создан:Cherepanov; lawdb 12/26/2003 10:31 AM
Папка:
06. Разработка Notes-приложений
Тип сообщения:
Сообщение

Сообщение:

Практически все известен неприложный факт, что из back-end агентов нельзя работать с UI...
но...
Не все так печально! На самом деле можно и из back-end агента, например, работающего по расписанию на локальной станции, обращатся к UI рабочей станции...
Как? через COM интерфейс "Notes.NotesUIWorkspace"...

вот простейший пример агента работающего по расписанию на локальной машине:
(в базе, кроме агента, имеется форма "Document")

Sub Initialize
Dim ses As New notesSession
Dim oses As Variant
Dim doc As Variant
Dim ows As Variant
Dim odb As Variant
Dim oNote

Set ows = createObject("notes.notesuiworkspace") ' получаем COM для UIWorkspace
Set oses = createObject("notes.notessession") ' получаем COM для Session

' так как мы работаем через COM то и текущую базу и новый документ получаем от туда же
'получаем текущую базу
Set odb = oses.GetDatabase(ses.CurrentAgent.Parent.Server, ses.CurrentAgent.Parent.FilePath)

'создаем новый документ
Set doc = odb.CreateDocument()
Call doc.ReplaceItemValue("Form", "Document")

'и открываем его в UI!
Set oNote = ows.EditDocument(True, doc)
End Sub

Правда есть и ложка дегтя в данном способе работы с UI, и не одна....
1. Если в момент когда фоновый агент попытается открыть что-либо в UI в Lotus Notes открыт какой-либо диалог, то произойдет ошибка...
2. Если в момент когда фоновый агент попытается открыть что-либо в UI в Lotus Notes производятся какие-либо вычисления или обработка (работа с UI), то в работе "фронт-эндовского" агента может произойти ошибка (данное направление я до конца еще не иследовал, но сбои в работе агента, формирующего отчет в Word'e и отображающего на UI прогресс исполнения, наблюдались). 3. (это скорее такая фича) Если Вы находитесь в "Дизайнере", то документ откроется там, а не в рабочей станции...

Возможны, конечно, и еще "подъводные камни", но сам факт, что такое в принципе возможно, очень меня порадовал!

Тестировал на клиенте 5.0.7а, Win2000.


С наступающим, Новым Годом!
Черепанов Андрей aka Cherepanov aka Du Chan



Иерархия документов данной дискуссии:
Потрясая основы... :)) (Cherepanov; lawdb) (26.12.2003 10:31:59)


Разработчикам и администраторам: курсы, книги, сертификация