Domino 9 und frühere Versionen > ND9: Entwicklung
Client hängt sich im QuerySave auf
schroederk:
Hallo,
ich muss leider nochmals nerven. :-\
Wenn ich im QuerySave der Kalender-Maske das folgende Script einfüge (nach der Prüfung von source.IsNewDoc), dann hängt sich mein Notes Client auf und ich muss den Task abschießen. Auch wenn ich vorher das Lotusscript-Debugging einschalte. Das Debug-Fenster öffnet sich erst gar nicht.
Die zu öffnende DB existiert, Berechtigungen sind vorhanden, nur die beiden Felder RoomName (Text) und RoomInformation (Richtext), ein einziger Eintrag gespeichert.
(Nebenbei: Es ist für mich etwas irritierend, dass hier keine Variablendeklaration erfolgen muss und daher leicht Schreibfehler übersehen werden können.)
Mag da einer von Euch nochmal drüberschauen und meine Schnitzer aufzeigen?
--- Code: --- Set item = source.Document.GetItemValue("Room")
Set db = session.GetDatabase("Server/SRV/Gruppe", "Pfad/confnames.nsf", False)
If Not db.IsOpen Then Call db.Open("", "")
Set view = db.GetView("MyView")
Set doc = view.GetFirstDocument
While Not (doc Is Nothing)
If item.text = doc.RoomName Then
mytext = doc.RoomInformation
Set item2 = source.Document.ReplaceItemValue( "Body", mytext )
Call source.Document.Save(True, False, False)
End If
doc = view.GetNextDocument(doc)
Wend
--- Ende Code ---
koehlerbv:
Kurzer Blick: Diese Zeile
Set item = source.Document.GetItemValue("Room")
ist schon mal falsch: NotesDocument.GetItemValue gibt die Inhalte des Items "Room" zurück und kein Objekt vom Typ NotesItem (siehe Deine weitere Verwendung von item).
Das kann dann schon zum Knall führen.
Bernhard
schroederk:
Danke für den Hinweis.
Ich habe die Zeile(n) geändert, aber der Client hängt sich noch immer auf.
Ist halt blöd, wenn der Compiler nicht meckert und der Client beim Aufruf nicht einfach eine Fehlermeldung rauswirft.
So ist das nervig, den Client immer wieder über den Taskmanager abzuschießen und neu zu starten.
Zeile ist wie folgt geändert (item als Variablenname ist natürliich nicht mehr passend)
--- Code: ---item = source.Document.GetItemValue("Room")(0)
--- Ende Code ---
koehlerbv:
Schreib mal in die Options der Maske (Global) ein Option Declare.
Dann sollte die Zeile auch gleich Quieken:
If item.text = doc.RoomName
item ist bei Dir nach der Änderung nun String. Der hat keine Property "Text". Und doc.Room ist ein Array, also ungleich String.
doc.Room (0) wäre hier analog korrekter gewesen.
Bernhard
schroederk:
Guten Morgen,
ich hatte die Zeile auch geändert gehabt:
--- Code: ---If item = doc.RoomName Then
--- Ende Code ---
Und doc.RoomName ist ein von mir in der eigenen Anwendung erstelltes Feld vom Typ Text. Damit sollte es doch theoretisch passen, oder?
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln