Ausführen von Scripts auf FileMaker Server
Scripts in Dateien, die FileMaker Server bereitstellt, werden gewöhnlich auf dem
Client ausgeführt. Sie können jedoch ein Script auf dem Server (ein serverseitiges Script) ausführen, indem Sie Folgendes verwenden:
Abweichende Ausführung von Scripts auf FileMaker Server
Ein Script, das auf eine der obigen Methoden gestartet wird, wird von der FileMaker Script Engine (FMSE), einer Komponente von FileMaker Server, ausgeführt. Bei der FMSE handelt es sich um einen Client, der jedes Script in einer separaten Sitzung auf dem Server ausführt. Daher gilt für serverseitige Scripts:
•Sie verfügen nicht über den Kontext des Clients (aktuelles Layout, Ergebnismenge, Sortierfolge, Datensatz, globale Feldvariablen oder Werte lokaler oder globaler Variablen).
Mithilfe des Scriptparameters im Scriptschritt „Script auf Server ausführen“ können Sie Informationen über den Kontext des Clients übergeben. Das serverseitige Script kann anhand der Informationen in Scriptschritten wie
Gehe zu Layout Scriptschritt und
Ergebnismenge suchen Scriptschritt das Layout und die Ergebnismenge angeben, das bzw. die beeinflusst werden soll.
•Sie unterstützen Scriptparameter und Scriptergebnisse mit bis zu 1 Million Zeichen.
•Sie können nur auf andere FileMaker Pro-Dateien zugreifen, wenn die beiden folgenden Situationen gegeben sind:
•Die Dateien befinden sich auf demselben Host.
•Die Dateien wurden bereits von dem Client geöffnet, der das serverseitige Script gestartet hat, oder wurden mit einem Kontonamen und einem Passwort im Dialogfeld „Dateioptionen“ der Datei eingerichtet.
Serverseitige Scripts werden auf dieselbe Weise ausgeführt, unabhängig davon, wie sie gestartet wurden. Allerdings gelten folgende Ausnahmen:
•Ein Client, der den Scriptschritt „Script auf Server ausführen“ verwendet, hat die Option, auf die Beendigung des Scripts durch den Server zu warten und das Ergebnis mithilfe der
Hole ( ScriptErgebnis ) Funktion zu erfassen.
•Ein FileMaker Server-Zeitplan kann eingerichtet werden, um das laufende Script abzubrechen, wenn das angegebene Zeitlimit erreicht wird.
Umgang mit nicht unterstützten Scriptschritten
Viele Scriptschritte werden durch die FMSE unterstützt. Allerdings wird durch einen nicht unterstützten Scriptschritt Fehler 3 („Befehl nicht verfügbar“) zurückgegeben, der nicht unterstützte Schritt wird ausgelassen und das Script fährt mit dem nächsten Schritt fort. Um nicht unterstützte Schritte zu behandeln, kann Ihr Script den Scriptschritt „Wenn“ in folgenden Kombinationen nutzen:
•die
Hole ( LetzteFehlerNr ) Funktion nach einem Schritt, um zu prüfen, ob dieser Schritt unterstützt wird, und ggf. stattdessen unterstützte Schritte auszuführen. Beispielsweise wird der Scriptschritt „Datei öffnen“ durch die FMSE nicht unterstützt, d. h. das folgende Script würde auf dem Server diesen Schritt auslassen und im Ergebnis „nicht unterstützt“ liefern.
Datei öffnen [Ausgeblendet öffnen: Aus; "Rechnungssicherung"]
Wenn [Hole ( LetzteFehlerNr ) = 3]
Aktuelles Script verlassen [ Textergebnis: "nicht unterstützt"]
Ende (wenn)
•die
Hole ( ProgrammVersion ) Funktion vor weiteren Schritten, um zu prüfen, ob das Script auf FileMaker Server ausgeführt wird, und dann nur unterstützte Schritte auszuführen. Beispiel:
Wenn [ MusterAnzahl ( Hole ( ProgrammVersion ) ; "Server" ) > 0 ]
# Mit Scriptschritten fortfahren, die die FMSE unterstützt
Ende (wenn)
Um zu sehen, welche Scriptschritte durch die FMSE unterstützt werden, öffnen Sie im Scriptarbeitsbereich ein Script, klicken auf
und wählen dann
Server. Nicht unterstützte Scriptschritte werden in einer anderen Farbe angezeigt. Sie können auch für jeden Scriptschritt in der Kompatibilitätstabelle unter
Scriptschritte nachsehen.
Gründe für das Ausführen eines Scripts auf dem Server
•Höhere Leistung durch geringeren Netzwerkverkehr zwischen Client und Server
•Auslagern langwieriger Aufgaben von langsameren Clients auf einen schnelleren Server
•FileMaker Go-Clients die Nutzung von
Plugins ermöglichen, die auf FileMaker Server, aber nicht in FileMaker Go unterstützt werden
•Verwendung der Scriptschritte „Datensätze importieren“ oder „SQL ausführen“ mit einer
ODBC-
Datenquelle, die den
DSN des Servers nutzt
Hinweise
•Wenn Datensätze von einem Client gesperrt sind, können serverseitige Scripts nicht auf ungespeicherte Daten zugreifen oder den Inhalt dieser Datensätze ändern.
•Serverseitige Scripts können mit dem
Script ausführen Scriptschritt Teilscripts ausführen, die auch auf dem Server ablaufen, sofern sich diese Teilscripts in Dateien auf demselben Server befinden und bereits vom Client geöffnet wurden.
•Scripts, die von „Script auf Server ausführen“ ausgeführt werden, nutzen dasselbe Konto wie der Client. Scripts, die von einem FileMaker Server-Zeitplan ausgeführt werden, verwenden das im Zeitplan angegebene Konto (siehe
FileMaker Server Hilfe). In der Berechtigung des Kontos muss das erweiterte Zugriffsrecht „fmapp“ aktiviert sein. Weitere Informationen finden Sie unter
Bearbeiten der erweiterten Zugriffsrechte für eine Berechtigung.
•Serverseitige Scripts können auf einem Client keine FileMaker-Warnmeldungen anzeigen, daher verhalten sie sich stets so, als wäre der
Fehleraufzeichnung setzen Scriptschritt auf „Ein“ gesetzt. Verwenden Sie in serverseitigen Scripts die
Hole ( LetzteFehlerNr ) Funktion, um Fehlerbedingungen zu behandeln. Zu Ihrer Unterstützung bei der Problembehebung werden Fehler auch in das Ereignisprotokoll auf FileMaker Server geschrieben.
•Clients können keine serverseitigen Scripts abbrechen. Jedoch lässt sich ein serverseitiges Script in folgenden Fällen abbrechen:
•Ein Server-Administrator stoppt das Script, das als separater Client erscheint, dessen Verbindung sich in der FileMaker Server Admin Console trennen lässt.
•Das laufende Script überschreitet das Zeitlimit, das im FileMaker Server-Zeitplan, durch den das Script gestartet wurde, angegeben ist.
Weitere Informationen finden Sie in der
FileMaker Server Hilfe.
•In serverseitigen Scripts geben Funktionen in Bezug auf Hardware wie Hole ( SystemIPAdresse ) Informationen von der Datenbank-Server-Komponente FileMaker Server, nicht vom Client, zurück.