Taken automatiseren met scripts > Scripts maken en bewerken > Scripts via FileMaker Server en FileMaker Cloud uitvoeren
 

Scripts via FileMaker Server en FileMaker Cloud uitvoeren

Scripts in bestanden gehost door FileMaker Server en FileMaker Cloud worden doorgaans op de client uitgevoerd. Desondanks kunt u een script op de server uitvoeren (een script aan serverzijde) door middel van:

de Script op Server uitvoeren scriptstap in een script dat op een client wordt uitgevoerd

een planning (raadpleeg de FileMaker Server Help en FileMaker Cloud-documentatie)

Hoe scripts aan serverzijde anders werken

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 en FileMaker Cloud. 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 Advanced-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 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 of FileMaker Cloud 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 Advanced een script, klikt u op Knop Nieuwe map 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 en FileMaker Cloud 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 planning gebruiken het account opgegeven in de planning.

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 gebeurtenislogboek in FileMaker Server en FileMaker Cloud.

Clients kunnen geen scripts aan serverzijde stoppen. Een script aan serverzijde kan wel worden gestopt als:

Een serverbeheerder het script stopt dat als een aparte client verschijnt waarmee de verbinding kan worden verbroken in de Admin Console van FileMaker Server of FileMaker Cloud.

Het actieve script de opgegeven tijdslimiet overschrijdt in de planning die het heeft gestart

Het script een onbekende scriptstap aantreft (raadpleeg Onderbreken door gebruiker toestaan scriptstap)

Raadpleeg de FileMaker Server Help en FileMaker Cloud-documentatie.

Bij scripts aan serverzijde geven functies gerelateerd aan hardware, zoals Get (SysteemIPadres), informatie van de databaseserver van FileMaker Server en FileMaker Cloud en niet van de client.

Voor scripts op servers is de bestandstoegang beperkt tot de map Documenten en de tijdelijke map. Raadpleeg Paden in scripts op servers.