Ausgehend von einer Teilnehmerfrage nach dem Januar-Stammtisch gab Marcel Moré einen kurzen Überblick zum Thema Server-Scripting. Gezeigt wurde ein Script-Template für die Ausführung von Scripten auf dem Server, das mögliche Fallstricke vermeiden hilft. Weiterhin wurden übliche Tücken wie Datei-Trigger, fehlender Kontext oder inkompatible Script-Befehle angesprochen.

Marcel zeigte außerdem 2 Custom-Functions, mit denen sich feststellen lässt ob eine Lösung zur Laufzeit auf einem Server gehostet wird und ob ein Script direkt auf dem Server ausgeführt wird.

Custom Function: IsHosted

Falls( Hole ( HostAnwendungVersion ) <> ""; 1; 0)

Custom Function: OnServer

Falls( MusterAnzahl ( Hole ( ProgrammVersion ); "Server" ); 1; 0)

Script-Template

Ein weiteres Script-Template erlaubt die Delegation eines Scripts vom Client an den Server (PSOS) und berücksichtigt dabei synchrone und asynchrone Ausführung. Auch enthält das Template Mechanismen für Fehlerbehandlung, Logging und Benachrichtigung der User nach Abschluss eines asynchronen Server-Scripts. Die Templates und Custom-Functions sind in den Präsentations-Folien zum Download enthalten.

Batch-Lösung: CronJobs auf dem FileMaker-Server

Abschließend zeigte Marcel eine Batch-Lösung zur zentralen Steuerung von Abläufen auf dem Server. Das Modul erlaubt eine flexible Definition von Triggern nach Datum, Wochentagen und Uhrzeiten sowie automatische Wiederholungen oder Verkettungen von Scripten. Scripte lassen sich sowohl direkt auf dem Server ausführen, als auch auf Robot-Clients, welche per IP-Adresse identifizierbar sind. Bereits laufende Scripte können nachträglich sauber gestoppt werden. Ein Logging-Mechanismus protokolliert die laufenden Tasks und ermittelt deren Zeitdauer. Zusätzliche Abläufe können nachgerüstet werden, ohne dass dafür neue Server-Zeitpläne erforderlich sind. Tasks können zeitgleich ausgeführt werden oder auch angewiesen werden, vorher auf die Beendigung bereits laufender Tasks zu warten.

Eine Beispiel-Datei für die Batch-Lösung kann zur eigenen Verwendung und Weiterentwicklung unter dem folgenden Link geladen werden.


Downloads