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