Scripts uitvoeren via FileMaker Server en FileMaker Cloud

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:

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

    Kopiëren
    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:

    Kopiëren
    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 Knop Compatibiliteit 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 zijn vereist 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 de server kunnen de stap Script uitvoeren scriptstap gebruiken om subscripts uit te voeren die in dezelfde FMSE-clientsessie worden uitgevoerd, alleen als die subscripts zich in bestanden op dezelfde server bevinden. Als een client de scriptstap Script op Server uitvoeren gebruikt om een script uit te voeren dat subscripts in een ander bestand uitvoert, geldt ook dat het bestand met de subscripts al geopend moet zijn door de client.

    Scripts aan de serverzijde kunnen ook de stap Script op server uitvoeren op dezelfde manier gebruiken, behalve dat het aangeroepen script in een afzonderlijke FMSE-clientsessie wordt uitgevoerd. De optie Wachten op voltooiing werkt hetzelfde als in een script dat wordt uitgevoerd door een FileMaker Pro-client, waarbij een scriptresultaat of foutcode wordt doorgegeven aan de beller, in dit geval de aanroepende FMSE-client. Als deze optie echter is uitgeschakeld, kan het aanroepende script doorgaan met de uitvoering en kan het aangeroepen script in zijn eigen thread worden uitgevoerd.

  • Scripts aan de serverzijde kunnen ook de stap Script op server uitvoeren op dezelfde manier gebruiken, behalve dat het aangeroepen script in een afzonderlijke FMSE-clientsessie wordt uitgevoerd

  • 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 FileMaker-client waarschuwingsberichten weergeeft zoals dat wel het geval is wanneer scripts op clients worden uitgevoerd. Daarom worden scripts op een server altijd uitgevoerd als de Foutafvanging instellen scriptstap is 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 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 voor 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 of FileMaker Cloud Help.

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

  • In scripts aan serverzijde kunnen script-stappen met de optie Met dialoogvenster ingeschakeld geen dialoogvelden weergeven en een foutmelding genereren. Om deze fout te voorkomen, schakelt u Met dialoogvenster uit in scripts aan serverzijde.