In unserem Podcast diskutiert Thomas Bahn über Nutzen, Anwendungen und Erfahrungen aus den Bereichen Chatbots und Künstliche Intelligenz. Mehr erfahren

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

von Thomas,
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 HCL Notes HCL Notes Traveler Entwicklung

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

Sie haben Interesse an diesem Thema?

Gerne bieten wir Ihnen eine individuelle Beratung oder einen Workshop an.

Kontaktieren Sie uns

Weitere interessante Artikel

Sie haben Fragen?

Wenn Sie mehr über unsere Angebote erfahren möchten, können Sie uns jederzeit kontaktieren. Gerne erstellen wir eine individuelle Demo für Sie.

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 416
Vertrieb: +49 4307 900 402

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