Script auf Server mit Callback ausführen

Führt ein Script auf dem Server aus, auf dem sich die aktuelle Datei befindet, ohne den Client anzuhalten, und führt das angegebene Callback-Script auf dem Client aus, wenn das Server-Script fertig ist.

Optionen 

  • Angegeben:

    • Aus Liste gestattet Ihnen, das auszuführende Script auszuwählen.

    • Nach Name gestattet Ihnen, den Scriptnamen über eine Formel anzugeben. Beim Scriptnamen wird nicht zwischen Groß- und Kleinschreibung unterschieden.

  • Parameter gibt einen Scriptparameter für das angegebene Script an.

  • Angegebenes Callback-Script ist das auf dem Client auszuführende Script, nachdem das Script auf dem Server abgeschlossen wurde. Auswahl:

    • Aus Liste gestattet Ihnen, das auszuführende Script auszuwählen.

    • Nach Name gestattet Ihnen, den Scriptnamen über eine Formel anzugeben. Beim Scriptnamen wird nicht zwischen Groß- und Kleinschreibung unterschieden.

  • Parameter gibt einen Scriptparameter für das angegebene Callback-Script an.

  • Status gibt an, wie ein aktuell ausgeführtes Script behandelt wird, wenn das Callback-Script ausgeführt wird. Die Optionen sind Fortsetzen, Abbrechen, Beenden, Fortfahren und Pausieren. Weitere Informationen finden Sie unter Optionen für die Behandlung des aktuellen Scripts beim Starten neuer Scripts.

Kompatibilität 

Produkt Unterstützt

FileMaker Pro

Ja

FileMaker Go

Ja

FileMaker WebDirect

Ja

FileMaker Server

Nein

FileMaker Cloud

Nein

FileMaker Data API

Nein

Custom Web Publishing

Nein

Ursprung in Version 

20.1

Beschreibung 

Die aktuelle Datei muss auf FileMaker Server oder FileMaker Cloud bereitgestellt werden. Andernfalls gibt der Scriptschritt einen Fehler zurück. Weitere Informationen finden Sie unter Ausführen von Scripts auf FileMaker Server und FileMaker Cloud.

Das Callback-Script wird so geplant, dass es auf dem Client ausgeführt wird, nachdem ein aktuelles Script abgeschlossen wurde, genau wie Scripts, die durch den Scriptschritt „BeiTimer-Script installieren“ und den Script-Trigger „BeiFensterTransaktion“ ausgelöst werden. Der Kontext, in dem das Script ausgeführt wird, ist unbekannt und kann nicht zuverlässig mit dem Kontext übereinstimmen, in dem dieser Scriptschritt ausgeführt wurde. Verwenden Sie bei Bedarf den Parameter des Callback-Scripts, um ausreichend Kontext zurückzugeben, damit es wie erwartet auf dem Client ausgeführt werden kann, z. B. das zu verwendende Layout und die Ergebnismenge.

Hinweis  Wenn Sie eine Formel als Parameter im Callback-Script angeben, wird die Formel ausgewertet, wenn das Callback-Script auf dem Client ausgeführt wird.

Im folgenden Beispiel wird nichts zurückgegeben, da $data nicht existiert, wenn das Callback-Script auf dem Client ausgeführt wird.

  • Caller

    Variable setzen [ $data ; Wert: 1 ]

    Script auf Server mit Callback ausführen [ Angegeben: Aus Liste ; "Test" ; Parameter: ; Angegebenes Callback-Script: Aus Liste ; "Callback" ; Parameter: $data ; Status: Fortsetzen ]

  • Test

    Variable setzen [ $data ; Wert: 2 ]

  • Callback

    Variable setzen [ $param ; Wert: Hole ( ScriptParameter ) ]

    Eigenes Dialogfeld anzeigen [ $param ]

Hinweise 

  • Das Callback-Script wird in den folgenden Szenarien nicht aufgerufen:

    • Der Server oder Client wird unerwartet beendet.

    • Der Benutzer beendet den Client oder schließt die Datei, bevor das Script auf dem Server abgeschlossen wurde.

    • Die Netzwerkverbindung wird während der Ausführung des Scriptschritts unterbrochen. Eine erneute Verbindung innerhalb von 10 Minuten nach Beendigung des Server-Scripts führt jedoch dazu, dass das Callback-Script ausgeführt wird.

  • Mehrere Instanzen dieses Scriptschritts können nacheinander ausgeführt werden. Die Callback-Scripts werden in der Reihenfolge ausgeführt, in der diese Scriptschritte abgeschlossen werden.

  • Wenn kein Callback-Script angegeben ist, wird dieser Scriptschritt ähnlich wie der Scriptschritt „Script auf Server ausführen“ ausgeführt.

Beispiel 1 

Führt ein Script auf dem Server aus und sendet den aktuellen Layoutnamen, die aktuelle KundenID und die E-Mail-Adresse des Kunden als Scriptparameter. Der Server navigiert zum im Parameter angegebenen Layout und Datensatz, speichert einen Snapshot-Link des aktuellen Datensatzes, sendet den Snapshot-Link an die im Parameter angegebene E-Mail-Adresse und gibt ein Ergebnis zurück. Der Client holt das Scriptergebnis vom Server und zeigt es in einem eigenen Dialogfeld an.

Hauptscript: Snapshot-Link per E-Mail senden (Client)

Kopieren
Script auf Server mit Callback ausführen [ Angegeben: Aus Liste ; "Snapshot-Link per E-Mail senden (Server)" ; 
Parameter: Liste ( Hole ( LayoutName ) ; Kunden::ID ; Kunden::E-Mail ) ; 
Angegebenes Callback-Script: Aus Liste ; "Vollständige Mitteilung (Client)" ; Parameter: ; Status: Fortsetzen ]

Teilscript: Snapshot-Link per E-Mail senden (Server)

Kopieren
Gehe zu Layout [ HoleWert ( Hole ( ScriptParameter ) ; 1 ) ; Animation: Keine ]
Suchenmodus aktivieren [ Pause: Aus ]
Feldwert setzen [ Kunden::ID ; HoleWert ( Hole ( ScriptParameter ) ; 2 ) ]
Ergebnismenge suchen [ ]
Variable setzen [ $PFAD ; Wert: Hole ( TemporärerPfad ) & "Snapshot.fmpsl" ]
Datensätze als Snapshot-Link speichern [ "$PFAD" ; Aktueller Datensatz ; Ordner erstellen: Aus ]
E-Mail senden [ Über SMTP-Server senden ; Ohne Dialogfeld ; An: HoleWert ( Hole ( ScriptParameter ) ; 3 ) ; "$PFAD" ]
Aktuelles Script verlassen [ Textergebnis: "Snapshot-Link gesendet." ]

Callback-Script: Vollständige Mitteilung (Client)

Kopieren
Eigenes Dialogfeld anzeigen [ Hole ( ScriptErgebnis ) ]