Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: bikerboy am 31.05.11 - 17:17:39
-
Hallo,
ich weiss echt nicht mehr weiter.
Folgendes Szenario:
Anwendung läuft über Jahre ohne Probleme. Keiner hat irgendwas geändert (Natürlich nicht). Auf einmal ein Fehler.
Ich bekomme die Meldung "Cannot find external name 'Workspace'"
Also gehe ich in meinen Code und sehe ein "Dim Workspace as NotesUIWorkspace" in der global Sparte meiner Teilmaske. Dann bemühte ich den Debugger um den Status von meiner Variable zu erkunden mit dem Ergebnis "Workspace = Nothing". Also kurze Überprüfung auf Nothing eingebaut und nochmal debuggt. Ergebnis diesmal. Gleiche Fehlermeldung auf einer "LEERZEILE" !!! Da bin ich ja noch gelassen geblieben. Dachte komm Notes hat einen schlechten Tag. Rekompilierst du einfach alles mal. Keine Besserung! dann habe ich den Code komplett geändert, so das in der Aktion überhaupt kein "Workspace" mehr vorkommt. Immer noch die selbe Fehlermeldung. Dann habe ich es mit diversen Neustarts des Notes und Rechners versucht immer ohne Besserung.
Zu guter letzt und total Endmutigt habe ich noch ein einfaches Compact auf die Datenbank versucht, ebenfalls ohne Ergebnis.
Nun bin ich für jeden Vorschlag dankbar.
-
Ein Recompile All unter 8.5.1 kompiliert keine Teilmasken. (da wurde wieder etwas überoptimiert)
Unter 8.5.2 wurde das scheinbar gefixed, dafür klappt es mit den Shared Actions in Views nicht immer
Compiliere die DB mit notes 7 falls du die Möglichkeit hast.
Gruß
Roland
-
Ich hatte letztens ein ähnliches Problem, da hat's eine ScriptLibrary irgendwie zerschossen. Im Client äußerte sich das durch die von Dir beschriebene Meldung 'Cannot find...' und der Designer hat jedes Mal beim Schließen der Library gefragt, ob die Änderungen gespeichert werden sollen, auch wenn ich nix gemacht habe. Mit Änderungen speichern hatte leider nichts gebracht. Durch Neuerstellen der Library und ReSave aller aufrufenden Elemente (bzw. Recompile) ging's dann wieder.
Für mich bedeutet die Meldung, dass eine Library nicht gefunden wird, mglw. hat das gar nichts mit der Variable zu tun...
-
Das üble ist auch, dass 8.5 in den Items $Script und $Script_x den dargestellten *und* den vermeintlich zuletzt funktionierenden Quellcode speichert (angezeigt bekommt man natürlich immer nur das Zeug aus $Script). Das heisst aber nicht, dass dieser Code auch ausgeführt wird.
Wegen der Fehlermeldung: Das heisst in den seltensten Fällen, dass die ScriptLibrary nicht gefunden wird, sondern in der Regel, dass der aufrufende Code nichts von dem aktuellen Zustand (kompiliert!) der ScriptLibrary weiss. Was in der Regel auch verschiedene Ursachen haben kann.
Auf jeden Fall sind die Änderungen in 8.5 zwar gut gemeint, aber haben die Situation erstmal nur verschlimmbessert.
Bernhard
PS: Ein 7er Ersatzclient bietet oftmals tatsächlich die schnellste Reparaturmöglichkeit. Und das kann nicht im Sinne des Erfinders sein.
-
Wegen der Fehlermeldung: Das heisst in den seltensten Fällen, dass die ScriptLibrary nicht gefunden wird, sondern in der Regel, dass der aufrufende Code nichts von dem aktuellen Zustand (kompiliert!) der ScriptLibrary weiss. Was in der Regel auch verschiedene Ursachen haben kann.
Danke für die genauere Beschreibung - klingt auch viel professioneller ;)
-
Man soll unter 8.5 auf jedenfall die Option abhaken, dass man gewarnt wird wenn ein Fehler auftritt, sonst ist es wirklich so wie Bernhard sagt, es gibt 2 Items: $script und $script_error... wobei du mit dem 7er nur das $Script siehst und mit dem 8.5er $script_error falls es vorhanden ist. Es wird dann immer noch der Code aus $script bzw. aus den zuleztzt erstellte Object-Code ausgeführt
Mit 8.5.2 haben sie die Option "Remove Existing Object Code when saving with errors" eingeführt. Das entschärft die Situation etwas. (und bringt wahrscheinlich neue andere Probleme)
Ich entwickle inzwischen gern mit dem 8.5er aber in manchen Dingen hat er sich gegenüber dem 7er verschlimmbessert...
Am tollsten finde ich ja das mit den View-Aktionen wie ich oben erwähnt habe: Es kommt hin und wieder vor, dass ein ViewActionbutton beim Klick den Code eines anderen ausführt... Recompile unter 7 und weg ist es...
Gruß
Roland
-
Am tollsten finde ich ja das mit den View-Aktionen wie ich oben erwähnt habe: Es kommt hin und wieder vor, dass ein ViewActionbutton beim Klick den Code eines anderen ausführt... Recompile unter 7 und weg ist es...
Das verhalten kenne ich nur wenn man SharedActions kopiert.
Ich bin gerade dran und habe den Code mit dem 7er Client kompiliert nun muss ich noch testen ob die 8.5.1er Benutzer wieder arbeiten können.
Dann kam gerade mein Chef rein und meinte ob wir schon den neuesten Bug kennen würden. Es ist wohl so, dass der 8.5.2er Domino FP1 unter Linux beim Runterfahren, dass Data-Verzeichnis manchmal löscht. Interessant oder?
-
So hab nun endlich ein Ergebnis.....Alles gut. Der Recompile mit dem 7er Client hat alles gerichtet.
DANKE