Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Ralf_M_Petter am 27.08.03 - 15:37:09
-
Hat jemand schon mal von Script aus einen Klaendereintrag (Termin) in der Maildatenbank erzeugt. Falls jemand einen kleinen Beispielcode hätte würde ich mich sehr freuen. Das script sollte womöglichst sowohl mit R5 als auch mit R6 funktionieren. Danke im voraus für eure Hilfe!
Grüße
Ralf M Petter
-
Dieses Script habe ich mal aus der Sandbox geholt und setze es auch ein. Ist allerdings alles hartcodiert - wobei Du ja glaube ich einiges ScriptKnowHow hast um das entsprechend anzupassen...
Falls Du etwas damit anfangen kannst wäre es klasse wenn Du mir kurz posten könntest wie ich Feldwerte anstelle der Hartcodierten Dinger da reinbringe. Bin leider kein Scriptmann...
REM Quick and dirty code to add business holidays to the user's calendar
REM This code will add your business holidays to the user's calendar by using front end classes and allowing the form's built in funtionality to handle the validation
Sub Click(Source As Button)
Dim session As New NotesSession
Dim db As New NotesDatabase ("","")
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim userName As New notesname(session.username)
Dim dbfilename As String
Dim dbserver As String
Dim value As Integer
Call db.OpenMail
dbfilename=db.filepath
dbserver = db.server
value = Messagebox ("Möchten Sie diesen Termin in Ihren Kalender eintragen", (4+32+0+0), "Termin eintragen")
If (value = 6) Then
'*****************Do this chunk of code for each holiday in the year**************************
Set uidoc = ws.ComposeDocument (dbserver,dbfilename,"Appointment")
Call uidoc.FieldSetText("Subject","Mitarbeiterweiterbildung - 1.1. Die neue ESD-Norm ")
Call uidoc.FieldSetText("StartDate","22/10/2002")
Call uidoc.FieldSetText("AppointmentType","0")
Call uidoc.FieldSetText("StartTime","16:30")
Call uidoc.FieldSetText("EndTime","18:00")
Call uidoc.Save()
Call uidoc.Close()
'****************************************************************************************************
Messagebox ("Termin wurde im Kalender eingetragen.")
Else
Messagebox ("Es wurde kein Eintrag im Kalender erzeugt....")
End If
End Sub
-
Danke für die Antwort, aber ich habe vergessen, dass ich den Kalendereintrag nicht im Fronent sondern im Backend erstellen will. Damit auch eine Erstellung durch einen Agenten der am Server läuft möglich ist. Vielleicht kann dazu auch jemand ein script zur Verfügung stellen. Es würden mir auch eine Liste der Felder genügen die mit Inhalt versehen werden müssen. Es kann ja nicht gut sein, dass man wirklich alle Felder mit Inhalten versehen muß.
Grüße
Ralf
-
Hallo Ralf,
keine ja keine Ahnung von Front-oder Backend, aber sind die Felder nicht diesselben?
So wie ich das sehe braucht musst Du doch nur die Felder Subject, StartDatei, AppointmentType, StartTime, EndTime füllen
-
@MartinG: das ist nicht egal. Manche Felder haben default Werte. Die werden zwar übers Frontend gesetzt aber nicht wenn man die über Script erzeugt.
Für wirklich berechnete Felder kann man sich mit computeWithForm behelfen. Aber man muß z.B. im querySave nachschauen, ob da nicht irgendwelche Felder gesetzt werden. Außerdem ist computeWithForm performance-mässig sehr kostspielig.
Ich brauch das auch bald. Im Zweifelsfall einfach ein Dokument erzeugen und in der Eigenschaftsbox nachlesen, welche Felder wann mit welchen Werten gesetzt sind.
Ich hab das mal für Location und Connection Dokumente in der lokalen names.nsf gemacht. Definitiv no fun.
Gruß Axel
-
Hallo Axel!
Ja ich kann zwar die Felder alle mit den Werten befüllen, wie in einem bestehenden Eintrag nur weiß ich dann kaum was passiert, da teilweise schon sehr seltsame Sachen drinnen stehen.
Grüße
Ralf
-
@Ralf: immerhin kannst du dir die Formeln und die LotusScript Event-Handler-Scripte anschauen, die zu dem komischen state des Feldes des Dokuments geführt haben.
@Martin: Du bist ein weiterer lebender Beweis für meine Theorie, daß gerade wirklich talentierte Administratoren für bestimmte offensichtliche Probleme der Anwendungsentwicklung einen leicht oberflächlichen Blick haben. Ich hatte da schon längere Diskussionen mit meinem persönlichen Domino-Admin-Orakel und mit Administratoren auf Kundenseite
"Wieso. Mit LotusNotes ist das doch überhaupt kein Problem. Sie müßen einfach...".
Falls du Zeit und Lust hast, erzeuge einfach mal mit deinem Tipp im Backend, d.h. mit NotesDatabase.createDocument() einen Kalendereintrag.
Du wirst sehen:
- es hat nix mit OO zu tun
- falls du das ans Laufen bekommen willst, erwarten dich eine Reihe langweiliger Stunden.
Gruß Axel
-
... da muß ich doch mal Axel zustimmen, es ist garnicht so einfach in R6 das Problem zu lösen, ich sitze da zwischendurch auch dran.
Es gbt nämlich einige Unterschiede zu R5 - dort habe ich es ohne größere Schwierigkeiten gelöst, Einträge zu erstellen, auch über mehrere Tage und periodisch. Nur in R6 siehts so aus, das wohl 2 Dokumente benötigt werden, dazu ne Menge Felder die zwar mit den scheinbar gleichen Werten gefüllt aber anders abgearbeitet werden. Zwar bekomme ich funktionierende Einträge (mit Alarm und über längeren Zeitraum / periodisch) hin, aber beim öffnen direkt aus dem Kalender gibts immernoch Problemchen.
ich weis nicht, wie genau Martin sich die Maske und die Scripts angeschaut hat, welche hier von Notes gebraucht und verwendet werden, aber das ist ne Menge.
-
@Axel... - da hast Du sicherlich vollkommen Recht. Hier war ich glaube ich wirklich einfach zu Naiv. Siehe auch meine Postings zu Eknoris Buch....