Domino 9 und frühere Versionen > ND8: Entwicklung
Kalendereintrag für jemand anderen erstellen
klaussal:
Einfach einen neuen Gruppenkalender anlegen mit den Beratern und gut ist.
Dann braucht man für einen neuen Termin nix zu programmieren.
Felix Ziegler:
Nur als kleine Anmerkung. Das Erstellen von Kalendereinträgen kann sehr komplex werden. Ich habe mich vor einiger Zeit mal damit auseinander gesetzt. Vorallem "funktionierende" Einträge zu erstellen ist nicht einfach mal schnell so gemacht.
Siehe auch hier: http://www-12.lotus.com/ldd/doc/uafiles.nsf/docs/WPNotesCSSchema/$File/csschema.pdf
Es gibt aber soweit ich weiß auch einige fertige ScriptLibs. Einfach mal googeln.
Thorsten Kalweit:
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...)
--- Code: ---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
--- Ende Code ---
Tode:
Nun, die entsprechenden Berechtigungen vorausgesetzt, müsstest Du diese Zeile
--- Code: ---Call db.OpenMail
--- Ende Code ---
ersetzen durch:
--- Code: ---Set db = New NotesDatabase( MailServerDesBenutzers, MailFileDesBenutzers )
--- Ende Code ---
Oder Du sparst Dir db komplett, und ersetzt diese Zeilen:
--- Code: ---dbfilename=db.filepath
dbserver = db.server
--- Ende Code ---
durch diese:
--- Code: ---dbfilename=MailServerDesBenutzers
dbserver = MailFileDesBenutzers
--- Ende Code ---
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...
Thorsten Kalweit:
Ich habe gerade eine Lösung hier aus dem Forum gefunden :-)
http://atnotes.de/index.php/topic,41883.msg268602.html#msg268602
Mit dem Skript funktioniert alles genau so wie es sein soll :-)
Danke trotzdem für Eure Unterstützung
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln