FileMaker developers with a background in common programming languages such as C, C++, Java have been deprived a while function since the creation of FileMaker. With the release of FileMaker 18, the wait is over: developers will now have a new tool in the While function.

In most computer programming languages, the While function, or more generically, the While loop is a statement that will allow code to be executed repeatedly until a boolean condition is no longer true. A While loop can be thought of as a repeating If statement.

The official definition of the new function is that it “repeats logic while the condition is true, then returns the result.”

Parameters

Let’s take a look at the parameters used in the While function.

  • [Initial Variable]
  • Condition
  • [Logic]
  • Result

The condition, logic, and result seem pretty straightforward when paired with the definition. Before each iteration, FileMaker checks to make sure the boolean condition is true. As long as it is, FileMaker will evaluate the statements within [logic].  As soon as the condition no longer evaluates to ‘True,’ FileMaker returns the result.

Initial Variables

Variables defined within the [Initial Variable] parameter will be available and consistent throughout the iteration process. Variables can also be set within logic, but there is a critical difference to note, being that variables in logic will be reevaluated on each iteration.

Developers that are familiar with the Let function will have an easier time understanding how this portion of the new While function operates. Similar to the Let function, variables live within the function, they do not require a preceding ‘$’, and they cease to exist once the function returns the result.

Condition

The condition parameter is where we tell the function when to stop iterating. From the help documentation: “While True, the loop repeats. When False, the loop stops.”  This is inverted from what we typically see in FileMaker. For example, the Exit Loop If script step tells FileMaker to exit the loop when the condition is True. Here, only if our condition is false will the function cease to iterate.

Logic

The logic parameter is where the we define the calculations to be performed on each iteration of the loop. The following picture shows a simple use of a While function. While ‘i’ is less than 11, append ‘i’ to the ‘outcome’ variable, which will later act as the result (a counted list to 10). The logic parameter in this case recursively generates the outcome variable as it increments the i variable to manage the number of iterations.

Result

This is how we set what the result returned after it is done iterating. In many uses of the While function, the result is similar to the example above, where each iteration is critical to reaching a correct end result. FileMaker developers no longer have to rely on custom functions to use recursion.

Set Recursion Limit

Along with the arrival of the While function, is the arrival of a function that it will work with nicely. SetRecursion. Similar to the way the EvaluationError function can only be used in tandem with a call to the Evaulate function, the SetRecursion fuction takes a calculation expression as a parameter.

The SetRecursion function sets the maximum number of iterations for recursion and loops within an expression. By default, the While function and recursive custom functions are both limited to 50,000 iterations. The SetRecursion function allows you to increase or decrease this number. If the maxIterations parameter is exceeded by the expression in the expression parameter, the function will return a ‘?’ The FileMaker 18 documentation uses the following calculation to demonstrate this:

This calculation results in ‘?’ because the While calculation used as a parameter of SetRecursion needs to loop through 10 times to get the result, but the SetRecursion limits it to 5. If the SetRecursion calculation was removed, or changed so that maxIterations is greater than or equal to 10, the While calculation would calculate as usual and return a list of integers from 1 to 10.

FileMaker: the premier Workplace Innovation Platform

In conclusion, these additions to the FileMaker toolbox will make it even easier to get data from your disparate sources into the app built for your business. Developers will be able to save time by no longer needing to develop or find custom functions that suit their recursive needs. It’s these kinds of features that really set FileMaker apart as the premier workplace innovation platform.

2 comments

  1. Ryan, I think your spell checker goofed up. The last sentence in the Initial Variables section, reads, “and they seek to exist once the function returns the result.” I think you meant cease instead of seek.
    Enjoyed the conciseness of your article. I will save it for reference.

    Posted by Rick Torchia on July 9, 2019. Reply

    • Kyler Mitchell

      Thanks for pointing that out, Rick! I took care of editing that. We’re glad you enjoyed the article! Hopefully you’ve subscribed to our blog so you don’t miss any updates from our awesome developers!

      Posted by Kyler Mitchell on July 17, 2019. Reply

Leave a comment

Your email address will not be published. Required fields are marked *