Domino 9 und frühere Versionen > ND6: Entwicklung
Kalendareintrag erstellen
Herr.Vorragend:
Hallo,
ich will aus einer Datenbank mit Mitarbeiterstammdaten per Script einen Eintrag im Kalendar eines Benutzer setzen. Der Benutzer soll (am liebsten aus einer Ansicht - nicht im Frontend wie hier) per Schaltfläche einen "Reminder" oder ähnlich erstellen. Ausgangsfeld im Quelldokument ist "Geburtsdatum".
Das jetzige Script ist leider nur per Frontend ausführbar.
Das könnte ich aktzeptieren. Ich wollte nur kurz eure Meinung dazu hören, ob
dieses Script auch in R6 funktioniert. (bin gerade erst von R4->R6 gekommen)
--- Code: ---Sub Initialize
Dim session As New NotesSession
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim rtitem As Notesrichtextitem
Dim success As Variant
Dim thedoc As Notesdocument ' Das Originaldokument
Dim docNew As NotesDocument
Dim thisdb As Notesdatabase ' aktuelle Datenbank
Dim userMailDb As New NotesDatabase( "", "" )
Dim dateTime As NotesDateTime
Set thisdb = session.currentdatabase
Set uidoc = ws.Currentdocument
Set thedoc = uidoc.document
Call userMailDb.OpenMail
ReminderDate$ = thedoc.Geburtstag(0)
Set dateTime = New NotesDateTime( ReminderDate$ )
If userMailDb.IsOpen Then
Set docNew = New NotesDocument( userMailDb )
With docNew
.Form = "Appointment"
.ReplaceItemValue "$Alarm", 1
.ReplaceItemValue "$AlarmDescription", popUpStr
.ReplaceItemValue "$AlarmMemoOptions", ""
.ReplaceItemValue "$AlarmOffset", 0
.ReplaceItemValue "$AlarmUnit", "M"
.ReplaceItemValue "ViewIcon", "67"
.ReplaceItemValue "ExcludeFromView", "D"
.ReplaceItemValue "NoticeType", "R"
.ReplaceItemValue "tmpDoNotProcess", "1"
.Subject = theDoc.Displayname
.Alarms = "1"
.CalendarDateTime = dateTime.lsLocalTime
.StartDate = dateTime.lsLocaltime
.StartTime = dateTime.lsLocaltime
.StartDateTime = dateTime.lsLocaltime
.EndDate = dateTime.lsLocaltime
.EndTime = dateTime.lsLocaltime
.EndDateTime = dateTime.lsLocaltime
.AppointmentType = "1"
.ComputeWithForm False, False
.Save True, False
.PutInFolder( "$Alarms" )
End With
End If
End Sub
--- Ende Code ---
Axel:
Auf den ersten Blick sieht das Script soweit recht gut aus. Probier's einfach aus.
--- Zitat von: Herr Vorragend am 11.04.06 - 09:38:29 ---Der Benutzer soll (am liebsten aus einer Ansicht - nicht im Frontend wie hier) per Schaltfläche einen "Reminder" oder ähnlich erstellen.
--- Ende Zitat ---
Das gehört aber auch zum Frontend. du meinst sicher, dass du nicht erst das Dokument öffnen musst um das Kalenderdokument zu erstellen.
In diesem Fall musst du das Script so ändern:
--- Code: ---
Dim session As New NotesSession
Dim ws As New NotesUIWorkspace
Dim rtitem As Notesrichtextitem
Dim success As Variant
Dim thedoc As Notesdocument ' Das Originaldokument
Dim docNew As NotesDocument
Dim thisdb As Notesdatabase ' aktuelle Datenbank
Dim userMailDb As New NotesDatabase( "", "" )
Dim dateTime As NotesDateTime
Dim collection As NotesDocumentCollection
Set thisdb = session.currentdatabase
Set collection = thisdb.UnprocessedDocuments
If collection.Count = 0 Then Exit Sub 'Wenn kein Dok. markiert beenden
If collection.Count > 1 Then
Messagebox "Es darf nur ein Dokument markiert sein.", 16, "Kalendereintrag erstellen"
Exit Sub
End If
Set thedoc = collection.GetFirstDocument
Call userMailDb.OpenMail
ReminderDate$ = thedoc.Geburtstag(0)
Set dateTime = New NotesDateTime( ReminderDate$ )
...
--- Ende Code ---
Den gesamten Code hinterlegst du dann in einer Ansichtenaktion.
Axel
koehlerbv:
Es fehlt auf jeden Fall noch das Item $BusyName. Ohne dieses wird der Kalendereintrag nicht vom Scheduler beachtet.
Bernhard
Axel:
--- Zitat von: koehlerbv am 11.04.06 - 10:30:35 ---Es fehlt auf jeden Fall noch das Item $BusyName. Ohne dieses wird der Kalendereintrag nicht vom Scheduler beachtet.
--- Ende Zitat ---
Stimmt. Das kommt vom ersten Blick. :o
Axel
koehlerbv:
$BusyName könnte vom ComputeWithForm gesetzt werden, aber das Thema Notes 6, Form Appointment und ComputeWithForm ist ja ein ganz eigenes. Dass ComputeWithForm hier mit False aufgerufen wird, spricht ja Bände. Wieweit ComputeWithForm also wirklich kommt, bleibt offen.
Bernhard
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln