Taken automatiseren met scripts
Met scripts kunt u eenvoudige taken uitvoeren, zoals de afdrukstand instellen, of ingewikkelde taken, zoals een aangepaste mailing naar elke klant voorbereiden.
U kunt bijvoorbeeld een complexe reeks taken definiëren om een bedank-e-mail te maken voor klanten in uw klantendatabase die de afgelopen week een aankoop hebben gedaan. Met het script stelt u een e-mail op die aan elke klant is aangepast. Het script schakelt over naar de modus Schermafdruk en wordt onderbroken zodat u kunt zien hoe het bericht eruit zal zien alvorens het wordt verstuurd. De hele taak wordt gestart door in de lay-out Verkopen invoeren op een knop te klikken.
U stelt scripts samen door onderdelen te selecteren in een lijst met opdrachten van FileMaker Pro (de zogeheten scriptstappen), door (eventueel) opties op te geven en door de stappen in de juiste volgorde te plaatsen voor de uitvoering van de taak.
Normaal gesproken worden scripts op de client uitgevoerd, maar wellicht wilt u bepaalde scripts in FileMaker Server of FileMaker Cloud uitvoeren om de prestaties van de scripts te verbeteren of om de scripts automatisch uit te voeren volgens een planning. Raadpleeg Scripts uitvoeren via FileMaker Server en FileMaker Cloud.
Een script plannen
Hoe meer tijd u besteedt aan de planning van het script, des te groter is de kans dat u bereikt wat u wilt. Stel uzelf de volgende vragen wanneer u een script plant:
- Kunt u de taak opsplitsen in een aantal kleinere taken? Voor elke kleine taak kunt u subscripts definiëren en vervolgens een script maken dat de subscripts uitvoert. U kunt gemakkelijker meerdere kleine scripts ontwerpen en testen dan één complex script. U kunt subscripts bovendien ook in andere gebieden gebruiken. (Met Script uitvoeren scriptstap kunt u een subscript binnen een ander script uitvoeren.)
- Welke scriptstappen moeten onder welke omstandigheden worden uitgevoerd? Moet elke scriptstap altijd worden uitgevoerd? Moeten sommige scriptstappen een aantal keer worden uitgevoerd tot aan een bepaalde voorwaarde is voldaan? Moet het script andere scripts en subscripts oproepen? U kunt de voortgang van het script op een aantal verschillende manieren besturen. Raadpleeg Scriptstappen voor besturing voor meer informatie over hoe u scripts met voorwaardelijke stappen kunt maken.
- Wilt u het script uitvoeren in een specifieke lay-out? Omdat scripts op het niveau van het volledige bestand zijn gedefinieerd en vanuit elke lay-out kunnen worden opgeroepen, moet u ervoor zorgen dat het script gebruik maakt van de gewenste lay-out of lay-outs. Gebruik de Ga naar lay-out scriptstap als u een specifieke lay-out wilt activeren.
- Moet het script van toepassing zijn op alle records in de database, de actieve gevonden reeks of een specifieke reeks records? (Gebruik de Scriptstappen voor gevonden reeksen om alleen de records waarmee u wilt werken op te nemen in de gevonden reeks.)
- Bevinden de benodigde gegevens zich in één databasebestand of zijn bij de uitvoering van het script meerdere bestanden betrokken? Als u meerdere bestanden wilt gebruiken, welke bestanden moeten dan in het script worden geopend? In welk bestand moeten het script of de scripts worden gedefinieerd? Doorgaans wordt een script gedefinieerd in hetzelfde bestand dat de gegevens bevat. Voor app op maat die meer dan één bestand omvatten, is het mogelijk dat u in elk bestand afzonderlijke scripts moet definiëren, afhankelijk van hoe complex de taak is die u met een script wilt uitvoeren.
- Met welke record moet het script beginnen? Als u bijvoorbeeld de Loop scriptstap gebruikt, moet u bepalen of de lus bij de eerste of laatste record, een door u opgegeven record of de actieve record in de gevonden reeks begint. (Gebruik de Ga naar record/verzoek/pagina scriptstap, Ga naar gerelateerde record scriptstap of Ga naar portaalrij scriptstap als u een beginrecord wilt opgeven. Als u geen navigatiescriptstap opneemt om een record als huidige record in te stellen, begint de lus met de actuele record op het moment dat het script wordt uitgevoerd.)
- Welk venster wilt u gebruiken? Een script is in eerste instantie gekoppeld aan een specifiek venster, dat zich op de achtergrond kan bevinden. Het script blijft op dat venster tot een scriptactie overschakelt naar een ander venster. Gebruik bijvoorbeeld de Venster selecteren scriptstap om een ander venster op te geven. Als het opgegeven venster niet beschikbaar is, schakelt het script over naar het voorgrondvenster van het bestand. Wanneer u een script onderbreekt, wordt het gekoppelde venster het voorgrondvenster indien het beschikbaar is. Raadpleeg Scriptstappen voor vensters.
- Moet in het script tussen verschillende modi worden overgeschakeld ? Een script kan worden uitgevoerd vanuit de modus Bladeren, Zoeken, Lay-out of Schermafdruk. Zorg er voor dat uw script zich in de juiste modus bevindt voordat het een bewerking uitvoert. Gebruik bijvoorbeeld de Ga naar Bladeren scriptstap om gegevens in velden en records te wijzigen en gebruik de Ga naar Zoeken scriptstap om een zoekopdracht te definiëren of uit te voeren.
Opmerking Wanneer u een script in de lay-outmodus start, wordt automatisch overgeschakeld naar de bladermodus voordat het script wordt uitgevoerd.
- Welke velden en lay-outs zijn nodig voor het script? Sommige stappen (zoals de Ga naar veld scriptstap en de Tekst invoegen scriptstap) vereisen een veld in het huidige lay-out, terwijl andere (zoals de Veld instellen scriptstap) dit niet doen. Gebruik de Ga naar lay-out scriptstap om te schakelen naar een lay-out met de velden die voor uw script vereist zijn of plaats de velden in het grijze gedeelte rechts van de lay-out om de velden beschikbaar te maken voor scriptstappen maar niet voor gebruikers.
- Moeten de records in een bepaalde volgorde worden verwerkt? U hebt de keuze uit de huidige sorteervolgorde, een op te geven sorteervolgorde of geen sorteervolgorde (de volgorde waarin de records zijn gemaakt). Gebruik de Records sorteren scriptstap of de Sorteren van records opheffen scriptstap voordat u een lus activeert om de records in de juiste volgorde te plaatsen alvorens ze te verwerken.
- Hoe moet het script door meerdere velden of records heen gaan? (Gebruik de Ga naar record/verzoek/pagina scriptstap, de Loop scriptstap, de Exit Loop If scriptstap en de End Loop scriptstap om het verloop van de verwerking van meerdere velden of records te bepalen).
- Wanneer moet het script eindigen? Nadat alle scriptstappen zijn uitgevoerd? Nadat aan een bepaalde voorwaarde is voldaan? (Gebruik de If scriptstap, de Else If scriptstap en de Else scriptstap om een taak uit te voeren, zoals de Script afsluiten scriptstap, wanneer het script een opgegeven voorwaarde bereikt.)
- Moeten gebruikers in staat zijn het actieve script te stoppen? Bevat het script een proces dat kan leiden tot onvolledige of onjuiste gegevens als het script te vroeg wordt gestopt? Gebruik de Onderbreken door gebruiker toestaan scriptstap om te beheren of gebruikers een script kunnen stoppen.
- Hoe gaat u uw script testen? Gebruik de Script onderbreken/hervatten scriptstap om op vooraf ingestelde punten in uw script te pauzeren. Sla een kopie van uw database op en definieer en test uw script hierin, zodat de oorspronkelijke gegevens behouden blijven.
Opmerking U kunt de Script Debugger gebruiken om uw scripts te testen en problemen met uw scripts op te lossen. Raadpleeg Scripts debuggen.
- Hoe verwerkt u fouten (zoals een lege gevonden reeks)? Met de Get (LaatsteFout) functie kunt u de laatste fout vastleggen die door FileMaker Pro is gedetecteerd. Gebruik deze functie en de If scriptstap, de Else If scriptstap en de Else scriptstap om scripts te maken waarin op een gepaste manier wordt gereageerd op eventuele fouten van gebruikers of onverwachte resultaten. Voor nog meer besturingsopties kunt u de Foutafvanging instellen scriptstap gebruiken om foutmeldingen, die in deze omstandigheden doorgaans worden weergegeven, te onderdrukken en met de Aangepast dialoogvenster tonen scriptstap te vervangen door foutmeldingen die u zelf kunt opgeven.
- Mogen alle gebruikers alle scripts uitvoeren? Gebruik privilegesets als u de toegang van de gebruikers tot uw scripts wilt beperken. Door privilegesets te gebruiken, bepaalt u of gebruikers alle scripts, specifieke scripts of helemaal geen scripts kunnen uitvoeren of wijzigen. Bovendien kunt u voor elke privilegeset een standaardtoegangsrecht instellen voor eventuele nieuwe scripts die in de toekomst in het bestand zullen worden gedefinieerd. Als u voor een script opgeeft dat het met volledige toegangsprivileges wordt uitgevoerd, zorgt u ervoor dat het script voor de gebruiker bewerkingen kan uitvoeren die doorgaans niet zijn toegestaan voor de privileges die aan deze gebruikers zijn toegewezen. Raadpleeg Privilegesets maken en bewerken.
- Hoe zullen gebruikers het script uitvoeren? U moet ofwel een knop maken om het script uit te voeren ofwel opgeven dat het script aan het menu Scripts moet worden toegevoegd. Scripts kunnen ook vanuit de Scriptwerkruimte worden uitgevoerd of wanneer een scriptactivering wordt geactiveerd. U kunt bijvoorbeeld de BijEersteVensterOpenen scriptactivering gebruiken om een script uit te voeren wanneer de database wordt geopend.
Als u deze vragen hebt beantwoord, bent u klaar om scripts in uw database te beheren. Raadpleeg Scripts maken en bewerken.