Koppelingen overslaan

Geavanceerde scripttechnieken in FileMaker

4.3 Geavanceerde scripttechnieken

Nu u de basisbeginselen van scripting in FileMaker onder de knie hebt, is het tijd om door te gaan naar geavanceerde technieken waarmee u complexere en robuustere toepassingen kunt ontwikkelen. In deze zelfstudiegids richten we ons op foutafhandeling in scripts, het debuggen en documenteren van scripts en het maken van complexe workflows met meerdere scripts. Deze technieken zullen u beter in staat stellen om krachtige en betrouwbare FileMaker-toepassingen te maken.

Foutafhandeling in scripts

Inleiding tot foutafhandeling

Foutafhandeling is een essentieel onderdeel van elk goed ontwikkeld script. In FileMaker betekent dit dat uw Script zodat het kan reageren op onverwachte situaties, zoals wanneer een bestand niet wordt gevonden, een berekening mislukt of een gebruiker een ongeldige invoer doet. Effectieve foutafhandeling zorgt ervoor dat je script niet gewoon "crasht", maar in plaats daarvan de fout herkent, op de juiste manier reageert en de gebruiker informeert.

Grondbeginselen van foutafhandeling
  1. Foutdetectie door Foutregistratie instellenMet de scriptstap Foutopname instellen [Aan] kunt u voorkomen dat FileMaker automatisch een foutbericht weergeeft wanneer er een fout optreedt. In plaats daarvan kunt u de foutafhandeling zelf uitvoeren.
  2. Controleer de foutstatus met Get(LastErrorNo)U moet de foutstatus controleren na elke kritieke stap in het script. Get(LastErrorNo) geeft een foutcode die u kunt invoeren in een Wanneer-voorwaarde om op de fout te reageren. Voorbeeld:
     
    Foutopname instellen [Aan]
    Open bestand ["Database.fmp12"].
    Als [Get(LastErrorNo) ≠ 0]
        Toon eigen dialoogvenster ["Fout"; "Het bestand kon niet worden geopend"].
        Huidig script afsluiten
    Eindigen als
  3. Stappen voor foutafhandeling invoegenAls er een fout wordt gedetecteerd, kun je de juiste stappen toevoegen om het probleem op te lossen of de gebruiker op de hoogte te stellen. Dit kan bijvoorbeeld het ongedaan maken van wijzigingen zijn, het opslaan van een foutenlogboek of het voorstellen van een alternatieve actie.
Geavanceerde foutafhandeling
  1. Lussen gebruiken voor herhaalpogingenIn sommige gevallen kan het nuttig zijn om meerdere pogingen te doen in het geval van een fout voordat het script wordt beëindigd. Voorbeeld:
     
    Stel variabele [$Vtry; waarde: 1] in.
    Lus
        Open bestand ["Database.fmp12"].
        Als [Get(LastErrorNo) = 0]
            Sluit de lus af wanneer [Get(LastErrorNo) = 0]
        Anders Als [$attempt ≥ 3]
            Toon eigen dialoogvenster ["Fout"; "Het bestand kon na 3 pogingen niet worden geopend"].
            Huidig script afsluiten
        Eindigen als

        Verlaat de lus als [$attempt > 3]
        Variabele instellen [$attempt; waarde: $attempt + 1]
    Einde lus

    FoutregistratieIn complexe toepassingen kan het nuttig zijn om een foutenlogboek bij te houden waarin de details van opgetreden fouten worden opgeslagen. Dit kan in een aparte foutlogtabel in uw FileMaker database.

  2. Voorbeeld:

     Als [Get(LastErrorNo) ≠ 0]
        Ga naar Layout [Naam: "Foutlogboek"].
        Nieuwe gegevensrecord/query 
        Veldwaarde instellen [ErrorLog::Date; Get( SystemTimestamp )]
        Stel veldwaarde in [ErrorLog::ErrorCode; Get(LastErrorNo)].
        Veldwaarde instellen [Fout log::User; Get( AccountName )]
        Gegevensrecord/vraag opslaan [Met dialoog: Uit]
    Eindigen als

FileMaker ERP met duidelijke en volledig gedocumenteerde scriptstructuur en ontwikkelaarsmodule.

Meer informatie
Professionele ERP-software

Debuggen en scriptdocumentatie

Inleiding tot debuggen

