Hi,
hier ist das gesamte Script des Agenten. Dieser wird durch einen Aktionbutton im Dokument aufgerufen.
Sub Initialize
Dim session As New NotesSession
Dim workspace As New NotesUIWorkspace
Dim maildb As NotesDatabase
Dim adressdb As NotesDatabase
Dim currentdb As NotesDatabase
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim adrdoc As NotesDocument
Dim taskdoc As NotesDocument
Dim taskuidoc As NotesUIDocument
Dim rtitem As NotesRichTextItem
Dim strTemp As String
Dim vDbName As Variant
Dim iAdressDbError As Integer
iAdressDbError = 0
Set currentdb = session.CurrentDatabase
Set uidoc = workspace.CurrentDocument
Set doc = uidoc.Document
'Prüfen ob Mail-DB vorhanden
Set maildb = New NotesDatabase("","")
Call maildb.OpenMail
If Not maildb.IsOpen Then
Messagebox "Mail-Datenbank kann nicht geöffnet werden." + Chr$(10) + "Es wird keine Aufgabe erstellt.", 16, "Adressen"
Exit Sub
End If 'If Not maildb.IsOpen Then
If ConfigLookup("xAdressDB", vDbName) And vDbName(0) = "" Then
iAdressDbError = 1
Else
Set adressdb = New NotesDatabase(currentdb.Server, vDbName(0))
If Not adressdb.IsOpen Then
iAdressDbError = 1
End If 'If Not adressdb.IsOpen Then
End If 'If ConfigLookup("xAdressDB", vDbName) Then
Set adrdoc = adressdb.GetDocumentByUNID(doc.xAdressID(0))
If adrdoc Is Nothing Then
iAdressDbError = 1
End If 'If adrdoc Is Nothing Then
'Neue Aufgabe erstellen
Set taskdoc = New NotesDocument(maildb)
taskdoc.Form = "Task"
Call taskdoc.ComputeWithForm(True, True)
If doc.Kontaktperson(0) = "" Then
strTemp = doc.Firma(0)
Else
strTemp = doc.Kontaktperson(0) + " - " + doc.Firma(0)
End If 'If doc.Kontaktperson(0) = "" Then
taskdoc.Subject = "Aufgabe zu einem Vorgang zu " + strTemp
'Anlegen und füllen des Richtextfeldes
Set rtitem = taskdoc.CreateRichTextItem("Body" )
Call rtitem.AppendText(doc.Aktionen(0))
Call rtitem.AddNewLine(2)
Call rtitem.AppendText("Vorgang -> ")
Call rtitem.AppendDocLink(doc, "")
If Not iAdressDbError Then
Call rtitem.AddNewLine(2)
Call rtitem.AppendText("Adresse -> ")
Call rtitem.AppendDocLink(adrdoc, "")
End If 'If Not iAdressDbError Then
Call taskdoc.Save(True,False) 'Temp. Speichern des Backend-Doc. damit RTF-Feld angezeigt wird.
Set taskuidoc = workspace.EditDocument(True, taskdoc) 'Dokument im Frontend öffnen
Call taskdoc.Remove(True) 'Das Dokument, das im Backend erstellt wurde, löschen
End Sub
Der Vollständigkeit wegen hier noch die Funktion ConfigLookup.
Function ConfigLookup(sField As String, vFieldValue As Variant) As Integer
Const sView = "vwKonfigurationLookup"
Const sKey = "Allgemein"
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
On Error Goto ConfigLookup_Error
Set db = session.CurrentDatabase
Set view = db.GetView(sView)
Set doc = view.GetdocumentByKey(sKey)
vFieldValue = doc.GetItemValue(sField)
ConfigLookup = 0
Exit Function
ConfigLookup_Error:
ConfigLookup = 1
Resume Next
End Function
Axel