Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Gandhi am 02.04.04 - 12:40:53
-
Hmm, wenn ich bestimmte Funktionen im Notes debugge kommen andere Ergebnisse heraus, als wenn ich sie nicht debugge. Das sind noch nicht mal zeitkritische Sachen, z.B. etwa ein AppendDocLink.
Daher jetzt meine Vermutung:
Kennt Ihr Schrödingers Katzen(gedanken)versuch und die Schlußfolgerung Heisenbergs hieraus in Form der Unschärferelation? Im Grunde besagt diese, dass das Beobachten von Vorgängen im Quantenbereich (und meiner Meinung nach auch im Notesbereich) diese beeinflusst...
Vielleicht sollte man der Lotus Marketingabteilung einen Tipp geben, welch ein tolles, futuristisches Feature hier vom 'Quality Engineering' eingebaut wurde.
Ich bin jetzt erst mal so begeistert von dieser Idee, dass ich, nur um meine Frustration zu reduzieren, einen wehrlosen Notes-Entwicklungsclient erst deinstallieren werde und danach wieder installieren werde....zum Glück ist heute Freitag...
-
Da brauchst Du die Quantentheorie nicht hervorzuzupfen. Das ist ziemlich gut bei den Informatik-Theoretikern bekannt, dieses Problem und betrifft bei weitem nicht nur Notes. Einen Grund hast Du schon genannt: Zeitkritische Sachen, wie zum Bleistift Callback-Funktionen in der API, ok, die kommen hier ja nicht in Frage, aber wenn man die Timer-Klasse benutzt, kanns das geben.
Eine andere, häufige Möglichkeit für diese Erscheinung: Irgend eine Objekt-Variable, in der Regel eine geöffnete Datenbank, geht in der Applikation "out of scope" oder wird von einem Unterprogramm dereferenziert, da der Debugger aber auch eine Instanz dieser Variablen besitzt, bleibt die Variable während der Debug - Session gültig, während sie im normalen Lauf der Dinge dereferenziert wird und damit auf Nothing geht.
Bekommst Du einen "Variable not set" oder so Fehler? Dann ist es diese Erscheinung.
-
Ich habe von diesem Phänomen schon häufig gehört, aber es noch nie selber erlebt - oder es war erklärbar, wie es Jens schon beschrieb.
Bernhard
-
.... ist natürlich nicht ganz einfach zu isolieren, so ein Problem ....
-
Ich bekomme gar keinen Fehler....genau das ist ja das Problem.
Ich erstelle ein DocLink in einem RTI und dieser ist auch im Doc vorhanden.
Beim Befehl:
Set UIDoc = workspace.EditDocument(True, Doc)
wird dann der im Doc vorhandene Link gelöscht - aber nur, wenn ich vorher im Debugger nicht auf das RTI oder das Doc getippt habe.
Ich weiß, dass es exakt dieser Befehl ist, der den Link löscht/dereferenziert, da Doc immer korrekt bleibt, aber
UIDoc.document<>Doc ist (wenn nicht debuggt wurde).
Maskenformeln, die das Feld mit dem Link beeinflussen könnten gibt es keine...
(der Vollständigkeit halber: Notes 5.07a)
Jetzt bin ich doch im falschen Forumsteil gelandet...
-
Speicherst Du das Dokument, bevor Du es im UI öffnest? Das scheint mir ein typisches RT-Problem zu sein. Wenn Du da Infos dazu haben willst, dann maile mal Normunds Kalnbernzins an und frage, welche Erfahrungen er damit gemacht hat. Kontaktangaben findest Du unter Documentation auf folgender web-seite: http://www.rtlib.com
-
Nein, das Dokument wird nicht gespeichert.
Den Link werde ich gleich mal testen - vielen Dank.
-
Lösung gefunden:
Einfach den Link erst nach dem UIDoc launch im UIDoc.document erstellen....
-
Wieder eine logische Erklärung ;)
UIDocument und Backend-Document wussten ja nix voneinander und entwickelten so ein Eigenleben ...
Bernhard
-
Das kann man so nicht sagen: Das UI Dokument wurde ja aus dem Backenddokument erstellt. Warum dann das UIdoc.document nicht die Werte vom doc übernommen hat - das hat dann wohl was mit LQE oder Sonnenflecken zu tun ;-)
-
Yipp - das ist jetzt wirklich merksam ...
-
Also das Problem ist, dass tatsächlich beim Sprung vom Doc zum UIDoc sämtliche richtText-Inhalte verworfen werden, wenn das doc vorher nicht gespeichert war oder der Debugger mithilft...kann doch eigentlich nur ein Bug sein, oder?
Habe das jetzt alles mit einem Button erledigt. Mir doch egal wie das aussieht...
-
wenn das doc vorher nicht gespeichert war
Na, das ist doch der genau der altbekannte Punkt: RTF-Inhalte werden erst sichtbar, wenn das Dokument auch tatsächlich on-disc ist. Das Dokument muss definitiv erst gespeichert sein, bevor es im Frontend geöffnet wird.
Ansonsten trifft das zu, was Jens schon über die "erweiterten Möglichkeiten" des Debuggers geschrieben hat.
Das Ganze ist kein Bug, sondern macht durchaus Sinn im Rahmen der Architektur eines Notes-Dokuments (und der Aufgaben des Debuggers).
Bernhard