Das Notes Forum
Domino 9 und frühere Versionen => ND6: Administration & Userprobleme => Thema gestartet von: burkert am 25.10.07 - 14:12:21
-
Habe in der Sandbox einen EventKalender gefunden, welchen ich eine bisschen modifiziert habe und gerne bei uns im Marketing einsetzen würde.
Hier ist eine Aktion vorhanden, welche nicht wirklich funktioniert.
Man kann erstellte Termine durch anklicken eines Aktionsbuttons in seinen eigenen Kalender übernehmen.
Die Syntax lautet:
Sub Click(Source As Button)
Dim db As Notesdatabase
Dim session As New NotesSession
Dim workspace As New notesuiworkspace
Dim uidoc As notesuidocument
Dim note As notesdocument
Dim item As NotesItem
Dim startdttm As NotesDateTime
Dim enddttm As NotesDateTime
Dim window As NotesDateRange
Dim names As String
Dim dur As Integer
Dim username As String
Set uidoc = workspace.currentdocument
Set note = uidoc.Document
Set item = note.GetFirstItem("EventStartDate")
Set startdttm = item.DateTimeValue
Set item = note.GetFirstItem("EventEndDate")
Set enddttm = item.DateTimeValue
Set window = session.CreateDateRange()
Set window.StartDateTime = startdttm
Set window.EndDateTime = enddttm
names = session.CommonUserName
dur = ((enddttm.TimeDifference(startdttm))+86400)/60
freeTime = session.FreeTimeSearch(window, dur, names, True)
' If there is no value for freeTime(0) then that time is already booked - messagebox constants 0=okonly, 4=yesno, 32=question mark icon, 7=no
' If (freeTime(0) Is Nothing) Then
' If Messagebox ("This time is already booked - do you want to double book?", 4 + 32) = 7 Then
' Messagebox "This document has NOT been added to your calendar. ", 0, "Add Canceled"
' Exit Sub
' End If
' End If
Set db = New notesdatabase("", "")
Call db.openmail
Dim cEntry As New NotesDocument(db)
Dim rtitem As Variant
Dim itemIcon As NotesItem
username = session.UserName
cEntry.From = note.From(0)
cEntry.Subject = note.EventDescription
Set rtitem = note.GetFirstItem("Body")
Call rtitem.CopyItemToDocument(cEntry, "Body")
cEntry.Form = "Appointment"
cEntry.AppointmentType = "2"
cEntry.tmpWasMailed = "1"
cEntry.ExcludeFromView = "D"
cEntry.OrgTable = "P0"
cEntry.Location = note.Location
cEntry.calendarDateTime = note.datelist
Set itemIcon = New NotesItem(cEntry, "_ViewIcon", 9)
itemIcon.IsSummary = True
cEntry.Logo = "stdNotesLtr0"
cEntry.StartDate = note.EventStartDate
cEntry.EndDate = note.EventEndDate
Call cEntry.save(True, True)
Messagebox "This document has been added to your calendar. ", 0, "Add Complete"
End Sub
In der Ansicht alle Dokumente ist der Eintrag dann vorhanden, jedoch nicht im Kalender. Man kann die Dokumente auch nicht öffnen.
Fehlermeldungen lauten:
-
Offensichtlich fehlen da wohl einige Felder, bzw. sind vom Typ her falsch.
-
Hatte eigentlich gedacht, das die DB's welche man in der Sandbox downloaden kann funktionieren!
-
Für welchen Release-Stand ist die denn gedacht ?
-
Ich habe eben nachgeschaut: Die wurde für R5 gemacht.
Und: Jeder kann Beiträge für die Sandbox schreiben, jeder kann das dann ausschlachten. Und dass die Teile nicht unbedingt 100%ig funktionieren müssen, hast Du als Bedingung vor dem Download ausdrücklich akzeptiert.
Also: Nicht heulen, sondern Fehler suchen und ausbessern. Und dann eine 6er / 7er Version bei der Sandbox einreichen ;)
Bernhard
-
hallo
wir hatten die Datenbank (mit der drehenden Weltkugel?) auch einige Jahre im Einsatz und da hat immer alles funktioniert. Inzwischen ist zwar eine umfangreichere Eigenentwicklung dafür eingesprungen, aber ich glaube wir hatten das auch noch unter V6.
Der Agent sieht in der Datensicherung, die ich hier noch gefunden habe aber minimal anders aus, s. Anlage.
Gruß Werner
PS:Könntest Du in Zukunft bitte die Bilder zuschneiden (z.b. Irfanview?)
-
sorry für die nicht zurechtgeschnittenen Bilder.
Leider ist das Ergebnis auch mit Deinem SourceCode das Gleiche!
Noch ne Idee???
-
Ja.
Also: Nicht heulen, sondern Fehler suchen und ausbessern.
-
lieber Bernhard,
zum Thema "Also: Nicht heulen, sondern Fehler suchen und ausbessern.
Wenn ich den Fehler finden würde und Ihn so einfach ausbessern könnte, müsste ich mich wohl nicht an das Forum wenden.
Würde mich über einen konstruktiven Vorschlag wirklich mehr freuen.
Bin für jeden Tipp dankbar!
-
Nochmals: selber einen Termin erstellen, welche Felder werden wie gefüllt und dann mit dem Agenten vergleichen.
Diese Arbeit können wir Dir leider nicht abnehmen.
-
Welche Items Dir jetzt fehlen, mag ich jetzt nicht im Einzelnen prüfen.
Gib aber mal ComputeWithForm (False, False) vor dem Speichern des Kalenderdokumentes eine Chance. Der zweite Parameter sollte unbedingt False sein, denn irgendwas rumpelt da bei der Methode bezogen auf R6+ - Kalenderdokumente immer.
HTH,
Bernhard
-
Danke Bernhardt,
in welchem Teil von dem Script muss ich die Routine einfügen?
Danke
-
Das hatte ich doch geschrieben:
... vor dem Speichern des Kalenderdokumentes ...
Bernhard
-
Oh oh, ob das mal gut geht auf lange Sicht ?