Domino 9 und frühere Versionen > ND6: Entwicklung
Notes COM
Ralf_M_Petter:
Ich weiß die Frage zielt hier explizit auf COM ab. Aber warum etwas nehmen, dass nicht funktioniert, wenn es etwas gibt, dass sehr wohl funktioniert. Ich finde zwar den gesamten Ansatz des ursprungsposter nicht sinnvoll, aber bitte.
Man kann sehr wohl von VBA auf das UI zurückgreifen. Hier ein Auszug aus der Hilfe:
Notes registers itself as an OLE automation server and provides the following OLE automation objects:
Notes.NotesUIWorkspace provides access to the Domino UI objects.
Notes.NotesSession provides access to the Domino Objects (that is, the back-end objects).
External applications can create and reference the automation objects, then work down through the object hierarchies. For example, a Visual Basic application might contain the following code:
--- Code: ---Set workspace = CreateObject("Notes.NotesUIWorkspace")
Set doc = workspace.CurrentDocument
--- Ende Code ---
Wobei wie gesagt, ich würde einen ganz anderen Ansatz wählen, da dieser sehr riskant ist, aber prinzipiell würde es funktionieren.
Grüße
Ralf
skywook:
Danke, für die Anworten.
Aber ich verstehe immer noch nicht wie ich z.B. in VBA-Word über ein Modul auf mein Notesdoc zugreife.
Folgender Ansatzpunkt habe ich:
- Vor der Datenübergabe bzw. öffnen von Word schreibe ich die Doc-Id in die Notes.ini
- In Word, beim beenden des Documentes wird übers Backend (anhand der Doc-Id in der Notes.ini) das Doc geöffnet und der Anhang eingefügt und Word beendet.
- Das Notes UI-Doc ist noch geöffnet und wird geschlossen. Beim nächsten öffnen ist der Anhang sichtbar.
Würde das funktionieren?
Ralf_M_Petter:
Ähem was an meinem Code ist jetzt nicht verständlich?
Warum willst du die Doc ID in die Notes.ini schreiben. Was ist wenn mehrere Dokumente gleichzeitig offen sind?
Darf ich mal fragen, wie deine Kenntnisse von VBA und vom Notes Objektmodell sind?
Grüße
Ralf
skywook:
Danke Ralf,
ich habs schon verstanden.
Übers Backend mit der Dokid hab ich endlich hinbekommen:
Sub aa()
'Dimensionierung der Objektvariablen
Dim SessionNotes As Object, NotesDB As Object, NotesDoc As Object
'Notes Datenbank-Objekt erstellen und initialisieren
Set SessionNotes = CreateObject("Notes.NOTESSESSION")
Set NotesDB = SessionNotes.GetDatabase("notessrv", "test.nsf")
'Set NotesDB = SessionNotes.CurrentDatabase
If NotesDB.IsOpen = False Then
MsgBox "Bitte melden Sie sich zunächst vollständig in Notes an!", vbInformation + vbOKOnly
Exit Sub
Else
MsgBox "Datenbank ist geöffnet!", vbInformation + vbOKOnly
MsgBox NotesDB.Title
End If
Set NotesDoc = NotesDB.GetDocumentByUNID("015301C889271DB4C1257192003D4600")
If NotesDoc Is Nothing Then
MsgBox ("Document nicht gefunden")
Else
MsgBox ("Document gefunden")
MsgBox NotesDoc.Created
End If
Dim subj As Variant
subj = NotesDoc.GetItemValue("dokument")
MsgBox subj(0)
End Sub
aber übers Frontend gekomme ich leider nur Fehlermeldungen. Hast Du mir nicht einen kleinen Codeschnipsel für den Ansatz:
Dim workspace As Object, uidoc As Object
Set workspace = CreateObject("Notes.NotesUIWorkspace")
Set uidoc = workspace.CURRENTDOCUMENT
MsgBox uidoc.FIELDGETTEXT("dokument") - hier kommt Fehlermeldung
Ralf_M_Petter:
Hm was für eine Fehlermeldung?
Grüße
Ralf
P.S. Habe deinen Code für das UIDoc gerade ausprobiert, funktioniert einwandfrei.
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln