Automatisera uppgifter med scripts
Scripts kan användas för enkla rutinuppgifter, t.ex. att ställa in sidorientering, och för mer komplicerade uppgifter, t.ex. att förbereda utskick till kunder.
Du kan exempelvis definiera en komplex uppsättning uppgifter som skapar ett tackmeddelande till de kunder i en kunddatabas som har gjort en beställning den senaste veckan. Scriptet sammanställer ett specialanpassat e-postmeddelande till varje kund. Scriptet växlar till granskningsläge och gör en paus så att du kan se hur meddelandet kommer att se ut innan det skickas. Aktiviteten påbörjas när du klickar på en knapp i layouten Kunduppgifter.
Du skapar scripts genom att välja bland FileMaker Pro-kommandon i en lista, så kallade scriptsteg, ange tillval (om det behövs) och ordna scriptstegen i rätt ordning för att utföra uppgiften.
Script körs vanligtvis på klienten, men det kan vara bra att köra några script på FileMaker Server eller FileMaker Cloud för att förbättra prestandan eller automatiskt köra i ett schema. Mer information finns i Om att köra scripts på FileMaker Server och FileMaker Cloud.
Planera ett script
Ju mer tid du ägnar åt att planera ditt script, desto troligare är det att du uppnår det resultat som du har tänkt dig. Ställ dig följande frågor under planeringen:
- Går det att dela upp uppgiften i mindre deluppgifter? Du kan definiera delscripts för varje enskild deluppgift och därefter definiera ett script som utför delscripten. Det är lättare att utforma och testa flera små scripts än ett enda stort. Du kan även återanvända dina delscripts inom andra områden. (Använd Scriptsteget Utför script om du vill använda ett delscript i ett annat script.)
- Vilka scriptsteg ska köras och under vilka omständigheter? Ska alla scriptsteg alltid köras? Ska vissa scriptsteg köras ett antal gånger tills ett visst villkor är uppfyllt? Ska scriptet anropa andra scripts och delscripts? Du kan styra scriptets förlopp på flera olika sätt. Mer information om hur du skapar scripts med villkorsstyrda steg finns i Scriptsteg i kategorin Kontroll.
- Vill du att scriptet ska köras i en viss layout? Scripts definieras på filnivå och kan anropas från vilken layout som helst. Du bör därför se till att scriptet fungerar i alla layouter där det kan tänkas användas. Använd Scriptsteget Gå till layout för att byta layout.
- Ska scriptet arbeta med samtliga poster i databasen, de hittade posterna eller en viss uppsättning poster? (Använd Scriptsteg för sökresultat om du bara vill visa de hittade poster som du vill arbeta med.)
- Finns alla data du behöver i en enda databasfil eller ska scriptet utföra uppgifter i flera filer? Om du använder flera filer, vilka ska scriptet öppna? I vilken fil ska scriptet (scripten) definieras? I de flesta fall bör ett script definieras i samma fil som de data som bearbetas av scriptet. I anpassade appar med mer än en fil kan det behövas separata scripts i varje fil, beroende på hur pass komplexa uppgifter som ska utföras av scriptet.
- Vilken post ska scriptet börja med? När du till exempel använder Scriptsteget Loop måste du bestämma om loopen ska börja med den första eller den sista posten, med en speciell post eller med den aktuella hittade posten. (Använd Scriptsteget Gå till post/sökpost/sida, Scriptsteget Gå till relaterad post eller Scriptsteget Gå till portalrad för att ange en startpost. Om du inte lägger till ett scriptsteg för navigering för att bestämma vilken post som är den aktuella, startar loopen med den post som är den aktuella posten när scriptet utförs.)
- Vilket fönster vill du använda? Ett script är från början kopplat till ett specifikt fönster vilket kan finnas i bakgrunden. Scriptet förblir i fönstret till en scriptåtgärd växlar till ett annat fönster. Du kan t.ex. använda Scriptsteget Välj fönster om du vill ange ett annat fönster. Om angivet fönster inte är tillgängligt växlar scriptet till förgrundsfönstret för filen. När du pausar ett script kommer det associerade fönstret att bli förgrundsfönstret, om det är tillgängligt. Mer information finns i Scriptsteg för fönster.
- Ska scriptet växla mellan olika lägen? Ett script går att köra från bearbetningsläge, sökläge, layoutläge och granskningsläge. Kontrollera att scriptet är i rätt läge innan du använder det. Använd till exempel Scriptsteget Bearbeta när du ska ändra data i fält och poster och Scriptsteget Sök när du ska utforma en sökpost eller utföra en sökning.
Obs! Scripts i layoutläge växlar automatiskt till bearbetningsläge innan de utförs.
- Vilka fält och layouter kommer scriptet att behöva? Vissa steg (exempelvis Scriptsteget Gå till fält och Scriptsteget Infoga text) kräver att ett fält ligger på den aktuella layouten, medan andra (exempelvis Scriptsteget Tilldela fält) inte gör det. Använd antingen Scriptsteget Gå till layout för att växla till en layout som har de fält som scriptet kräver, eller placera fälten i det grå området till höger om layouten för att göra fälten tillgängliga för scriptstegen, men inte för användarna.
- Ska posterna bearbetas i en viss ordning? Fastställ om posterna ska använda den aktuella sorteringsordningen eller en bestämd sorteringsordning eller om de ska vara osorterade (i den ordning som de skapades). Använd Scriptsteget Sortera poster och Scriptsteget Sortera ej poster innan du anger en loop för att ordna posterna i rätt ordning innan du bearbetar dem.
- Hur ska scriptet gå igenom flera fält och poster? (Använd Scriptsteget Gå till post/sökpost/sida, Scriptsteget Loop, Scriptsteget Exit Loop If och Scriptsteget End Loop för att styra bearbetning av flera fält eller poster.)
- När ska scriptet sluta? När alla scriptsteg har körts? När ett visst villkor uppfyllts? (Använd Scriptsteget If, Scriptsteget Else If och Scriptsteget Else om du vill utföra en uppgift som Scriptsteget Avsluta script när ett visst villkor uppfylls.)
- Ska användare kunna stoppa scriptet medan det körs? Innehåller scriptet en process som kan resultera i ofullständiga eller felaktiga data om scriptet avslutas för tidigt? Använd Scriptsteget Tillåt användaren att avbryta för att styra om användare kan stoppa ett script.
- Hur ska du testa scriptet? Använd Scriptsteget Paus/fortsätt script om du vill göra paus vid förutbestämda platser i scriptet. Spara en kopia av databasen och definiera och testa scriptet i kopian så att originaldatabasen bevaras intakt.
Obs! Du kan använda Scriptdebuggern för att testa och felsöka script. Mer information finns i Debugga scripts.
- Hur ska du hantera fel som uppstår (t.ex. om inga poster hittas vid sökning)? Du kan ta reda på det senaste felet som har rapporterats av FileMaker Pro med hjälp av Funktionen Get ( SenasteFel ). Använd den här funktionen samt Scriptsteget If, Scriptsteget Else If och Scriptsteget Else när du vill skapa scripts som svarar på användarfel eller oväntade resultat. Om du vill ha ännu större kontroll kan du använda Scriptsteget Manuell felhantering för att dölja de felmeddelanden som normalt visas i sådana situationer och ersätta dem med egna felmeddelanden med Scriptsteget Visa anpassad dialogruta.
- Bör alla användare tillåtas att utföra scriptet? Använd behörighetsuppsättningar för att styra användarnas tillgång till scripts. Med hjälp av behörighetsuppsättningar kan du tillåta att användarna utför eller ändrar enstaka script, inga scripts eller alla scripts. Du kan också ange standardbehörighet för varje behörighetsuppsättning för alla scripts som definieras senare i filen. Om du anger att ett script ska köras med fullständig behörighet kan scriptet utföra uppgifter åt användarna som normalt inte tillåts med användarnas behörighet. Mer information finns i Skapa och redigera behörighetsuppsättningar.
- Hur ska användarna utföra scriptet? Du måste antingen skapa en knapp som ska utföra scriptet eller ange att scriptet ska läggas till på Scripts-menyn. Det går också att köra script från Scriptfönster eller när en scripttrigger aktiveras. Du kan t.ex. använda scripttriggern VidFörstaFönsterÖppna och köra ett script när databasen öppnas.
När du har tänkt igenom de här frågorna kan du börja hantera scripts i databasen. Mer information finns i Skapa och redigera script.