Leerer Objekt-Handle-Fehler in Lotus Notes 8.5 Standard-Client

von Artur Eley,
assono GmbH, Standort Kiel,

Als ich vor kurzem eine neue Anwendung bei einem Kunden installiert hatte, konnte ich beim Öffnen der installierten Datenbank einen nicht alltäglichen Fehler beobachten: A picture named M2

Ein Blick ins Fehlerprotokoll brachte die folgende Zeile als Ursache des Fehlers zum Vorschein:
workspace.EditDocument(false, doc, true)

Anwendungen auf Basis des assono Framework erlauben dem Verwalter der Datenbank, durchgeführte Änderungen und Erweiterungen mit Hilfe eines Dokuments "Letzten Nachrichten" zu hinterlegen. Beim Öffnen der Datenbank wird dann jeder Benutzer einmalig (nach jeder Änderung des Dokuments) über die Neuerungen informiert. Hierbei wird mit workspace.EditDocument das Dokument im Notes-Client geöffnet und angezeigt.

Es handelte sich hier um eine Notes-Datenbank, die mit dem Domino Designer 6.5 entwickelt wurde. Hierbei gab es bisher keinerlei Probleme, da diese Funktion bereits bei mehreren Kunden eingesetzt wird. Insofern stutzte ich ein wenig darüber, wie es zu diesem Fehler denn kommen konnte. Der Kunde hat Lotus Notes 8.5 Standard-Clients im Einsatz. Und in der Tat, ein kurzer Test mit einem 7er Notes-Client  brachte die Erkenntnis, dass das Problem nur von dem 8.5er Standard-Client verursacht werden konnte.

Das Problem tritt in der folgenden Konstellation auf: Wenn beim Öffnen einer Datenbank in einer Rahmengruppe eine weitere Rahmengruppe mit einer dort hinterlegten Ansicht geöffnet wird und gleichzeitig im Datenbank-Script im Event PostOpen versucht wird, ein Dokument mit workspace.EditDocument zu öffnen, dann kommt der 8.5er Client ins Straucheln. Offenbar ein Problem der konkurrierenden Tabs, in der das Dokument und der Rahmen mit der Ansicht geöffnet wird. Die Suche nach einer Lösung im Web und der Lotus Knowledge Base brachte keinen Erfolg. Mein Ansatz war, nach dem Öffnen der Ansicht, verzögert das Dokument zu öffnen. Also bediente ich mich der Klasse NotesTimer. Hiermit war es mir möglich, das Öffnen der Startansicht in der Rahmengruppe und des Dokumentes voneinander zu entkoppeln. Und siehe da, es funktionierte tatsächlich.

Zum Ausprobieren habe ich eine kleine Testdatenbank erstellt (siehe unten), mit der der Fehler im Notes 8.5er Standard-Client reproduziert werden kann. Aus Gründen der Übersicht habe auf das Error-Handling und eine schöne Optik in dem Beispiel verzichtet. Im Fokus stand nur das Problem und die Lösung.

Hinweise zur Beispiel-Datenbank:
Die Datenbank öffnet im Lotus Notes 8.5 Standard-Client mit der oben gezeigten Fehlermeldung. Für die Lösung mit dem NotesTimer ist im Datenbank-Script die Funktion openLatestNews und die Script-Bibliothek OpenLatestNews auszukommentieren und unter Options die Script-Bibliothek OpenLatestNewsWithTimer einzubinden.

Im Datenbank-Script wurde bisher im Event Postopen aus der Script-Bibliothek OpenLatestNews die Funktion openLatestNews aufgerufen. Diese öffnete das Dokument mit den letzten Nachrichten. Durch die Ergänzung mit dem Timer wird jetzt nur im Datenbank-Script die Script-Bibliothek OpenLatestNewsWithTimer eingebunden. Durch Öffnen der Datenbank wird im Initalize der Bibliothek der Timer mit einer Laufzeit von 1 Sekunde initialisiert. Nach Ablauf dieser Zeit wird dann die Funktion openLatestNews wie gewohnt aufgerufen. Hierbei darf (auch im Fehlerfall) nicht vergessen werden, den Timer wieder zu deaktivieren.

zip.gif latest-news-error.zip

Fachbeitrag IBM Notes IBM Notes Traveler Entwicklung

Sie haben Fragen zu diesem Artikel? Kontaktieren Sie uns gerne: blog@assono.de

Sie wollen eine individuelle Lösung? Kontaktieren Sie uns

Weitere interessante Artikel

IBM Cognos Analytics 11.0.9 (R9)

IBM Cognos Analytics 11.0.9 (R9)

Erst Mitte November hatten wir über Neuerung in der Version 11.0.8 gebloggt. Knapp ein Monat später veröffentlicht IBM die Version 11.0.9 … Mehr

von
Filip Meyer
,

Sie haben Fragen? Wir sind für Sie da.

Wenn Sie mehr über unsere Angebote erfahren möchten, können Sie uns jederzeit kontaktieren. Sie können uns auf verschiedene Weisen für eine unverbindliche Erstberatung erreichen:

assono GmbH

Standort Kiel (Zentrale)
assono GmbH
Lise-Meitner-Straße 1–7
24223 Schwentinental

Standort Hamburg
assono GmbH
Bornkampsweg 58
22761 Hamburg

Telefonnummern:
Zentrale: +49 4307 900 407
Techn. Hotline: +49 4307 900 403
Vertrieb: +49 4307 900 402

E-Mail-Adressen:
kontakt@assono.de
bewerbung@assono.de