Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: eknori am 17.02.04 - 15:35:51
-
Habe eben mit einem Kollegen telefoniert. Er sollte mal auf einem 5er Server ein Script für mich testen.
1. das Script lief sauber durch ( *uff* )
2. der Kollege fragte, ob er irgendwo noch das feld Form setzen könnte. Klar kann er das; er ist kein Designer, daher habe ich ihm das am telefon mal so durchgegeben.
"Vor das call doc.save fügst du eine Zeile ein
Call item.EmbedObject ( EMBED_ATTACHMENT, "", OVL_FILE )
Set item1= doc.replaceitemvalue("Form","Empty")
Call doc.save ( True, True )
er hat das dann auch gleich gemacht und abgespeichert. Dann rief er zurück und sagte mir, daß das Feld Form immer noch den alten Wert hat. Bins dann nochmal durchgegangen. Er immer schön "Ja,ja, genau so steht das hier". "Schick mir mal den Kram!"
und was musste ich sehen ?
Set item1= doc.replayeitemvalue("Form","Empty")
und trotzdem lässt sich der Code einwandfrei abspeichern.
Das der Agent dann auch sauber durchgelaufen ist ist kein wunder; steht doch am Anfang des Codes "On error resume next".
;D
-
ach ja, man kann da übrigens reinschreiben, was man will
Set item1= doc.DeppenAllerWeltVereinigtEuch("Form","Empty")
-
@All
jetzt mal im Ernst, habe ich da was nicht mitbekommen ??
Sitze jetzt hier zuhause am Laptop und kann das fehlerhafte Verhalten reproduzieren
(http://www.eknori.de/_data/eatmyass.jpg)
ich bin mir ziemlich sicher, daß "EatMyAss" nie member der NotesDocument Clas war.
bei obj.extrackt mosert der Designer dann wie erwartet
-
Das ist der gravierende Nachteil der sog. Short-Notation für
var = doc.GetItemValue("AFieldName")
schreibt man
var = doc.AFieldName (0)
Damit ist aber nach doc-Dot jeder beliebige (fast) Bezeichner möglich: ist das kein Member der Klasse, dann ists möglicherweise ein Feldname ........ grausam aber wahr.
-
ich bin mir auch sicher, das EatMyAss nicht ein Feldname in meiner Appl ist. Ich meine nur, war das schon immer so ?? Wenn ja, ist es mir nie aufgefallen ...
-
Das war immer so. Und der Feldname braucht nicht zu existieren, das kann ja bei einem Notes-Dokument eh erst zu Runtime festgestellt werden, welche Felder existieren, da wir ja keine fixe Struktur vor uns haben.
-
HMM. OK, *seufz*
-
Eigentlich müsste der dusslige Scriptinterpreter doch kapieren, dass
doc.replayeitemvalue("Form","Empty")
keine Extended Class Syntax ist, oder?!
Ein String - genauer gesagt zwei - als Parameter ist doch wohl nicht korrekt.
Andreas
-
Eigentlich schon, aber ich hab auch schon gemerkt, dass das Ding an der Stelle ziemlich duselig ist. Macht hier nicht wirklich viel aus, da diese extended Syntax ja eh fast alles zulässt, die Chance, dass der dort einen Fehler entdecken kann, ist gering -- was bei mir seit eh und je zwiespältige Gefühle hinterlassen hat. Einerseits ist es sehr parktisch, andererseits erkauft man sich diesen Komfort zum Preis eines teilweisen "Option NoDeclare" ......... Ulrich, ich schliesse mich Deinem *seufz* durchaus an.