Taken automatiseren met scripts > Scripts maken en bewerken > Scripts uitvoeren in FileMaker Server
 
Scripts uitvoeren in FileMaker Server
Scripts in bestanden gehost door FileMaker Server worden doorgaans op de client uitgevoerd. Desondanks kunt u een script op de server uitvoeren (een script aan serverzijde) door middel van:
een Script op Server uitvoeren scriptstap in een script dat op een client wordt uitgevoerd
een FileMaker Server-planning (raadpleeg FileMaker Server Help)
Hoe scripts anders worden uitgevoerd in FileMaker Server
Een script dat door een van de eerder vermelde methoden wordt gestart, wordt uitgevoerd door de FileMaker Script Engine (FMSE), een onderdeel van FileMaker Server. De FMSE is een client die elk script uitvoert in een aparte sessie op de server. Voor scripts op de server betekent dit het volgende:
Ze hebben de context van de client niet (huidige lay-out, gevonden reeks, sorteervolgorde, record, waarden van globaalvelden, en waarden van lokale of algemene variabelen)
U kunt de informatie over de context van de client doorgeven aan een script op de server door middel van de scriptparameter in de scriptstap Script op Server uitvoeren. Het script op de server kan die informatie gebruiken in scriptstappen zoals Ga naar lay-out scriptstap en Zoekopdracht uitvoeren scriptstap om op te geven welke lay-out en gevonden reeks moeten worden gebruikt.
Ze ondersteunen scriptparameters en scriptresultaten van maximaal 1 miljoen tekens
Ze hebben alleen toegang tot andere FileMaker Pro-bestanden wanneer aan de volgende voorwaarden wordt voldaan:
de bestanden staan op dezelfde host
de bestanden waren al geopend door de client die het script op de server heeft gestart, of geconfigureerd met een accountnaam en wachtwoord opgegeven in het dialoogvenster Bestandsopties van het bestand
Scripts op een server worden op dezelfde manier uitgevoerd ongeacht hoe ze worden gestart, met uitzondering van:
Een client die de scriptstap Script op Server uitvoeren gebruikt, heeft de mogelijkheid om te wachten totdat het script op de server is voltooid en om de Get ( ScriptResultaat ) functie te gebruiken om het resultaat vast te leggen.
Een FileMaker Server-planning kan zo worden ingesteld dat deze stopt als het actieve script de opgegeven tijdslimiet overschrijdt.
Verwerking van niet-ondersteunde scriptstappen
Vele scriptstappen worden door de FMSE ondersteund. Bij een poging tot het uitvoeren van een niet-ondersteunde scriptstap krijgt u als resultaat fout 3 (“Opdracht is onbeschikbaar”), wordt de niet-ondersteunde stap overgeslagen en wordt naar de volgende stap gegaan. Voor de verwerking van niet-ondersteunde stappen kan uw script de scriptstap If gebruiken met:
de Get ( LaatsteFout ) functie na een stap om te controleren of die stap al dan niet wordt ondersteund om vervolgens de ondersteunde stappen wel uit te voeren. Bijvoorbeeld: de scriptstap Bestand openen wordt niet door de FMSE ondersteund, waardoor bij het volgende actieve script op de server die stap wordt overgeslagen en “niet ondersteund” als resultaat wordt gegeven.
Bestand openen [Verborgen openen: Uit ; "Back-up facturen"]
If [ Get (LaatsteFout) = 3 ]
Script afsluiten [ Tekstresultaat: "niet ondersteund" ]
End If
de Get ( ApplicatieVersie ) functie vóór andere stappen om te controleren of het script actief is in FileMaker Server om vervolgens alleen ondersteunde stappen uit te voeren. Bijvoorbeeld:
If [ PatternCount ( Get (ApplicatieVersie) ; "Server" ) > 0 ]
# Ga door met scriptstappen ondersteund door de FMSE
End If
Als u wilt zien welke scriptstappen worden ondersteund door de FMSE, opent u in de Scriptwerkruimte in FileMaker Pro een script, klikt u op Compatibiliteitsknop en selecteert u vervolgens Server. Scriptstappen die niet worden ondersteund, verschijnen in een andere kleur. U kunt ook de tabel Compatibiliteit raadplegen voor elke scriptstap in Naslaggegevens voor scriptstappen.
Redenen om een script op de server uit te voeren
om de prestaties te verbeteren door het netwerkverkeer tussen de client en de server te verminderen
om langdurige taken over te brengen van tragere clients naar een snellere server
om FileMaker Go-clients taken te laten uitvoeren waarvoor plug-ins vereist zijn die in FileMaker Server worden ondersteund maar niet in FileMaker Go
om de scriptstappen Records importeren of SQL uitvoeren te gebruiken met een ODBC-gegevensbron die de DSN van de server gebruikt
Opmerkingen 
Als records worden vergrendeld door een client, hebben scripts op de server geen toegang tot niet-vastgelegde gegevens of kunnen ze de inhoud van die records niet wijzigen.
Het uitvoeren van scripts op een server opent en sluit de bestanden die de scripts bevatten. Daarom treedt de BijEersteVensterOpenen scriptactivering in werking bij de start van het script en treedt BijLaatsteVensterSluiten scriptactivering in werking bij het einde van het script.
Scripts op een server kunnen de Script uitvoeren scriptstap gebruiken om subscripts uit te voeren die ook op de server worden gestart. Dit is alleen het geval als die subscripts zich in bestanden op dezelfde server bevinden en al zijn geopend door de client.
Scripts die worden gestart door Script op Server uitvoeren gebruiken hetzelfde account als de client. Scripts die worden gestart door een FileMaker Server-planning gebruiken het account opgegeven in de planning (raadpleeg FileMaker Server Help). In de privilegeset van de account moet het uitgebreide privilege 'fmapp' ingeschakeld zijn. Raadpleeg Uitgebreide privileges bewerken voor een privilegeset.
Scripts op de server kunnen er niet voor zorgen dat een client FileMaker-waarschuwingsberichten weergeeft wanneer scripts op clients zijn gestart. Daarom worden scripts op een server altijd uitgevoerd als de Foutafvanging instellen scriptstap was ingesteld op Aan. Gebruik de Get ( LaatsteFout ) functie in scripts op de server om fouten te verwerken. Om u te helpen bij het oplossen van problemen worden problemen ook geschreven naar het gebeurtenissenlogboek in FileMaker Server.
Clients kunnen geen scripts op de server afbreken. Een script op een server kan wel worden afgebroken als:
een serverbeheerder het script stopt dat als een aparte client verschijnt waarmee de verbinding kan worden verbroken in Admin Console van FileMaker Server.
het actieve script de opgegeven tijdslimiet overschrijdt in de FileMaker Server-planning die het heeft gestart
het script een onbekende scriptstap aantreft (raadpleeg Onderbreken door gebruiker toestaan scriptstap)
Raadpleeg FileMaker Server Help.
Bij scripts op een server geven functies gerelateerd aan hardware, zoals Get (SysteemIPadres), informatie van de databaseserver van FileMaker Server en niet van de client.