- 166 Views
Claris FileMaker developers sometimes write long-running scripts to process data by looping through many records. In some cases, users may need to stop the process in the middle of its execution.
In such situations, what can we do?
- Allow User Abort in Claris FileMaker
The "Allow User Abort" feature in Claris FileMaker allows users to cancel a process. This feature can be used anywhere in the scripts you write in Claris FileMaker, allowing users to stop the process at any time by pressing the "Command + Period" (Mac) or "Control + Period" (Windows) key combination.
- Adding a "Cancel" Button
By adding a "Cancel" button to your process, you can give users the option to cancel the process at any stage. When this button is pressed, you can add the appropriate code to end the process.
- Using "Get(ActiveModifierKeys)"
In Claris FileMaker, you can determine if the user is holding down the "Control" key or using another key combination to cancel the process with the "Get(ActiveModifierKeys)" function. This way, you can cancel the process when a specific key combination is pressed.
- Using the "OnTimer" Script
In Claris FileMaker, the "OnTimer" script can be run as a script that repeats at a specific interval. This allows the script to end itself after a certain period of time when the user wants to cancel the process. This way, the process will not be completed without the user's permission.
Each of these methods allows users to safely cancel a process without causing unintended consequences. The method you choose may vary depending on your process and user experience goals.
In this article, we will discuss how Claris FileMaker scripts, especially those with long processing times, can be safely stopped using the "ESC" key. The method we will use will provide users with the ability to stop the script while also including methods to prevent potential inconsistencies in the unfinished process.
In Claris FileMaker, while a script is running, you can stop it by pressing the ESC key or the command + . (period) key combination. This feature is useful when the script is unexpectedly taking a long time to run or when it produces an unexpected result outside of the user's intention.
First, you need to decide what kind of behavior you want your scenario to allow. There are many places where you might need a script to run to completion. In such cases, you may want to turn off 'Allow User Abort' to prevent the user from canceling the script. This is a different use case and is outside the scope of this example. However, in cases where it is appropriate to cancel the script as long as you ensure that the clean-up happens in some way, the following example will be perfect for you.
This is a simple example, but you can easily expand it for any solution you have.
OnTimer Standing By
The essence of this solution is based on an OnTimer (Script Trigger) Script Trigger.
First, we initialize a global variable that indicates that we are in an 'Incomplete' state. Immediately after, we load an OnTimer Script Trigger. What OnTimer does is simply wait. And it keeps waiting. If this script is cancelled, the following cleanup script will be triggered. But the great thing is that OnTimer will not wait until the script is cancelled or ends - it will be executed in either case.
The most important part of the cleanup script is that it needs to immediately stop the OnTimer script trigger. Otherwise, it will enter an infinite loop.
The rest is quite simple. In the example, we show messages depending on the global variable. If the "$$_status" variable is "Incomplete," then the main script has been cancelled. But if it is "Complete," then the main script has successfully completed the task.
For a real solution, you can allow the user to return to a familiar layout and even delete some records if necessary. At this point, you're in charge, the developer.
For more information on how to control stopping scripts with "ESC" in FileMaker, watch the mini tutorial.
With Cabitaş Engineering Claris FileMaker trainings, become knowledgeable not only about how solutions are made, but also about why certain things are done. Learn about our organization-specific and general trainings. Join Cabitaş Engineering's FileMaker trainings and accelerate your company. If you want to get to know FileMaker or improve your FileMaker skills, attend our professional Claris FileMaker trainings. For detailed information about Claris FileMaker Education, please check out our FileMaker Education page.
As Cabitaş Engineering-Claris Turkey Solution Partner, we offer training, consulting, and custom FileMaker software development services on the Claris platform. In addition, with Cabitaş Engineering's solution partner structure, we bring you together with Claris solution partners according to your region or industry, offering you the most suitable solutions.
Do you need support? You can contact us via the communication form.
Download link sent to your email address