Autor Thema: Mit XPinc notes:// - Link aufrufen: Maske findet ScriptLibraries nicht...  (Gelesen 4766 mal)

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
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.

Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
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?

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
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.
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
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).

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
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...
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Ok, zwei Ansätze hätte ich noch:

1. Allen benötigten Code aus der Bibliothek in die Maske kopieren und direkt verwenden

2. Nach dem ersten Klick die Maus unter Strom stellen, dass der User die Finger davon läßt ... ;)

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
zu 1: das hatte ich auch schon überlegt... Das wird aber verdammt viel Code für ne Maske... Allein die "Haupt- Scriptlib" hat 1000 Zeilen, und da sind unsere "Helper"- Libs noch gar nicht mitgezählt (da müsste ich dann halt die benötigten Funktionen rausschneiden)... Und: Wartbarkeit = 0...

zu 2: Den Ansatz finde ich genial. Wie lautet da nochmal der LotusScript- Befehl für? Call NotesSession.EnergizeMouse( "220V", "3A" ) ?
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Was passiert, wenn der langsame zweite Klick irgendwo anders im Browser erfolgt, und nicht auf dem Link? Gleiches Problem, oder nicht? Kommt vielleicht das Problem durch das doppelte Starten des Links?

Falls das der Fall ist, könntest im Browser anstelle eines Links eine Schaltfläche verwenden? Erstens ist es unüblich, auf eine Schaltfläche doppelt zu klicken (ok, der User kann alles), und zweitens könnte in der Schaltfläche etwas sein, dass das doppelte Klicken (innerhalb von vielleicht 20 Sekunden) verhindert (wüßte jetzt nicht konkret, wie, aber nur so als Idee)

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Wizig, das mit der Schaltfläche war auch Bernhards erster Ansatz.. Quasi das Problem "psychologisch" lösen... Aber es geht tatsächlich nur darum, den Focus im falschen Moment zu "stehlen". Wo der zweite Klick stattfindet ist unerheblich.
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Sven Hasselbach

  • Senior Mitglied
  • ****
  • Beiträge: 316
  • Geschlecht: Männlich
    • blog@hasselba.ch
Warum blockst Du nicht der Link mit Javascript nach dem ersten Klick?

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Weil es nicht um den Link geht...
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Sven Hasselbach

  • Senior Mitglied
  • ****
  • Beiträge: 316
  • Geschlecht: Männlich
    • blog@hasselba.ch
Ah, ok. Dachte es ginge um den Fokusverlust beim Switch zu einer Notesmaske bei klick auf XPiNC Links. Na dann, Sorry!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz