Я новичок в LotusScript, у меня в агенте следующая ошибка:
Моя цель - иметь возможность подключиться к серверу с помощью следующего кода:
Option Public
Option Declare
Sub Initialize
Dim myServer As String
Dim myMailfile As String
myServer = "server"
myMailfile = "mailfile"
Dim filePath As String
Dim intErgebnis As Integer
Dim objNotes As Object
Dim LNdb As Object
Dim LNView As Object
Dim LNDoc As Object
Dim LNItem As Object
Dim strSubject As String
Dim LNWorkspace As Object
Dim LNAttachment As Variant
intErgebnis = 0
Set objNotes = GetObject("", "Notes.NotesSession")
Set LNdb = objNotes.GETDATABASE(myServer, myMailfile)
Set LNWorkspace = CreateObject("notes.notesuiworkspace")
LNWorkspace.OpenDatabase myServer, myMailfile
End Sub
Кто-нибудь знает, как это решить? спасибо за помощь
В Lotusscript нет типа данных Object. Вам нужно объявить эти переменные с их соответствующими типами объектов, например. NotesDatabase, NotesView, NotesDocument и т. д.
Кроме того, вы должны объявить и инициализировать объект NotesSession, а не использовать GetObject() в Lotusscript. Похоже, вы пытаетесь написать COM-код, а не Lotusscript.
Другое предложение состоит в том, чтобы использовать имена переменных, которые соответствуют де-факто (установленному) соглашению об именах. Если вы посмотрите на другой код Lotusscript, вы заметите, что переменные обычно называются одинаково, что значительно упрощает чтение кода других разработчиков. Еще одна рекомендация состоит в том, чтобы сначала объявить все объекты/классы Notes, сгруппированные/отсортированные в порядке их использования, а затем остальные переменные, прежде чем любой из них будет присвоено значение.
Ваш код должен выглядеть примерно так:
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
Dim item As NotesItem
Dim ws As New NotesUIWorkspace
Dim uidoc as NotesUIDocument
Dim mailServer As String
Dim mailFileName As String
Dim filePath As String
Dim resultCount As Integer
Dim subject As String
mailServer = "server"
mailFileName = "mailfile.nsf"
resultCount = 0
' *** Open the specified mail file using back-end classes
Set db = new NotesDatabase(mailServer, mailFileName)
' *** Get the document currently open in the Notes client using front-end classes
Set uidoc = ws.CurrentDocument
End Sub
Вы видите, насколько легче это читать, не говоря уже о том, что это и короче, и работает.
Я также рекомендую всегда использовать имена переменных на английском языке. Если вам когда-нибудь понадобится попросить кого-нибудь о помощи, например здесь, в Stack Overflow, им будет намного проще понять ваш код, если вы используете понятные имена переменных. Это также причина, по которой вы должны использовать стандартизированные имена для объектов/классов Notes.
Я написал серию статей о том, как лучше писать код Lotusscript, думаю, они могут вам помочь: http://blog.texasswede.com/how-to-write-better-code-in-notesdomino/