Het debuggen van scripts is een essentiële stap om ervoor te zorgen dat uw scripts correct werken en presteren zoals verwacht. De Scriptwerkruimte in FileMaker biedt krachtige hulpmiddelen voor het debuggen, zoals de Script Debugger en de functie Data Viewer.

Script debugger gebruiken
  1. Script debugger activerenOpen de scriptwerkruimte en start de scriptdebugger via Gereedschap > Script debugger. Met de debugger kun je stap voor stap door je script gaan en de huidige status van elke variabele en elke scriptstap controleren.
  2. Stapsgewijze uitvoeringGebruik de knoppen in de script debugger om je script stap voor stap uit te voeren. Zo kun je precies zien waar een fout optreedt of onverwachte resultaten worden gegenereerd.
  3. Onderbrekingspunten instellenJe kunt breekpunten instellen in je script om de uitvoering op een bepaald punt te stoppen en de huidige status te controleren. Dit is vooral handig voor het analyseren van complexe delen van je script.
Gegevensviewer gebruiken

De Gegevensviewer toont je de waarde van velden, variabelen en berekeningen in realtime terwijl je script draait. Dit is vooral handig om de effecten van afzonderlijke scriptstappen op je gegevens te bekijken.

  1. Open gegevensweergaveDe gegevensviewer kan worden geopend via Gereedschap > Gegevensviewer kan worden geopend.
  2. Uitdrukkingen bewakenVoeg de velden of variabelen toe die je wilt monitoren om hun waarden te controleren tijdens de uitvoering van het script.
Script-documentatie

Duidelijke en goed gestructureerde documentatie van uw scripts is belangrijk om de onderhoudbaarheid en begrijpelijkheid van uw FileMaker-oplossing te garanderen. Goede documentatie bevat niet alleen commentaar in het script zelf, maar ook een beschrijving van het script, het doel ervan en de gebruikte parameters.

  1. Commentaar op je script: Gebruik de Opmerking-functie in de scriptwerkruimte om elke sectie van je script te documenteren. Leg uit wat elke sectie doet en waarom het nodig is.voorbeeld:
     
    # Dit script controleert of het bestand geopend kan worden en geeft een foutmelding als dat niet het geval is.
     
  2. Scriptbeschrijving toevoegenVoer een algemene beschrijving van het script in de scriptwerkruimte in. Dit helpt u of andere ontwikkelaars om snel te begrijpen wat het script doet.
  3. Versiebeheer beherenHoud de verschillende versies van je scripts bij, vooral wanneer je wijzigingen aanbrengt. Noteer wanneer en waarom je wijzigingen hebt aangebracht.

gFM-Bedrijf Open Source FileMaker Basis-ERP

De software voor de spoedcursus

Gratis downloaden
Open source ERP gebaseerd op Claris FileMaker

Complexe workflows maken met meerdere scripts

Inleiding tot complexe workflows

In grotere FileMaker-toepassingen moeten vaak meerdere scripts samenwerken om een volledige workflow te implementeren. Deze scripts kunnen na elkaar worden uitgevoerd of aan elkaar worden gekoppeld via voorwaarden en triggers om complexe processen in kaart te brengen.

Scripts voor het maken van modules
  1. Verdeling in modulesSplits complexe taken op in kleinere, herbruikbare modules. Elk van deze modules moet een specifieke taak vervullen en kan worden aangeroepen door andere scripts, bijvoorbeeld een scriptmodule die gegevens valideert, een andere die een rapport genereert en weer een andere die het rapport exporteert.
  2. Scriptparameters gebruikenGeef parameters door tussen de scripts om ze flexibel en herbruikbaar te maken. Hierdoor kun je een script bijvoorbeeld in verschillende contexten met verschillende invoergegevens gebruiken:
     
    # Hoofdscript
    Als [Get(ScriptParameter) = "Report"]
        Script uitvoeren ["Rapport genereren"].
    Anders Als [Get(ScriptParameter) = "Validation"]
        
    Script uitvoeren
    Eindigen als
     
  3. Gespreksscripts: Gebruik Script uitvoeren-stappen om andere scripts aan te roepen binnen een hoofdscript. Dit maakt het mogelijk om complexe workflows te maken die uit meerdere stappen en modules bestaan.
