Hallo zusammen,
nachdem ich nun nach über einer Stunde Suche nichts gefunden habe,
wollte ich mal fragen ob des was ich vor habe überhaupt möglich ist.
Anbei mein aktuelles Beispiel:
'Holen einer aktiven Notessession
Set objNotes = GetObject("", "Notes.NotesSession")
'Verweisen auf die gewünschte Datenbank
Set LNdb = objNotes.GETDATABASE(strServerName, strDbName)
If Not (LNdb Is Nothing) Then
Set LNView = LNdb.GETVIEW("($All)")
strFilter = "Form = ""Maske"" & Standard = ""ja"""
Set LNView = LNdb.SEARCH(strFilter, Nothing, 0)
If LNView Is Nothing = False Then
'Einlesen des ersten Dokuments
Set LNDoc = LNView.GETFIRSTDOCUMENT
Do While Not LNDoc Is Nothing
Set LNItem = LNDoc.GETFIRSTITEM("DokID")
If LNItem Is Nothing = False Then
Debug.Print LNItem.Text
End If
Set LNDoc = LNView.GETNEXTDOCUMENT(LNDoc)
Loop
End If
End If
Damit kann ich problemlos alle Felder eines Dokuments auslesen.
Die Frage ist nun ob ich auch das Ergebnis eines Lotusscriptes auslesen kann.
So was in der Art:
Set LNItem = LNDoc.GETFIRSTITEM("@DbLookup("""":""NoCache";"""";""LUMA"";ZLangName;""OES"";[FAILSILENT])")
Geht so etwas überhaupt?
Und wenn ja wäre ich für ein kurzes Besipiel sehr dankbar.
Grüße
Eric
Hier fragst du n deinem Code doch auch "If LNView Is Nothing"
Was mich an dem Code aber ein wenig verwundert ist, wie du diese Abfragen gestaltest.
Auch in VBA sollte eine Abfrage, ob ein Objekt gesetzt ist mit "If Not LNView Is Nothing" möglich sein.
Du hast recht der Code ist etwas umständlich.
Entschlackt sähe das so aus:
'Holen einer aktiven Notessession
Set objNotes = GetObject("", "Notes.NotesSession")
'Verweisen auf die gewünschte Datenbank
Set LNdb = objNotes.GETDATABASE(strServerName, strDbName)
If Not (LNdb Is Nothing) Then
strFilter = "Form = ""Maske"" & Standard = ""ja"""
Set LNGefiltert = LNdb.SEARCH(strFilter, Nothing, 0)
If Not LNGefiltert Is Nothing Then
'Einlesen des ersten Dokuments
Set LNDoc = LNGefiltert.GETFIRSTDOCUMENT
While Not LNDoc Is Nothing
Set LNItem = LNDoc.GETFIRSTITEM("DokID")
If LNItem Is Nothing = False Then
Debug.Print LNItem.Text
End If
Set LNDoc = LNGefiltert.GETNEXTDOCUMENT(LNDoc)
Wend
End If
End If
Da du "Set LNItem = ..." verwendest, kannst du das Ergebnis ebenso abfragen, wie du das bei der View bereits tust.
Das habe ich nicht verstanden. Meinst Du so.
Set LNItem = LNDoc.GETFIRSTITEM("@DbLookup("""":""NoCache";"""";""LUMA"";ZLangName;""OES"";[FAILSILENT])")
Das liefert nämlich kein Ergebnis.
beschreibe mal mit Worten was Du damit erreichen möchtest:
Set LNItem = LNDoc.GETFIRSTITEM("@DbLookup("""":""NoCache";"""";""LUMA"";ZLangName;""OES"";[FAILSILENT])")
schau Dir mal diese Funktion an:
https://www.ibm.com/support/knowledgecenter/en/SSVRGU_9.0.1/basic/H_EVALUATE_METHOD_SESSION_COM.html
Leider funktioniert das nicht.
test = objNotes.Evaluate("@DbLookup("""":""NoCache";"""";""LUMA"";ZLangName;""OES"";[FAILSILENT])", LNDoc)
Debug.Print test
Spuckt mir die Fehlermeldung "Laufzeitfehler '438': Objekt unterstützt diese Eigenschaft oder Methode nicht"
in Excel unter Extras/Verweise musst Du "Lotus.Domino Objects" auswählen. Eine NotesSession wird dann so erstellt:
Dim se As New NotesSession
se.Initialize
Rest ist dann fast so als wenn man in Notes programmiert.