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