Foutafhandeling en workflowbeheer
  1. Foutbewaking in complexe workflowsIn workflows met meerdere scripts is het belangrijk om de foutbewaking tussen de scripts te coördineren. Zorg ervoor dat foutcodes worden doorgegeven tussen de scripts en dat het hoofdscript dienovereenkomstig reageert.
  2. Terugdraai strategieënIn kritieke workflows kan het nodig zijn om een rollback-strategie te implementeren waarbij alle wijzigingen ongedaan worden gemaakt als er een fout optreedt. Dit kan worden bereikt door velden te resetten of nieuw aangemaakte gegevensrecords te verwijderen.
Optimalisatie en prestaties
  1. Scripts optimaliserenZorg ervoor dat je scripts zo efficiënt mogelijk worden uitgevoerd door onnodige stappen te vermijden en het aantal databasequery's te minimaliseren.
  2. Laadtijden minimaliserenAls je met grote hoeveelheden gegevens of complexe berekeningen werkt, moet je ervoor zorgen dat de laadtijd zo kort mogelijk is. Gebruik indices, geoptimaliseerde query's en slanke lay-outs.

Gebruik van deelscripts en scriptparameters in FileMaker

In FileMaker kunt u Gedeeltelijke scripts en Scriptparameters kan worden gebruikt om de efficiëntie en herbruikbaarheid van scripts te maximaliseren. Gedeeltelijke scripts zijn kleinere, gespecialiseerde scripts die worden aangeroepen door andere scripts om terugkerende taken uit te voeren. Dit zorgt voor een betere structurering van de code en vergemakkelijkt het onderhoud, omdat wijzigingen in een subscript automatisch doorwerken in alle aanroepende hoofdscripts. Scriptparameters maken het mogelijk om informatie door te geven tussen verschillende scripts, wat de flexibiliteit en dynamiek van de scriptaanroepen vergroot.

Voorbeeld: Gebruik van deelscripts en scriptparameters

Stel dat we een vaak terugkerend element willen gebruiken zoals de Een nieuw gegevensrecord maken en de overdracht van informatie naar deze gegevensset hergebruiken in meerdere scripts.

1. hoofdscript: Een gedeeltelijk script oproepen

In het hoofdscript wordt een subscript aangeroepen dat het nieuwe gegevensrecord aanmaakt. A Scriptparameters wordt gebruikt om de gegevens te verzenden naar het deelscript:

# Hoofdscript: "Nieuwe klant aanmaken"
Stel variabele [1TP4Customer name; waarde: "Max Mustermann"] in.
Stel variabele [$klantnummer; waarde: "12345"] in.
# Het deelscript aanroepen met verzonden parameters
Voer Script ["Klant systeem"; Parameter: JSONSetElement ("{}" ; ["name"; 1TP4CustomerName; JSONString]; ["number"; 1TP4CustomerNumber; JSONString] )]

In dit voorbeeld wordt het subscript "Klant aanmaken" aangeroepen. De informatie over de klantnaam en het klantnummer wordt in JSON-formaat overgedragen als scriptparameters. Dit biedt het voordeel dat meerdere gegevenspunten kunnen worden overgedragen in een enkele parameter.

2. subscript: Scriptparameters verwerken

Het subscript "Klant aanmaken" neemt de scriptparameter, extraheert de informatie en maakt een nieuw gegevensrecord aan op basis van de overgedragen gegevens:

 
# Gedeeltelijk script: "Installatie door klant".
Stel variabele [$param; Waarde: Get ( ScriptParameter )] in.
# De gegevens uit de JSON-parameter halen
Variabele instellen [$name; Waarde: JSONGetElement ($param; "naam")]
Variabele instellen [$number; Waarde: JSONGetElement ($param; "nummer")].
# Nieuw gegevensrecord gebaseerd op de overgedragen waarden
Nieuwe gegevensrecord/query
Veldwaarde instellen [Customer::Name; $name]
Veldwaarde instellen [Klant::Nummer; $nummer]

In dit sub-script wordt de doorgegeven JSON-parameter geanalyseerd met behulp van JSONGetElement verwerkt. De variabelen $-naam en $nummer worden geëxtraheerd en ingevoerd in de overeenkomstige velden van de nieuwe gegevensrecord.

Meerdere scriptparameters doorgeven

