Guten Morgen!
Mit dem nachstehenden Skript kann ich einen Termin in meinem eigenen Kalender eintragen.
Wo bzw. was muss ich Ändern, um den Termin in einem anderen Kalender einzutragen. (Sorry für die dumme Frage, aber meine Script-Kenntnisse sind noch nicht so gut...)
Sub Click(Source As Button)
Dim session As New NotesSession
Dim db As New NotesDatabase ("","")
Dim UiWs As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As notesdocument
Dim startdatum As String 'Wann der Kunde kommt, abzüglich vorlaufzeit
Dim startzeit As String 'Wann der Kunde kommt, abzüglich vorlaufzeit
Dim enddatum As String 'Wann der Kunde kommt, zzgl. nachbereitung
Dim endzeit As String 'Wann der Kunde kommt, zzgl. nachbereitungd
Dim requesteddate As String 'Wann der Kunde kommt
Dim requestedtime As String 'Wann der Kunde kommt
Dim thema As String
Dim personen As String
Dim optpersonen As String
Dim infopersonen As String
Dim dbfilename As String
Dim dbserver As String
Dim value As Integer
Set uidoc = UiWs.CurrentDocument
Set doc = uidoc.Document
Dim userName As New notesname(session.UserName)a
requesteddate = uidoc.FieldGetText("RequestedStartDate")
requestedtime = uidoc.FieldGetText("RequestedStartTime")
startdatum = uidoc.FieldGetText("StartDate")
startzeit = uidoc.FieldGetText("StartTime")
enddatum = uidoc.FieldGetText("EndDate")
endzeit = uidoc.FieldGetText("EndTime")
thema = uidoc.FieldGetText("thema") & " " & uidoc.FieldGetText("kdnummer") & " " & uidoc.FieldGetText("kdname") & " TERMIN UM " & requesteddate & " " & requestedtime
'Terminbestätigung eintragen
uidoc.EditMode = True
Call uidoc.FieldSetText("termin_bestaetigt", "1")
Call uidoc.Save()
Call db.OpenMail
dbfilename=db.filepath
dbserver = db.server
'*****************Do this chunk of code for each holiday in the year**************************
Set uidoc = UiWs.ComposeDocument (dbserver,dbfilename,"Appointment")
Call uidoc.FieldSetText("AppointmentType","0")
Call uidoc.FieldSetText("tmpAppointmentType","0")
Call uidoc.Refresh
Call uidoc.FieldSetText("Subject", thema)
'Datumswerte
Call uidoc.FieldSetText("StartDate",startdatum)
Call uidoc.FieldSetText("EndDate",enddatum)
Call uidoc.FieldSetText("StartTime",startzeit)
Call uidoc.FieldSetText("EndTime",endzeit)
Call uidoc.Refresh
Call uidoc.Save()
'Call uidoc.Close()
'****************************************************************************************************
End Sub
Nun, die entsprechenden Berechtigungen vorausgesetzt, müsstest Du diese Zeile ersetzen durch:Set db = New NotesDatabase( MailServerDesBenutzers, MailFileDesBenutzers )
Oder Du sparst Dir db komplett, und ersetzt diese Zeilen:
dbfilename=db.filepath
dbserver = db.server
durch diese:dbfilename=MailServerDesBenutzers
dbserver = MailFileDesBenutzers
Wie Du an Mailserver und Mailfile eines anderen Benutzers kommst, wurde hier im Thread ja schon angedeutet.
Jetzt kommt das grosse ABER: Durch Erstellen des Dokumentes im Frontend wird wiederum die Kachel des anderen Mitarbeiters bei demjenigen, der den Code verwendet hinzugefügt. Und das wolltest Du ja gerade vermeiden.
AUSSERDEM: Wenn der Benutzer 5 Mal auf den Button klickt, dann ist der Eintrag 5 Mal vorhanden, eine Prüfung findet nicht statt.
Um das RICHTIG zu machen, müsste man das Appointmentdokument im Backend erstellen, und alle Felder manuell füllen und das Dokument mit dem aktuell offenen Dokument "verlinken", so dass man es einfach updaten / löschen kann, wenn sich das Ursprungsdokument ändert... Aber ich fürchte, das übersteigt Deine aktuellen Fähigkeiten, weil wie gesagt: Das ist selbst für erfahrene Programmierer nicht trivial...