Ich arbeite aktuell mit mapp Script bei Compound Widgets. Dabei fällt mir auf, dass ich in mehreren Compound Widgets immer wieder dieselbe Funktion benötige.
Gibt es mit mapp Script eine Möglichkeit, eine globale .eventscript-Datei im Projekt anzulegen und Funktionen darin zentral zu definieren, um Code-Duplizierung zu vermeiden?
Diese Funktion würde ich in mehreren Compound widgets verwenden. Ich bin mir bewusst, das ich in der globalen Funktion nicht auf «widgets.» und «compound.» - Elemente zugreifen kann.
Da das von B&R explizit ausgeschlossen wurde, kann man nicht einfach Klassen oder ähnliches zentral verwalten.
Variante A: Skript schreiben, das als Precompile-Hook ausgeführt wird und aus deinem “zentralen .eventscript” die Klassen/Funktionen kopiert und in allen anderen .eventscript-Dateien ersetzt.
Variante B: Einen “dauerhaft laufenden Dienst” in einem .eventscript, der via Session-Variable angesprochen werden kann → mittels JSON-Klasse kann da viel gemacht werden. Natürlich muss man bei Parallelisierung auf einiges achten.