Verschillende scriptparameters kunnen op verschillende manieren worden doorgegeven in FileMaker. Een veelgebruikte methode is om de parameters door te geven als Lijst en om het later door te geven met de functie GetValue() afzonderlijk. Als alternatief kan in gFM-Business een methode worden gebruikt waarbij de parameters worden gescheiden door superscripts (|) worden gescheiden. Deze waarden worden vervolgens berekend met de "StringColumns". weer opgesplitst en afzonderlijk verwerkt. Deze benaderingen maken de flexibele en gestructureerde overdracht van verschillende parameters mogelijk, die vervolgens verder kunnen worden verwerkt in de bijbehorende scripts.

Voordelen van deelscripts en scriptparameters

  1. HerbruikbaarheidSubscripts kunnen door meerdere scripts worden aangeroepen, wat de code modulair en gemakkelijk te onderhouden maakt. Wijzigingen aan een subscript hoeven maar één keer te worden gemaakt en hebben invloed op alle aanroepende scripts.
  2. FlexibiliteitScriptparameters kunnen worden gebruikt om dynamische informatie door te geven aan subscripts, wat de scripts flexibeler maakt. Het gebruik van JSON-parameters maakt het mogelijk om complexe gegevensstructuren door te geven in een enkele parameter.
  3. Duidelijkheid en structuurDoor scripts op te splitsen in kleinere subscripts, wordt de code duidelijker en beter gestructureerd. Dit vergemakkelijkt niet alleen de ontwikkeling, maar ook het debuggen.

Tips, instructies en interfaces voor FileMaker en gFM-Business ERP

Tips & instructies
FileMaker tips en instructies

