Skip to main content

Flagged Functions

Introduction

Flagged Functions are functions that you have indicated that you would like to be notified about when looking at fields, scripts, script steps, layouts, layout objects, and custom functions in the results list.  These are great for keeping track of where you are using functions that may need special care, or are potential performance issues. For example, one of the default columns is setup for tracking Evaluate(), which can be slow, and fragile.  It's exactly the kind of thing you want to keep an eye out for.

You can even set them up to search for more then one function, and combine the results into a single flag. See the  Interesting Note below

Video

Feature Details

Exact Match is required for function names. You just need the whole name, not any of the parens, or parameters.

  • Length                 -> works
  • Length ( text )      -> doesn't work
  • Leng      -> doesn't work

Get Functions

Get Functions are a little different. Since "Get" isn't specific, you need to use the part that is inside the parens. For example:

  • Get            -> doesn't work
  • LastError   -> works

There are 6 special columns:

  • Get(ScriptParameter)?
  • Get(ScriptResult)?
  • Evaluate()?
  • ExecuteSQL()?
  • User Defined 1
  • User Defined 2

Available in the list view on the following objects:

  • Fields
  • Scripts
  • Script Steps
  • Layouts
  • Layout Objects
  • Custom Functions

You can change what functions these columns are looking for in the application Preferences. Once they are defined they will show up on the list view as described above.  You can sort on these columns as well.

Important

There are 2 things you must do to see your preference changes reflected in FMPerception's flagged functions columns:

  1. Save the changes in preferences.  You must click the Save button.
  2. Either hit Refresh, or load a new DDR.  Because FMPerception caches its query results, once it has determined how to display a list of, say, Fields, it will not recalculate the results of that query until you tell it to dump the old results.  The two ways to do that are to either hit File->Refresh (which will tell FMPerception to clear its memory of the previous data and load it anew from the source DDR files), or make a new DDR Browser window and point it at a DDR.

If you change the Flagged Functions preferences again, you just need to save, and refresh (or reload) again.

Interesting Note!

You can setup each column to look for more than one function.  This is really helpful for when you might be using a custom function to do ExecuteSQL. The default settings have an example of this.  The ExecuteSQL() column is configured to look for ExecuteSQL, and for a custom function called "@.sqlExecute", from the FileMaker SQL Sugar collection of custom functions.  See image.

If either of these functions (or both) are present in one of the relevant items, the dot will appear in the ExecuteSQL() column.