

As a developer, I consider data caching a matter of good practice.
Filemaker pro 10 find unmatched records update#
You should also ensure you update the Invoice Subtotal when deleting an invoice line record.Ĭongratulations, you have cached your data and improved the performance of your FileMaker database! See how much faster your reports generate now. We can add a script to the OnObjectSave script trigger of the Quantity and Price fields that will calculate our Invoice Subtotal. To get around this issue, we will have to use some scripting. The “Auto-Enter Calculated value” will not re-calculate if the field referenced is in another table. If you were to make the same changes as we did for the invoice line and make the Subtotal a “Number” field with an “Auto-Enter Calculated value,” you would notice that it does not re-calculate whenever the Invoice Line values change. This solves half of the issue, but changing the Invoice Subtotal is a little more tricky. Ensure the “Do not replace existing value of field (if any)” option is unchecked so that the field will recalculate whenever the Quantity or Price changes. Let’s make the necessary changes in our eXample above to improve FileMaker performance.Ĭhange the Invoice Lines Totals field to a number field and use the “Auto-Enter Calculated value” option for the formula. What else can I do? Cache your data! The definition of cache is “to store away in hiding or for future use.” You want to store your data so that you can run reports in the future. You’re probably thinking, Well, I need my totals to calculate. Now imagine what your FileMaker system must go through for some of the complicated calculations we developers create.
time-consuming), even though it’s a simple calculation. As you can see, this has the potential to be a very laborious process (i.e. Now, this isn’t too much of a problem with one record, but imagine trying to calculate 10,000, 100,000 or even 1 million invoices for a report! You could take a heck of a coffee break while you wait.

Each time you enter the Invoice layout, FileMaker must take time to generate the results of all of the Invoice Line Totals and then sum those results. Likewise, on the invoice table we have a field called Subtotal - this is also an unstored calculation field that sums the related Invoice Lines Totals. The Invoice Lines table has a field called Totals - this is an unstored calculation with the formula Quantity * Price. Let’s say we have a database with an Invoice and Invoice Lines table. The good news is - you can improve slow FileMaker performance with this data caching trick. It may be easier to use unstored calculations in order to get your database functionality working, but this will inhibit your system from scaling with your business in the long run. They must calculate the data each time the field is displayed. Just as the names indicate, “unstored” calculation fields and “summary” fields don’t store any data. If you have unstored calculation or summary fields on your layout, this will most certainly be the issue.

Have you ever wondered, “What is taking this report so long to generate?” or “Why does this layout take so long to load?” It may be that your FileMaker fields are set up inefficiently.
