Automatisera uppgifter med scripts > Skapa och redigera scripts > Köra scripts på FileMaker Server
 
Köra scripts på FileMaker Server
Scripts i filer som FileMaker Server är värd för körs normalt i klienten. Du kan dock köra ett script på servern (ett script på serversidan) genom att använda:
ett scriptsteget Utför script på server i ett script som körs i en klient
ett FileMaker Server-schema (se FileMaker Server Hjälp)
Följande beskriver hur scripts körs annorlunda på FileMaker Server
Ett script som startats antingen med någon av de metoder som beskrivs ovan körs av FileMaker Script Engine (FMSE), en komponent i FileMaker Server. FMSE är en klient som kör varje script i en separat session på servern. Detta gör följande med script som körs på serversidan:
De har inte klientens kontext (aktuell layout, hittade poster, sorteringsordning, post, fält som använder global lagring eller lokala och globala variabelvärden).
Du kan överföra information om klientens kontext 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 ska användas.
De har stöd för scriptparametrar och scriptresultat på upp till 1 miljon tecken.
De kan bara komma åt andra FileMaker Pro-filer när följande gäller:
Filerna finns på samma värd.
Filerna har redan öppnats av den klient som startade scriptet på serversidan, eller har konfigurerats med ett kontonamn och lösenord i filens dialogruta Filtillval.
Scripts på serversidan körs på samma sätt oavsett av hur de startas, förutom i följande fall:
En klient som använder scriptsteget Utför script på server har tillvalet att vänta på att scriptet blir klart på servern och använda funktionen Get ( Scriptresultat ) för att fånga in resultatet.
Ett FileMaker Server-schema kan ställas in för att avbrytas om det script som körs går över den angivna tiden.
Hantera scriptsteg som inte stöds
FMSE har stöd för många scriptsteg. Men om du försöker att utföra ett scriptsteg som inte har stöd returneras fel 3 ("Kommandot är inte tillgängligt"). Det steget utförs inte utan scriptet går vidare till nästa steg. För att hantera steg som inte har stöd kan ditt script använda If-scriptsteget med:
funktionen Get ( SenasteFel ) efter ett steg för att kontrollera om det steget inte stöds och då utföra steg med stöd istället. Till exempel stöds inte scriptsteget Öppna fil av FMSE så följande script som körs på servern hoppar över det steget och returnerar "stöds inte" i resultatet.
Öppna fil ["Fakturasäkerhetskopior"]
If [Get ( SenasteFel ) = 3]
Avsluta script [Textresultat: "stöds inte"]
End If
funktionen Get ( Värdprogramversion ) före andra steg för att kontrollera om scriptet körs på FileMaker Server och sedan bara utföra steg som stöds. Till exempel:
If [LeftWords ( Get ( Värdprogramversion ; 1 ) = "Server"]
# Fortsätt med scriptsteg som stöds av FMSE
End If
Om du vill se vilka scriptsteg som stöds av FMSE öppnar du ett script i Scriptfönster i FileMaker Pro. Klicka på Kompatibilitetsknapp och välj sedan Server. Scriptsteg som inte stöds visas i en annan färg. Du kan även använda kompatibilitetstabellen för varje scriptsteg i Scriptsteg.
Skäl till att köra ett script på servern
Förbättra prestanda genom att minska mängden nätverkstrafik mellan klienten och servern
Flytta långvariga uppgifter från långsamma klienter till en snabbare server
Låta FileMaker Go-klienter utföra uppgifter som kräver plugin-program som stöds på FileMaker Server men inte på FileMaker Go
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 på serversidan komma åt icke-verkställda data eller ändra innehållet i sådana poster.
När script på serversidan körs öppnas och stängs de filer som innehåller scripten. Det betyder att scripttriggern VidFörstaFönsterÖppna aktiveras när scriptet startar och VidSistaFönsterStäng aktiveras när scriptet avslutas.
Script på serversidan kan använda scriptsteget Utför script för att utföra delscripts som också körs på servern. Det gäller bara om dessa delscripts finns i filer på samma server och redan har öppnats av klienten.
Scripts som körs av Utför script på server använder samma konto som klienten. Scripts som körs av ett FileMaker Server-schema använder det konto som angetts i schemat (se FileMaker Server Hjälp).
Scripts på serversidan kan inte göra så att en klient visar FileMaker-aviseringsmeddelanden som när scripts körs på klienter, så scripts på serversidan utförs alltid som om de scriptsteget Manuell felhantering vore inställda till På. Använd funktionen Get ( SenasteFel ) i scripts på serversidan för att hantera felvillkor. Felen skrivs även i händelseloggen på FileMaker Server så att det blir lättare att felsöka problem.
Klienter kan inte avbryta scripts på serversidan. Däremot kan ett script på serversidan avbrytas om:
en serveradministratör stoppar scriptet, vilket visas som en separat klient som kan kopplas från i FileMaker Server Admin Console
det script som körs går över den tidsgräns som angetts i FileMaker Server-schemat som startade det
scriptet stöter på ett okänt scriptsteg (se scriptsteget Tillåt användaren att avbryta)
Se FileMaker Server Hjälp.
När det gäller scripts på serversidan returnerar maskinvarurelaterade funktioner (t.ex. Get (SystemIPadress)) information från FileMaker Servers databasserverkomponent, inte från klienten.