Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Thunder am 09.09.04 - 19:32:06
-
Hallo Leute,
bin auch Frischling in Sachen Script und hatte mir mal folgenden Code gebastelt (auch mit eurer Hilfe), der mir aus einer DB automatisch Einträge in den eigenen Kalender bringt. Das funktioniert auch einwandfrei - nur, wenn ein Kollege über das Delegierungsprofil auf einen Kalender zugreift, kann er diese Einträge nicht sehen und trägt womöglich noch einen Termin ein. Die Termine sind aber nicht als privat markiert. Wo liegt der Fehler ?
Sub Click(Source As Button)
Dim Session As New NotesSession
Dim Workspace As New NotesUIWorkspace
Dim TheDocument As NotesDocument
Dim db As notesDatabase
Dim UserName As String
Set UIDoc = Workspace.CurrentDocument
Set TheDocument = UIDoc.Document
Set db = New NotesDatabase("", "")
' Open user's mail database
db.openmail
' Notestime variabels
Dim StartDatum As String
Dim EindDatum As String
' Get variabels from document
StartDatum = Uidoc.FieldGetText("gA_vom_1")
EindDatum = Uidoc.FieldGetText("gA_bis_1")
If EindDatum ="" Then
EindDatum = StartDatum
End If
'Conversion for string to datefield
Set datum1 = New NotesDateTime (StartDatum)
Set datum2 = New NotesDateTime (EindDatum)
Call datum2.AdjustDay( 1 )
Startdatum = Cstr(datum1.DateOnly)
Einddatum = Cstr(datum2.DateOnly)
'The do while places the calendar item everyday unit startdate and endate are the same.
Do While StartDatum <> EindDatum
Dim CalendarEntry As New NotesDocument(db)
Dim rtitem As New NotesRichTextItem(CalendarEntry, "Body")
'Call calender
Call rtitem.AppendText("Klicken Sie auf folgenden DocLink, um sich den ZINA-Antrag noch einmal anzusehen.")
Call rtitem.AddNewline(1)
Call rtitem.AppendDocLink(TheDocument, "Verlof")
UserName = Session.CommonUserName
CalendarEntry.Form = "Appointment"
CalendarEntry.Principal = UserName
CalendarEntry.Chair = Session.UserName
CalendarEntry.ExcludeFromView = "D"
CalendarEntry.OrgTable = "CO"
CalendarEntry.SequenceNum = 1
CalendarEntry.Subject = "Urlaub (Zina)"
'Appointment Type 4 = Reminder , 3 = meeting, 2 = event, 1 = anniversary, 0 = Personal
'Place string in calender fields
CalendarEntry.AppointmentType = "2"
CalendarEntry.StartDate = Cdat(StartDatum)
CalendarEntry.StartDateTime = Cdat(StartDatum)
CalendarEntry.CalendarDateTime = Cdat(StartDatum)
CalendarEntry.EndDateTime = Cdat(StartDatum)
Call CalendarEntry.save(True, True)
Call datum1.AdjustDay( 1 )
Startdatum = Cstr(datum1.DateOnly)
Einddatum = Cstr(datum2.DateOnly)
Loop
-
Na ja, das hat nicht wirklich etwas mit Script zu tun, diese Kalendereinträge sind nun mal eine sehr empfindliche Sache, da stimmt in dem Falle etwas nicht mit den Feldbelegungen, und so über den Daumen gepeilt schätze ich, dass den erzeugten Dokumenten gewisse Felder fehlen. Sorry, ich weiss auch nicht auswendig, wo dieses "sichtbar/unsichtbar" genau hinterlegt wird. Har wahrscheinlich etwas mit "public documents" zu tun.
-
Dir fehlt auf jeden Fall noch die Zeile
CalendarEntry.~$PublicAccess = "1"
Personen, die kein Leserecht lt. Deiner MailDB-ACL haben, sehen sonst das Dokument nicht.
HTH,
Bernhard
-
Genau das ist das Problem.
Wenn nur Leseberechtigung auf den Kalender besteht, sieht man diese Einträge nicht.
Ich werde das mal austesten mit dem Eintrag.
-
Jawoll ja !
Hat geklappt.
Danke schön