Automatisera uppgifter med scripts > Skapa och redigera script > Om att köra scripts på FileMaker Server och FileMaker Cloud
 

Om att köra scripts på FileMaker Server och FileMaker Cloud

Script i filer som finns i FileMaker Server och FileMaker Cloud körs vanligtvis på klienten. Du kan dock köra ett script på servern (ett script på serversidan) genom att använda:

scriptsteget Utför script på server i ett script som körs i en klient

ett schema (se FileMaker Server Hjälp och dokumentation för FileMaker Cloud)

Hur script på serversidan körs annorlunda

Ett script som startas av dessa metoder körs av FileMaker Script Engine (FMSE), en komponent av FileMaker Server och FileMaker Cloud. FMSE är en klient som kör varje script i en separat session på servern. Det leder till att script på serversidan:

Inte har klientens sammanhang (aktuell layout, hittade poster, sorteringsordning, post, fält som använder global lagring och lokala eller globala variabelvärden).

Du kan skicka information om klientens sammanhang till ett script på serversidan med hjälp av scriptparametern i scriptsteget Utför script på server. Scriptet på serversidan kan använda den informationen i scriptsteg som scriptsteget Gå till layout och scriptsteget Utför sökning för att ange vilken layout och vilka hittade poster som det ska agera på.

Har stöd för scriptparametrar och scriptresultat på upp till 1 miljon tecken.

Kan bara komma åt andra FileMaker Pro Advanced-filer när följande stämmer:

filerna finns hos samma värd

filerna har redan öppnats av den klient som startade scriptet på serversidan, eller ställts in med ett kontonamn och lösenord som anges i filens dialogruta för filtillval

Script på serversidan körs på samma sätt oavsett hur de startas, förutom följande:

En klient som använder scriptsteget Utför script på server kan vänta på att scriptet körs klart på servern och använda funktionen Get ( Scriptresultat ) för att samla in resultatet.

Ett schema kan ställas in för att avsluta om det script som körs överskrider den angivna tiden.

Hantera scriptsteg som inte stöds

Många scriptsteg stöds av FMSE. Om du däremot försöker utföra ett scriptsteg som inte stöds returneras fel 3 (Kommandot är inte tillgängligt). Scriptet hoppar över de steg som inte stöds och fortsätter till nästa. Om du vill hantera steg som inte stöds kan scriptet använda If-scriptsteget med:

Funktionen Get ( SenasteFel ) efter ett steg för att kontrollera om steget inte stöds och utför sedan de steg som stöds istället. Scriptsteget Öppna fil stöds till exempel inte av FMSE, så följande script som körs på servern kommer att hoppa över det steget och returnera "stöds inte" i resultatet.

Öppna fil [Öppna dold: Av; "Fakturasäkerhetskopior"]
If [Get (SenasteFel) = 3]
Exit Script [ TextResultat: "stöds inte" ]
End If

Funktionen Get ( Programversion ) före andra steg för att kontrollera om scriptet körs i FileMaker Server eller FileMaker Cloud och utför sedan bara de steg som stöds. Till exempel:

If [ PatternCount ( Get (Programversion) ; "Server" ) > 0 ]
# Fortsätt med scriptsteg som stöds av FMSE
End If

Om du vill se vilka scriptsteg som stöds av FMSE går du till Scriptfönster i FileMaker Pro Advanced. Öppna ett script, klicka på Knappen Ny mapp och välj sedan Server. Scriptsteg som inte stöds visas i en annan färg. Du kan även referera till kompatibilitetstabellen för varje scriptsteg i Scriptsteg.

Anledningar till att köra ett script på servern

För att förbättra prestandan genom att minska mängden nätverkstrafik mellan klient och server.

För att avlasta långvariga uppgifter från långsammare klienter till en snabbare server.

För att tillåta att FileMaker Go-klienter utför uppgifter som kräver plugin-program, vilket stöds på FileMaker Server och FileMaker Cloud men inte i FileMaker Go.

För att använda scriptstegen Importera poster eller Utför SQL med en ODBC-datakälla som använder serverns DSN.

Kommentarer 

Om poster är låsta av en klient kan inte scripts som utförs på serversidan komma åt icke-verkställda data eller ändra innehållet i sådana poster.

När du kör script på serversidan öppnas och stängs de filer som innehåller scripten. Därför är scripttriggern VidFörstaFönsterÖppna aktiverad när scriptet startar och scripttriggern VidSistaFönsterStäng aktiveras när scriptet avslutas.

Script på serversidan kan använda scriptsteget Utför script för att utföra delscript som också körs på servern. Det gäller bara om dessa delscript finns i filer på samma server och redan har öppnats av klienten.

Script som körs av Utför script på server använder samma konto som klienten. Script som körs av ett schema använder det konto som anges i schemat.

Script på serversidan kan inte göra så att en klient visar FileMaker-varningsmeddelanden som när script körs på klienter, så script på serversidan utförs alltid som om scriptsteget Manuell felhantering vore På. Använd funktionen Get ( SenasteFel ) i script på serversidan för att hantera fel. För att hjälpa dig att felsöka problem skrivs även fel i händelseloggen i FileMaker Server och FileMaker Cloud.

Klienter kan inte stoppa script på serversidan. Ett script på serversidan kan dock stoppas om:

en serveradministratör stoppar scriptet, vilket visas som en separat klient som kan kopplas från i FileMaker Server Admin Console eller FileMaker Cloud Admin Console

scriptet som körs överskrider den tid som angetts i det schema som startade det

scriptet stöter på ett okänt scriptsteg (se scriptsteget Tillåt användaren att avbryta)

Se FileMaker Server Hjälp och dokumentation för FileMaker Cloud.

I script på serversidan returnerar funktioner som är relaterade till maskinvara (till exempel Get (SystemIPAddress) information från databasserverkomponenten i FileMaker Server och FileMaker Cloud, inte från klienten.

När det gäller script på serversidan är filåtkomsten begränsad till dokumentmappen och den tillfälliga mappen. Mer information finns i Sökvägar i script på serversidan.