www.filemaker-konferenz.com
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Wie einsetzen und wie entwickeln?
Thomas Hirt
PSoS - Perform Script on Server
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
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
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
]
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
PSoS (Perform Script on Server) – Thomas Hirt
Was kann PSoS?
Ohne PSoS
Mit PSoS
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
PSoS (Perform Script on Server) – Thomas Hirt
Was kann PSoS?
synchron, blockierend
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
PSoS (Perform Script on Server) – Thomas Hirt
Was kann PSoS?
asynchron,
nicht-blockierend
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
PSoS (Perform Script on Server) – Thomas Hirt
Wie funktioniert PSoS?
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
PSoS (Perform Script on Server) – Thomas Hirt
Wie funktioniert PSoS?
Initialisierung
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
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 .
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
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
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
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
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
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".
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
PSoS (Perform Script on Server) – Thomas Hirt
Live Demo
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
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
PSoS (Perform Script on Server) – Thomas Hirt
Q & R
Vielen Dank für Ihr Interesse!
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

FMK2019 PSoS - Perform Script on Server Wie einsetzen und wie entwickeln? by Thomas Hirt

  • 1.
    www.filemaker-konferenz.com 10. FileMaker Konferenz| Hamburg | 16.-19. Oktober 2019 Wie einsetzen und wie entwickeln? Thomas Hirt PSoS - Perform Script on Server
  • 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