Domino 9 und frühere Versionen > ND6: Entwicklung

Notes COM

<< < (3/4) > >>

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