Automatisieren von Aufgaben mithilfe von Scripts > Erstellen und Bearbeiten von Scripts > Ausführen von Scripts auf FileMaker Server und FileMaker Cloud
 

Ausführen von Scripts auf FileMaker Server und FileMaker Cloud

Scripts in Dateien, die von FileMaker Server und FileMaker Cloud bereitgestellt werden, 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:

den Scriptschritt „Script auf Server ausführen“ in einem Script, das auf einem Client ausgeführt wird

einen Zeitplan (siehe FileMaker Server Hilfe und FileMaker Cloud-Dokumentation).

Unterschiede bei der Ausführung von serverseitigen Scripts

Ein Script, das auf eine der obigen Methoden gestartet wird, wird von der FileMaker Script Engine (FMSE), einer Komponente von FileMaker Server und FileMaker Cloud, 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 Scriptschritt „Gehe zu Layout“ und Scriptschritt „Ergebnismenge suchen“ 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 Advanced-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 Funktion „Hole ( ScriptErgebnis )“ zu erfassen.

Ein Zeitplan kann eingerichtet werden, das laufende Script zu beenden, 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 Funktion „Hole ( LetzteFehlerNr )“ 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 Funktion „Hole ( ProgrammVersion )“ vor weiteren Schritten, um zu prüfen, ob das Script auf FileMaker Server oder FileMaker Cloud 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 von FileMaker Pro Advanced ein Script, klicken auf Schaltfläche „Neuer Ordner“ 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 und FileMaker Cloud, 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.

Beim Ausführen serverseitiger Scripts werden die Dateien, die die Scripts enthalten, geöffnet und geschlossen. Daher werden der Script-Trigger „BeiErstemFensterÖffnen“ beim Scriptstart und der Script-Trigger „BeiLetztemFensterSchließen“ am Scriptende aktiviert.

Serverseitige Scripts können mit dem Scriptschritt „Script ausführen“ 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 Zeitplan ausgeführt werden, verwenden das im Zeitplan angegebene Konto.

Serverseitige Scripts können auf einem Client keine FileMaker-Warnmeldungen anzeigen, daher verhalten sie sich stets so, als wäre der Scriptschritt „Fehleraufzeichnung setzen“ auf „Ein“ gesetzt. Verwenden Sie in serverseitigen Scripts die Funktion „Hole ( LetzteFehlerNr )“, um Fehlerbedingungen zu behandeln. Zu Ihrer Unterstützung bei der Problembehebung werden Fehler auch in das Ereignisprotokoll auf FileMaker Server und FileMaker Cloud geschrieben.

Clients können keine serverseitigen Scripts stoppen. Jedoch lässt sich ein serverseitiges Script in folgenden Fällen anhalten:

Ein Server-Administrator stoppt das Script, das als separater Client erscheint, dessen Verbindung sich in der FileMaker Server Admin Console oder der FileMaker Cloud Admin Console trennen lässt.

Das laufende Script überschreitet das Zeitlimit, das im Zeitplan, durch den das Script gestartet wurde, angegeben ist.

Das Script trifft auf einen unbekannten Scriptschritt (siehe Scriptschritt „AnwenderAbbruchZulassen setzen“).

Weitere Informationen finden Sie in der FileMaker Server Hilfe und der FileMaker Cloud-Dokumentation.

In serverseitigen Scripts geben Funktionen in Bezug auf Hardware wie „Hole ( SystemIPAdresse )“ Informationen von der Datenbank-Server-Komponente FileMaker Server und FileMaker Cloud zurück, nicht vom Client.

Für serverseitige Scripts ist der Dateizugriff auf den Ordner „Dokumente“ und den temporären Ordner beschränkt. Weitere Informationen finden Sie unter Pfade in serverseitigen Scripts.