среда, 6 мая 2015 г.

Создание документа Lotus Notes и открытие его на редактирование в ОС Windows из карточки DocsVision версии 4.5.1988

В коде создается документ и запускается на редактирование. Тестировано в ОС Windows Server 2003. Документ открывается через интернет эксплорер, используя объект WSH. Перед открытием документ сохраняется Это нужно для того, чтобы можно было открыть документ через iexplore.exe.
Для Lotus Notes версии 8.5 при открытом Lotus Notes пароль не запрашивается. При закрытом запрашивается пароль, открывается Lotus Notes, создается документ и открывается на редактирование.
Требование: На компьютере должен быть установлен Lotus Notes (именно установлен,а не скопирован)
и Windows Script Host.

Dim Session
Dim Dir
Dim Doc
Dim Workspace
Dim EditDoc
Dim uidoc


'Creation de la session Notes 
Set Workspace = CreateObject("Notes.NotesUIWorkspace") 
Set Session = CreateObject("Notes.NOTESSESSION")
Set Dir = Session.GETDATABASE("MAIL/ГА.", "reg.nsf") 

If Dir is Nothing then
   msgbox "БД reg.nsf не найдена!"
   exit function
End if

'Создание нового документа
Set Doc = Dir.CREATEDOCUMENT()

If Doc is Nothing Then
   msgbox "Ошибка создания документа. Обратитесь к администратору!"
   Exit Function
End If

Call Doc.replaceItemValue("Form", "firstdoc")
Call Doc.replaceItemValue("subject", "О направлении требований заявок тест")
Call Doc.replaceItemValue("DocType", "2015\Входящая ЗАО ТТК")
Call Doc.replaceItemValue("docregnum", "1000")
Call Doc.replaceItemValue("docregdate", "01.01.2014")
Call Doc.replaceItemValue("delo", "исп.")

'Сохраняем, чтобы можно было получить ссылку на документ для открытия его через iexplore.exe
Call Doc.Save(True, False)

Set WshShell = CreateObject("WScript.Shell")
Call WshShell.Run("iexplore.exe " + "Notes://MAIL/47256E8B00343C37/6F0FC1CAAE60D22147256BF2002C1907/" + Doc.UniversalID)

Set uidoc = Workspace.CurrentDocument
while (uidoc is Nothing)
   WshShell.Popup "Ожидание открытия документа", 1, "Открытие документа", -1
   Set uidoc = Workspace.CurrentDocument
Wend

If uidoc is Nothing then
msgbox "Не удалось получить объект документа. За помощью обратитесь к администратору."
exit function
End If

'Здесь при открытии можно изменить еще какие-либо поля документа
uidoc.EditMode=True
Call uidoc.FieldSetText("authororg", "ЗАО Корона Империи")