Automatisera uppgifter med scripts > Skapa och redigera script > Om att köra FileMaker-scripts på FileMaker Server
 
Om att köra FileMaker-scripts på FileMaker Server
Script i filer som finns i FileMaker Server 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 FileMaker Server-schema (se FileMaker Server Hjälp)
Så här körs script på olika sätt i FileMaker Server
Ett script som startas av dessa metoder körs av FileMaker Script Engine (FMSE), en komponent av FileMaker Server. 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 Gå till layout och 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-filer när båda av 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 FileMaker Server-schema kan ställas in för att avbryta 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 gömt: 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 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. Öppna ett script, klicka på Kompatibilitetsknapp 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 men inte på FileMaker Go
för att använda scriptstegen Importera poster eller Utför SQL med en ODBC-datakälla som använder serverns DSN
Kommentar 
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 FileMaker Server-schema använder det konto som anges i schemat (se FileMaker Server Hjälp). Kontots behörighetsuppsättning måste ha den utökade fmapp-behörigheten aktiverad. Mer information finns i Ändra den utökade behörigheten för en behörighetsuppsättning.
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.
Klienter kan inte avbryta script på serversidan. Ett script på serversidan kan dock avbrytas om:
en serveradministratör stoppar scriptet, vilket visas som en separat klient som kan kopplas från i FileMaker Server Admin Console
scriptet som körs överskrider den tid som angetts i det FileMaker Server-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.
I script på serversidan returnerar funktioner som är relaterade till maskinvara (till exempel Get (SystemIPAddress) information från databasserverkomponenten i FileMaker Server, inte från klienten.