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:
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
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å
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
•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.