Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: ringelnatz66 am 15.12.10 - 09:23:41
-
Hallo zusammen,
ich habe da ein Problem welches ich mir, auch zusammen mit meinem Admin, nicht erklären kann.
Wir arbeiten mit Notes 8.0.2 Fixpacklevel 6 mal mit Terminalserver aber auch lokal.
Das Problem:
Aus einer DB wird ein Mail generiert (mit Datum und Uhrzeit einer Sitzung), welches eine Schaltfläche beinhaltet die wiederum einen Kalendereintrag vom Typ Termin erstellen soll. Das Script sieht so aus:
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
Dim startzeit As String
Dim enddatum As String
Dim endzeit As String
Dim thema As String
Dim beschreibung As String
Dim userName As New notesname(session.username)
Dim dbfilename As String
Dim dbserver As String
Dim value As Integer
Set uidoc = UiWs.CurrentDocument
Set doc = uidoc.Document
startdatum = uidoc.FieldGetText("mf_sitzungsdatum")
startzeit = uidoc.FieldGetText("mf_uhr_von")
enddatum = uidoc.FieldGetText("mf_sitzungsdatum")
endzeit = uidoc.FieldGetText("mf_uhr_bis")
thema = uidoc.FieldGetText("Subject")
beschreibung = uidoc.FieldGetText("mf_anm_besprechungspunkt")
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")
'uiDoc.Document.AppointmentType="0"
Call uidoc.FieldSetText("AppointmentType","0")
'Call uidoc.reload
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.FieldSetText("Body", beschreibung)
'Call uidoc.reload
Call uidoc.Refresh
Call uidoc.Save()
Call uidoc.Close()
Messagebox("Der Kalendereintrag wurde erzeugt.")
End Sub
Bei manchen Usern wird der Termin einwandfrei erstellt. Ich persönlich bekomme die Fehlermeldung "Object Variabel not set". Diese Meldung kann ich wegklicken und drücke dann nochmals auf die Schaltffläche.
Es kommt dann keine Fehlermeldung und der Termin wird eingetragen.
Bei den meisten Usern wird ein Termin (ohne Fehlermeldung) eingetragen, aber unter dem Datum von heute und mit der , gem.Notes, nächsten verfügbaren Uhrzeit. Während des Eintragens sieht am Bildschirm noch alles korrekt aus aber im Kalender findet man dann den Blödsinn. Hier sind dann auch die Felder "Startdatetime, Enddatetime und Calenderdatetime" falsch (also mit den Werten von heute) gesetzt.Außerdem handelt es sich dann nicht um einen Termin sondern um einen Entwurf zu einer Besprechungseinladung.
Unter Notes 6.54 klappte die ganze Sache jahrelang völlig problemlos.
Kann mir jemand bitte dieses Phänomen erklären !?!?
Viele Grüße aus Mülheim an (in) der Ruhr
PS: Wie kann ich in dieses Forum ein Screenshot einfügen um mein Problem noch deutlicher zu machen? Kopieren und einfügen geht wohl nicht. Geht es nur als Dateianhang?
-
Du könntest den Debugger benutzen und sagen, an welcher Stelle der Fehler kommt ;)
-
Geht es nur als Dateianhang?
Ja.
-
Das mit der Fehlermeldung tritt ja nur bei mir auf und auch das immer nur einmal. Beim zweiten und hundertstenmal kann ich Schaltfläche betätigen und alles ist gut. Mich würde vielmehr interessieren was passiert da bei den anderen Usern ?
-
Benutze doch mal den Debugger.
-
Tja, da kann ich dann viele schöne Noteseigene Scripts sehen die da ablaufen, allerdings nicht das unsere. Die Fehlermeldung poppt auch nicht hoch.
-
Du solltest auch deinen Knopf drücken ::)
-
Ich habe unmittelbar bevor ich auf MEINEN Knopf gedrückt habe den Debugger aktiviert. Dann ca. 20000 Notes Script Zeilen (haben wohl allem was mit Kalendereinträgen zu tun) Schritt für Schritt ausgefühert. Eine Zeile unseres Scripts habe ich allerdings nicht gefunden.
-
Wenn du den Debugger anschaltest (dann wegen mir die Datenbank öffnest und an die richtige Stelle manövrierst) und nun deinen Button klickst, bekommst du, sofern du nur den Code ausgeführt, den du gepostet hast.
Falls er sich auf einer Subform befindet oder du mit Shared Fields arbeitest, wird u.U. der Code nicht angezeigt.
Vielleicht solltest du denjenigen kontaktieren, der die Applikation geschrieben hat.
EDIT: Hab's getestet, bei mir läuft's sauber durch und ich seh auch den Code. Die "20000" Zeilen sind aus der Appointment Form.
-
Weiß nicht warum, aber jetzt läuft das richtige Script durch und zawr ohne Fehler und der Eintrag wird richtig erstellt. Ist zwar jetzt schön bei mir aber bei den anderen wohl noch nicht. Werd dann mal bei meinem Admin mit dem debugger testen, mal schaun was da rauskommt.
-
War gerade bei meinem Admin. Der Termin wird nicht richtig eingetragen. Zusätzlich hat er das gleiche Problem, welches ich gestern hatte. Der Script Debugger startet bei der Appointment Anwendung. Wir haben auch mal die Cache.ndk gelöscht und die Notes.ini bis auf die ersten 6 Zeilen bereinigt. Das Problem besteht weiterhin.
-
[Ironie]
Du hattest natürlich die Anwendung geschlossen, als du den Debugger gestartet hattest!
Du hast dir selbstverständlich schon ein On Error Statement eingebaut um den Fehler zu finden!
Weiterhin hast du schon mit Print-Statement versucht die Stelle zu finden!
Weil du es im Frontend nicht hin bekommen hast, verwendest du nun das Backend!
[/Ironie]
Puh, du hast ja schon vieles durchprobiert. Ich glaub da brauchst du doch professionelle Hilfe.
-
Nur zur Deutlichkeit. Der Fehler "Object var...." trat ja nur bei mir auf. Jetzt auch nicht mehr. Bei den anderen Usern wird der Termin ja ohne Fehlermeldung eingetragen; nur leider immer unter dem falschen Datum und der falschen Uhrzeit.
-
Du brauchst nicht's verdeutlichen. Du ignorierst nur hartnäckig die Herangehensweise und Fehlersuche, die ich dir skizziert habe.
Das hier würde aber auch ganz gut passen:
http://atnotes.de/index.php/topic,50525.msg324363.html#msg324363 (http://atnotes.de/index.php/topic,50525.msg324363.html#msg324363)
-
Mein Problem aus dem letzten Jahr hat sich leider noch nicht erledigt. Ein Stück weiter bin ich aber schon. Ich habe das Script mit Hilfe von Büchern, Hilfefunktion und ausprobieren nochman neu gemacht. Und das schöne ist: Es funktioniert; zumindest teilweise.
Das Problem was bleibt ist, dass der Eintrag nur dann richtig als "Termin" eingetragen wird wenn auch in den Vorgaben des Users für neue Kalendereinträge "Termin" als Vorgabe eingestellt ist. Steht in den Vorgaben was anderes geht es schief.
In dem Script wird aber doch der "Appointmenttype="0"" gesetzt !?
Wieso ignoriert Notes das hartnäckig ?
Ansonsten läuft das Scipt sauber und ohne Fehlermeldung (auch im Debugger) durch.
Hier nochmal der Code
Sub Click(Source As Button)
Dim Beschreibung As String
Dim sdatum As String
Dim szeit As String
Dim edatum As String
Dim ezeit As String
Dim h_raum As String
Dim h_beschreibung As String
Dim h_body As String
Dim dbmail As New NotesDatabase("","")
Dim uiws As New notesuiworkspace
Dim uidoc As NotesuiDocument
Set uidoc = uiws.CurrentDocument
h_raum=uidoc.FieldGetText("mf_raum")
h_beschreibung=uidoc.FieldGetText("mf_besprechungspunkt")
h_body=uidoc.FieldGetText("mf_anm_besprechungspunkt")
sdatum= uidoc.Fieldgettext(Cstr("mf_sitzungsdatum"))
szeit= uidoc.FieldGetText(Cstr("mf_uhr_von"))
edatum= uidoc.FieldGetText(Cstr("mf_sitzungsdatum"))
ezeit= uidoc.FieldGetText(Cstr("mf_uhr_bis"))
Call dbmail.OpenMail()
Set uidoc= uiws.composedocument(dbmail.Server,dbmail.FilePath,"Appointment")
Call uidoc.FieldSetText("appointmenttype","0")
Call uidoc.Refresh
Call uidoc.reload
Call uidoc.fieldsettext("subject",h_beschreibung)
Call uidoc.FieldSetText("location",h_raum)
Call uidoc.FieldSetText("body",h_body)
Call uidoc.Refresh
Call uidoc.FieldSetText("startdate",sdatum)
Call uidoc.fieldsettext("starttime",szeit)
Call uidoc.FieldSetText("enddate",edatum)
Call uidoc.FieldSetText("endtime",ezeit)
Call uidoc.Refresh
Call uidoc.save
Call uidoc.close
Msgbox"Der Kalendereintrag wurde erzeugt"
End Sub
-
Alles, was notwendig ist, kannst Du im IBM Lotus Notes and Domino Calendaring & Scheduling Schema (http://www-10.lotus.com/ldd/ddwiki.nsf/dx/cs_schema_toc) (auch als PDF (http://www-12.lotus.com/ldd/doc/uafiles.nsf/docs/WPNotesCSSchema/$File/csschema.pdf)) nachlesen.