Veelgestelde vragen over geavanceerde scriptfuncties

  • Hoe kan ik scripts controleren op fouten in FileMaker en ze corrigeren?
    • In FileMaker kunt u de foutafhandeling regelen met de opdracht "Foutregistratie instellen", waarmee wordt voorkomen dat standaardfoutberichten worden weergegeven. U kunt vervolgens de opdracht "Get(LastErrorNo)" gebruiken om de foutstatus te controleren en passende acties te definiëren op basis van de foutcode. Dit maakt het mogelijk om alternatieve scriptpaden uit te voeren of aangepaste foutmeldingen weer te geven om gebruikers te informeren.
  • Hoe werkt het debuggen van scripts in FileMaker?
    • Met het hulpprogramma Script Debugger in FileMaker Pro kunt u scripts stap voor stap doorlopen. U kunt de voortgang van een script in realtime volgen, breakpoints instellen en de huidige status van variabelen en velden controleren. Zo kun je fouten snel lokaliseren en corrigeren. Je kunt de debugger starten in het menu "Extra" > "Script Debugger".
  • Ik zie geen gereedschapsmenu, hoe kan ik het activeren?
    • Als u geen gereedschapsmenu in de menubalk kunt vinden, ga dan naar de FileMaker-voorkeuren (Mac onder "FileMaker Pro", Windows onder "Bewerken") en selecteer de optie "Geavanceerde gereedschappen gebruiken" in het eerste tabblad "Algemeen". Bevestig het dialoogvenster en start FileMaker Pro een keer opnieuw.
  • Hoe kan ik meerdere scripts koppelen in FileMaker?
    • In FileMaker kunt u meerdere scripts aan elkaar koppelen door de opdracht "Script uitvoeren" te gebruiken om een ander script aan te roepen. Zo kunt u complexe processen opdelen in kleinere, beter beheersbare scripts die samenwerken. Door scripts op te splitsen in subscripts, kunt u specifieke taken hergebruiken en de onderhoudbaarheid van uw scriptoplossingen verbeteren.
  • Wat zijn deelscripts en wanneer moet ik ze gebruiken?
    • Subscripts zijn kleinere, gespecialiseerde scripts die worden aangeroepen als onderdeel van een groter script. Ze zijn handig voor het inkapselen van terugkerende taken zoals het maken van nieuwe gegevenssets of het navigeren tussen lay-outs. Gedeeltelijke scripts bevorderen een schone en modulaire structuur in je scripts, wat het onderhoud vergemakkelijkt. Als een proces vaak wordt gebruikt, moet je het uitbesteden aan een subscript en het aanroepen vanuit andere scripts.
  • Hoe gebruik ik scriptparameters in FileMaker?
    • Met scriptparameters kun je gegevens doorgeven van het ene script naar het andere. Wanneer je een script aanroept, kun je een of meer parameters aan het script doorgeven door de opdracht "Script uitvoeren" te gebruiken en parameters op te geven. Binnen het script kun je de parameters ophalen en gebruiken met de opdracht "Get(ScriptParameter)". Dit is handig om dynamisch te bepalen welke acties het opgeroepen script uitvoert.
  • Hoe geef ik meerdere scriptparameters door?
    • Om meerdere scriptparameters door te geven, kun je ze samenvatten in een lijst of een JSON-indeling. Je kunt de functie "Lijst()" gebruiken om parameters in een lijst over te brengen, gescheiden door regeleinden, en ze ophalen in het script met de functie GetValue("Get (ScriptParameter)"; nummer). Het getal identificeert de x-de scriptparameter. Je kunt ook JSON gebruiken om parameters in een gestructureerd formaat door te geven en dan functies zoals "JSONGetElement" gebruiken om toegang te krijgen tot de specifieke parameters.
    • gFM-Business gebruikt de functie "StringColumns" voor verschillende scriptparameters, die de parameters scheidt met een apostrof "|". Deze procedure heeft het voordeel dat doorgegeven parameters ook lijnscheidingen kunnen bevatten.
  • Hoe beheer ik globale variabelen in scripts?
    • Globale variabelen (beginnend met $$) slaan gegevens op die toegankelijk zijn tijdens de hele sessie, zelfs nadat het script is voltooid. Je kunt globale variabelen definiëren met de opdracht "Variabele instellen" in een script en hun waarde op elk moment ophalen of wijzigen. Ze zijn vooral handig voor het delen van gegevens tussen verschillende scripts of lay-outs. Omdat ze echter blijven bestaan tot het bestand wordt gesloten, moeten globale variabelen voorzichtig worden gebruikt om ongewenste interferentie te voorkomen.
  • Hoe werken lokale variabelen in FileMaker-scripts?
    • Lokale variabelen (beginnend met $) zijn alleen geldig tijdens de runtime van een script. Ze worden vaak gebruikt om tijdelijk gegevens op te slaan die alleen nodig zijn in een specifiek script of substap. Zodra het script eindigt, wordt de lokale variabele verwijderd. Lokale variabelen zijn zeer geschikt om berekeningsresultaten of tussenliggende waarden op te slaan zonder dat ze in de hele sessie aanwezig blijven.
  • Hoe kan ik voorwaarden effectief gebruiken in een script?
    • Je kunt "Als"-voorwaarden gebruiken om de stroom van een script te regelen op basis van bepaalde criteria. Je kunt controleren of aan een voorwaarde is voldaan en afhankelijk van het resultaat verschillende acties uitvoeren. Een typisch voorbeeld is een voorwaarde die controleert of een veld leeg is voordat een nieuwe gegevensrecord wordt aangemaakt. Voor complexere gevallen kun je ook geneste if-condities of if/else scenario's gebruiken om meerdere condities te controleren, waarvoor de opdracht "Else if" kan worden gebruikt.
  • Hoe kan ik herhalingen en lussen in scripts gebruiken om gegevens te verwerken?
    • Met lussen kun je een reeks acties herhalen tot aan een bepaalde voorwaarde is voldaan. Een typisch voorbeeld is het doorlopen van alle gegevensrecords in een zoekresultaat en het bijwerken van een specifiek veld. Je start de lus met de opdracht "Lus" en beëindigt deze met "Sluit lus af wanneer" wanneer aan de gewenste voorwaarde is voldaan, bijvoorbeeld wanneer de laatste gegevensrecord is bereikt.
  • Hoe kan ik scripts en deelscripts modulair en herbruikbaar maken?
    • Om scripts modulair en herbruikbaar te maken, moet je algemene processen uitbesteden aan subscripts en scriptparameters gebruiken om het proces dynamisch te sturen. Dit vermindert redundantie en stelt je in staat om scripts te hergebruiken in verschillende contexten. Je kunt globale en lokale variabelen ook efficiënt gebruiken om gegevens binnen een script of tussen scripts over te dragen zonder telkens nieuwe scripts te moeten maken. Indien nodig kun je ook verschillende scriptparameters overbrengen van het ene script naar het andere script, die je kunt lezen met de functie "Get(ScriptResult)".
4.3 Geavanceerde scripttechnieken

Deel deze pagina:

ERP-software zo flexibel als uw bedrijf.
We geven je graag advies.

Aanpasbare ERP-software voor Mac, Windows en iOS.

U bevindt zich hier: Geavanceerde scripttechnieken | FileMaker hoofdstuk 4.3