Autor Thema: Hotspot oder Agent mit LotusScript läuft nur wenn Schablone offen ?!  (Gelesen 2327 mal)

Offline snore

  • Aktives Mitglied
  • ***
  • Beiträge: 107
Hallo Forum.
ich habe mir in eine Maske einen Hotspot mit einem kleinen Script gebaut, welches das zum Lesen geöffnete Dokument im Backend ändert und aktualisiert.
Das Script läuft sowohl über den Hotspot, als auch testweise über einen Agenten problemlos. Nur wenn ich die Datenbankgestaltung verberge "bewegt" sich bei "Klick" darauf nichts mehr ... ??
-> was ist denn das?  ???
Gruß
snore

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Das kann eigentlich nur passieren, wenn das übersetzte Script abhanden gekommen ist. Ich würde in der offenen Schablone das Script noch einmal editieren. Beim Speichern der Maske erscheint in der Statusleiste des Designers so etwas wie ein "Script wird kompiliert" o.ä.. Nach Aktualisierung der Datenbank mit der geänderten Schablone sollte es auch ohne offene Gestaltung funktionieren.

Möglicherweise hast Du den Hotspot in die Maske kopiert und das Script danach nicht angefasst.

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Ja, das ist ein blödes Problem. Bin ich auch schon reingelaufen. Recompile nützt an der Stelle nicht immer etwas.

Lagere den eigentlichen Code in eine ScriptLib aus. In der Maske referenzierst du auf die Lib und hast in deinem Hotspot nur den Aufruf zu der Methode in der Lib.

Wenn das auch nicht funktioniert, und die Schablone muss unbedingt mit geschlossenem design versehen sein, dann musst du ggfs. eine Mischvariation bauen. Grundsätzlich ist der Code verborgen, einige Elemente sind aber sichtbar. Die Elemente sollten dann wie oben beschrieben nur Referenzen und Aufrufe zu verborgenen Funktionen besitzen.
Ist dann auch bei periodischen Agenten ganz nützlich; wie soll der Endanwender bei verborgenem Design die Ausführungsparameter ändern können.

Wenn es darum geht, IP zu schützen, dann würde ich im klassischen Notes Umfeld zu .lss Dateien greifen, die in der Entwicklungsumgebung liegen. Die werden dynamisch eingebunden.
Dann kann das sonstige design offen sein.
Nachteil. Ein recompile seitens des users ist dann nicht mehr möglich. Aber wozu auch. Ein User hat am Design nichts zu suchen.
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline thkn777

  • Aktives Mitglied
  • ***
  • Beiträge: 176
...im klassischen Notes Umfeld zu .lss Dateien greifen, die in der Entwicklungsumgebung liegen.

Das war auch mein erster Gedanke.

Noch ein Tip.
Manchmal gehen Notes Designelemente einfach kaputt. Falls ALLES nichts hilft und Du am verzweifeln bist - erstelle eine komplett neue Maske. KEIN Copy&Paste benutzen im NotesClient! Scripte kann man versuchen, direkt über die Zwischenablage zu kopieren (also in Agenten reingehen, kompletten Quelltext kopieren, neuen Agenten anlegen, Quelltext einfügen). Für ganz paranoide: Zwischenschritt über Notepad. (nicht lachen! Ist eher zum Heulen ...).

Dann nochmal versuchen. Hatte schon Probleme, bei denen es dann wie durch ein Wunder ging.

Viel Glück,
Th.

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Es gibt da sehr viele Möglichkeiten für das Verhalten.
Auch sowas http://www.eknori.de/2015-07-16/code-quest/ kann möglich sein.

Wir hatten das mal bei Masken und berechneten Feldern. Durch die Abarbeitungsfolge ( von oben links nach unten rechts ) im Notes lief das dann auf einen Fehler und alles nach dem betroffenen Item ging dann auf die Bretter.

Wenn du wirklich den Code schützen möchtest, dann verwende .LSS, und lasse das Design ansonsten offen. Das erspart jede Menge Arbeit im Support und Dev
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Wir arbeiten in der Produktion auschließlich mit geschlossenen und wieder geöffneten Schablonen (Gestaltungselemente sind sichtbar, Scripte und Formeln sind verborgen), und haben noch nie ein solches Verhalten gehabt, das nicht zu reparieren gewesen wäre.

Änderungen von Agentenlaufzeiten nehmen wir mit separaten Agenten/Routinen vor, die die Steuerung der periodischen Agenten verändern, ansonsten erfolgt die Steuerung der Agenten eher über Dokumente (wenige universelle Agenten mit längeren Laufzeiten anstatt viele individuelle Agenten mit kurzen Laufzeiten).

Bei Auslagerung von Scripten in externe Dateien muss es eine zuverlässige Archivierung der Dateien geben, zusätzlich zu den Schablonen. Bei verteilt sitzenden Entwicklern, die nicht alle auf die physikalisch gleichen Quelldateien zugreifen, müssen die Dateien irgendwie synchronisiert werden.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz