Immer wieder ist in der FileMaker Community zu hören und zu lesen, wie toll es sei, Scripts auf dem Server laufen zu lassen und wie viel Performance man dadurch gewinne.
Beim Einsatz des zweifelsohne aussergewöhnlichen Script-Schrittes "Perform Script on Server" ist aber einiges zu beachten.
In diesem Vortrag nähern wir uns dem Thema Schritt für Schritt. Einerseits erfahren wir, wie wir Scripts schreiben müssen, damit sie auf dem Server erfolgreich ausgeführt werden können. Andererseits gehen wir auf die etwas speziellen Anforderungen an den Entwicklungsprozess ein, die dadurch entstehen, dass wir auf dem Server den Debugger nicht mitlaufen lassen können.
2. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
PSoS (Perform Script on Server) – Thomas Hirt
Über den Sprecher
• Studium der Biochemie und des Software Engineering
• betreut seit 25+ Jahren Kleinunternehmen und
Privatkunden in Informatikbelangen
• Geschäftsführer und Inhaber der Tek:Guides GmbH
• Windows Umgebungen als Hauptbetätigungsfeld
• Einsatz von FileMaker als Entwicklungsplattform seit 2009
3. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
PSoS (Perform Script on Server) – Thomas Hirt
Inhalt
• Script Step
• Was kann PSoS?
• Wie funktioniert PSoS?
• Kernpunkte beim Einsatz
• sinnvoller Einsatz
• Tipps zum Entwickeln mit PSoS
• live Demo
• Abschlussbemerkungen
4. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
PSoS (Perform Script on Server) – Thomas Hirt
Script Step
Perform Script on Server [
Specified: From List; "yourScriptName";
Parameter: [your Calculation];
Wait for Completion: On|Off
]
Perform Script on Server [
Specified: By name; [your Calculation];
Parameter: [your Calculation];
Wait for Completion: On|Off
]
5. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
PSoS (Perform Script on Server) – Thomas Hirt
Was kann PSoS?
Ohne PSoS
Mit PSoS
6. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
PSoS (Perform Script on Server) – Thomas Hirt
Was kann PSoS?
synchron, blockierend
7. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
PSoS (Perform Script on Server) – Thomas Hirt
Was kann PSoS?
asynchron,
nicht-blockierend
8. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
PSoS (Perform Script on Server) – Thomas Hirt
Wie funktioniert PSoS?
9. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
PSoS (Perform Script on Server) – Thomas Hirt
Wie funktioniert PSoS?
Initialisierung
10. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
PSoS (Perform Script on Server) – Thomas Hirt
Wie funktioniert PSoS?
• Initialisierung ist ein Schlüsselschritt
• Script OnFirstWindowOpen wird auch auf
dem Server ausgeführt
• Initialisierung kann sehr aufwändig sein
• Es wird KEIN Kontext übermittelt!
• Initialisierung auf dem Client und auf dem
Server haben andere Anforderungen
• auf dem Server sind diverse Skript-
Schritte undefiniert, bzw. nicht erlaubt
• auf dem Server sind graphische Elemente
überflüssig
11. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
PSoS (Perform Script on Server) – Thomas Hirt
Kernpunkte beim Einsatz
• Bei jedem Aufruf von PSoS wird auf dem Server eine vollständige Instanz der
Datenbankdatei initialisiert.
• Beim Einsatz von PSoS ist eine unterschiedliche Initialisierung auf dem Client
und auf dem Server nötig.
• Die Initialisierung auf dem Server sollte möglichst schlank sein und auf die
Ausführung von Skripten ohne jegliche graphische Elemente ausgerichtet sein.
• Es ist sinnvoll, in die Datenbankdatei Layouts speziell für den Einsatz mit PSoS
einzubauen. Diese können in vielen Fällen leer sein.
• Die Skripten, die via PSoS ausgeführt werden, müssen so geschrieben sein,
…
• … K x w , .
• … " " B .
12. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
PSoS (Perform Script on Server) – Thomas Hirt
sinnvoller Einsatz
• Operationen ohne Benutzerinteraktion
• Operationen mit klar definierten Rahmenbedingungen
• aufwändigere Berechnungen oder Operationen auf Datensätzen,
• so dass sich der Aufwand zur Initialisierung auf dem Server lohnt
• so dass die asynchrone Ausführung eine Überlegung wert ist
13. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
PSoS (Perform Script on Server) – Thomas Hirt
Tipps zum Entwickeln mit PSoS
Tipp 1: Weiche im Skript für Ausführung lokal und auf dem Server
Case (
// The file is local and network sharing is switched off.
Get ( MultiUserState ) = 0; True;
// The file is local but network sharing is turned on.
Get ( MultiUserState ) = 1; True;
// The file is hosted on either FMS or FMPA
Get ( MultiUserState ) > 1; False
)
Custom Function: file.isLocal()
If (
PatternCount ( Get ( ApplicationVersion ); "Server" ) > 0;
True;
False
)
Custom Function: file.isRunningOnServer
14. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
PSoS (Perform Script on Server) – Thomas Hirt
Tipps zum Entwickeln mit PSoS
Tipp 1: Weiche im Skript für Ausführung lokal und auf dem Server
If [file.isLocal or file.isRunningOnServer]
# your script steps
Else
Perform Script on Server [
Specified: From List; "yourScriptName";
Parameter: [your Calculation];
Wait for Completion: On|Off
]
End If
15. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
PSoS (Perform Script on Server) – Thomas Hirt
Tipps zum Entwickeln mit PSoS
Tipp 2: Compatibility Ansicht im Script Workspace
16. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
PSoS (Perform Script on Server) – Thomas Hirt
Tipps zum Entwickeln mit PSoS
Tipp 3: Debugging auf dem Client
If [$$DEBUG.MODE or file.isLocal or file.isRunningOnServer]
# your script steps
Else
Perform Script on Server [
Specified: From List; "yourScriptName";
Parameter: [your Calculation];
Wait for Completion: On|Off
]
End If
17. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
PSoS (Perform Script on Server) – Thomas Hirt
Tipps zum Entwickeln mit PSoS
Tipp 4: Serverlogs auswerten
2019-10-08 13:28:14.148 +0200 Informationen 738 fm Datenbank
"PSoS" wird geschlossen durch "filemakeradmin"...
2019-10-08 13:28:14.164 +0200 Informationen 168 fm Datenbank
"PSoS" geschlossen.
2019-10-08 13:28:30.242 +0200 Informationen 737 fm Datenbank
"PSoS" wird geöffnet durch "filemakeradmin"...
2019-10-08 13:28:30.242 +0200 Informationen 184 fm Datenbank
"PSoS" geöffnet.
2019-10-08 13:28:48.351 +0200 Warnung 661 fm SICHERHEIT:
Authentifizierung von Client "admin (PCxyz) [178.133.15.239]" an Datenbank
"PSoS.fmp12" unter Verwendung von "Admin [fmapp]" fehlgeschlagen.
2019-10-08 13:31:22.258 +0200 Informationen 645 fm Zeitplan
"addresses.process - admin 1": Scriptingfehler (101) bei "PSoS :
addresses.process : 30 : Go to Record/Request/Page".
18. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
PSoS (Perform Script on Server) – Thomas Hirt
Live Demo
19. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
PSoS (Perform Script on Server) – Thomas Hirt
Abschlussbemerkungen
• der effektive Nutzen von PSoS hängt von einer Vielzahl von
Rahmenbedingungen ab
• eingesetzte Script-Schritte
• Hardware Client vs. Hardware Server
• Netzwerkverbindung
• Zeitmessungen mit und ohne PSoS sind sinnvoll, um den effektiven Nutzen
richtig einschätzen zu können
• PSoS schützt nicht vor Problemen, die auch sonst bei Mehrbenutzerlösungen
auftreten, wie z.B. gesperrten Datensätzen
• PSoS kann auf dem Server erhebliche oder gar grosse Last erzeugen.
• Anzahl gleichzeitiger Script-Sitzungen lässt sich steuern
• Einstellung in FileMaker Server 18 nur über Kommandozeile zugänglich
• fmsamin SET SERVERCONFIG SCRIPTSESSIONS=10
20. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
PSoS (Perform Script on Server) – Thomas Hirt
Q & R
Vielen Dank für Ihr Interesse!
21. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
PSoS (Perform Script on Server) – Thomas Hirt
Vielen Dank unseren Sponsoren
Danke für das Bewerten dieses Vortrages