Domino 9 und frühere Versionen > ND9: Entwicklung

Mit XPinc notes:// - Link aufrufen: Maske findet ScriptLibraries nicht...

(1/3) > >>

Tode:
Ich habe hier ein Problem, was mich seit Wochen irre macht, und nun endlich die (scheinbare) Ursache gefunden:

Aus XPinc wird über einen notes:// Link eine Maske geöffnet. Diese Maske hat ein Use "BasicLib" im Initialize.
Wird der Link "langsam" Doppelgeklickt (also dass der zweite Klick ins "Initialize" der Maske reinläuft, dann kriege ich reproduzierbar diverse Fehler. Einmal "Cannot find external name yyy", einmal "Duplicate public name xxx", also immer Meldungen, dass die Script- Lib nicht sauber oder doppelt geladen wird.

Nun: Wie "verhindere" ich den Focus- Verlust durch den "fehlerhaften" zweiten Klick in meiner Notes- Maske. ErrorHandling bringt nix, weil der Fehler ja schon beim versuch passiert, die externe Script- Library zu laden.

Jeder Tipp, wie Ihr sowas angehen würdet, würde mir helfen.

Peter Klett:
Hast Du mal probiert, ob es einen Unterschied macht, wenn die Bibliothek in den Declarations der Maske oder weiter oben in den Declarations unter Globals geladen wird?

Tode:
Spielt keine Rolle (leider). Ich habe den Code (also inklusive Use) sogar schon per Execute ausgelagert, und damit erst zur "Runtime" geladen, wenn er im "PostOpen" schon drin ist... Das funktioniert ETWAS zuverlässiger, aber leider immer noch nicht zuverlässig genug.

Eigentlich wollte ich das "non blocking" machen, aber das geht scheinbar nicht. Deshalb öffne ich jetzt -vorerst- eine "Dummy- Maske", die im Postopen mit 10 Zeilen Code das eigentliche Dokument per ws.Dialogbox im Dialog öffnet... Der lässt sich durch wildes geklicke nicht aus dem Tritt bringen... Nur leider ist dann halt der Client blockiert, so lange man in der Maske arbeitet.

Peter Klett:
Ich weiß, dass Du sicherlich schon alle Möglichkeiten durch hast. Was passiert, wenn die Dummy-Maske das Dokument direkt öffnet, ohne Dialogbox?

Zweite Möglichkeit, die mir noch einfällt, das Script des PostOpen in einen Scriptagenten auslagern und im PostOpen per Formelsprache starten (allerdings weiß ich nicht, was Du alles in der Maske gescriptet hast, in meinen Masken wäre das normalerweise nicht so einfach möglich).

Tode:
Das war der erste Ansatz, das Dokument über den Zwischenschritt Dummy- Maske zu starten. Funktioniert auch nicht, wenn der "Focus" im Browser landet, während die zweite Maske lädt.

Die aufgerufene Maske braucht einen NotesTimer, deshalb kann ich das nicht in einem Agenten abfackeln, da wäre der Timer im Eimer, sobald der Agent gelaufen ist.

Hintergrund: Konkret geht es darum, Attachments in XPiNC bearbeitbar zu machen: Der Link öffnet ein Dokument, das wiederum das Attachment mit der zugewiesenen Anwendung startet, und überwacht, wann die Anwendung geschlossen wird (dafür der Timer). Nach Schliessen der Anwendung schreibt das Dokument das geänderte Attachment wieder zurück ins ursprüngliche Dokument und "informiert" die wartende XPage, dass sie nun die Eingabe wieder freigeben kann...

Das Ganze funktioniert (nach vielen Irrungen und Wirrungen) inzwischen richtig gut... Ausser wenn der Benutzer "zu wild rumklickt", dann erhängt sich teilweise sogar der Client an den Fehlermeldungen...

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln