Skip to main content

FMPerception Version History

Version 20.1.0 - Support for FileMaker Pro 2023

First of all, my profoundest apologies for the delay in releasing this version. The original intention had been to take a "brief" break from FMPerception to finish off FMComparison. Unfortunately, FMComparison took far longer than anticipated, and FMPerception updates fell behind. I'm sorry, and my hope is that we'll now be able to get back to a more consistent and up-to-date release schedule. Thank you for your patience.

Mac and Windows Changes:

  • Added support for new standard functions.
  • Added support for new script steps.
  • Fixed an issue related to Plug-In Script Steps.
  • New FMPerception Logo!

Mac-Only Changes:

  • Applied a fix for the "permanent spinning beachball" issue when navigating the hierarchy. If you continue to encounter this issue, please contact support@proofgeist.com

Notes of common interest:

  • The new file-level script trigger "OnWindowTransaction" is not yet available DDR XML. Once Claris adds it, we'll make an adjustment.

Download version

Version 19.0.0 - Support for FileMaker Pro 19

Mac and Windows Changes:

  • Added support for new standard functions.
  • Added support for new script steps.
  • The script steps Execute FileMaker Data API and Perform JavaScript in Web Viewer have been added to the Indirection Sources results.
  • Scripts now display a column indicating when the script allows access as a Siri Shortcut.
  • Privilege Sets now display a column indicating when the privilege set allows management of accounts.
  • The Standard Functions query now displays a column indicating when the functionality of a function changed in FileMaker Pro 19, even when the DDR was exported in FileMaker Pro 18. It is strongly recommended that you check for functions marked “Functionality change in FileMaker Pro 19” before migrating to FileMaker Pro 19.

Windows-Only Changes:

Huge thanks to Jonn Howell for the following:

  • In parsing the Top Call Stats report, the IP Address and User Name columns were swapped. This had an impact on both the base export and the UI for summary by IP Address and User Name. Fixed.

Mac-Only Changes:

Huge thanks to Tom Oathoudt for the following:

  • In some cases, FMPerception could crash while processing the Top Call Stats by FileMaker Element. Fixed.

Notes of common interest:

  • Add-ons: there does not appear to be any indication in the DDR as to when an add-on has been used (as of the last beta release). Once FileMaker objects are added to the database, they are just “FileMaker objects”, not add-on elements.
  • The indicator for when a script is visible in the scripts menu appears to be missing from the DDR (as of the last beta release).

Download version

Version 18.0.5 - Initial macOS 10.15 Catalina Support

NOTE: There is no version 18.0.5 for Windows. These are all macOS-specific changes. So, the current version for Windows is 18.0.1 and for macOS is 18.0.5.

Mac-Only Changes:

  • FMPerception 18.0.5 adds support for the new forthcoming security model in macOS 10.15 Catalina.
  • FMPerception is now notarized by Apple, and built using the hardened runtime.
  • There are no other functional changes in FMPerception 18.0.5.

What does this mean for users:

18.0.4 continues to run under Catalina, but when launched will display a dialog that macOS is unable to check this app for "malicious" code. You can override this message by right-clicking on the FMPerception application and selecting "Open". My personal preference is to not require users to take that step. Since FMPerception contains its own auto-update engine, 18.0.4 will update to 18.0.5 even after installing Catalina, but that would require a user to authorize the "unsecure" version to run so that the auto-update will occur. The optimal way to address this issue is to download FMPerception 18.0.5 before upgrading to Catalina. Then, the only dialog you may see is the "This application was downloaded from the internet..." one.

There are no other functional changes in this version. Upgrading now serves only to make your Catalina upgrade run a little smoother... and to retain FMPerception's status as a good macOS citizen.

Download version

Version 18.0.4 - macOS Bug Fixes

NOTE: There is no version 18.0.4 for Windows. These are all macOS-specific changes. Additionally, FMPerception version 18.0.2 only ever existed in the hands of beta testers. So, the current version for Windows is 18.0.1 and for macOS is 18.0.4.

Mac-Only Changes:

Huge thanks to Josh Ormond for the following:

  • In certain situations, viewing Themes would cause FMPerception to crash. This has been resolved.

Huge thanks to Ethan Shoshin for the following:

  • FMPerception was refusing to open a DDR XML summary file from the desktop, citing registration issues. This has been resolved.

Download version

Version 18.0.3 - The Return of Dark Mode

NOTE: There is no version 18.0.3 for Windows. These are all macOS-specific changes. Additionally, FMPerception version 18.0.2 only ever existed in the hands of beta testers. So, the current version for Windows is 18.0.1 and for macOS is 18.0.3.

Mac-Only Changes:

  • Support for Mojave Dark Mode is back! While it was added by accident in 18.0.0 (and suppressed in 18.0.1), FMPerception 18.0.3 has official support for dark mode.
    • By default, it is controlled from the OS-level settings.
    • If you would like the rest of your OS to use dark mode while FMPerception stays in light mode, there's a checkbox in Preferences/Navigation (at the bottom) that says "Force Light Mode for FMPerception". If you check this box (and hit the save button), FMPerception will use the classic light mode, even if the rest of macOS is in dark mode. If you uncheck this box (and hit save), FMPerception will defer to the OS setting.
    • The report card and call chain diagram still have a white background. This may or may not change in the future. If you have strong feelings on the matter, I'd love to hear them.
    • This is the first version of support for dark mode. If you find something I missed, or if you disagree with any of my color choices, please let me know.

Huge thanks to Duncan Baker for the following:

  • The latest builds (particularly visible/distracting in dark mode) had a blue focus box around the Results table at the bottom. Removed.
  • Duncan also noticed that the text labels that display the number of items found in Results (and the number of items selected) were actually editable. Fixed.

Huge thanks to Duncan Baker and Shawn Krueger for the following:

  • macOS Mojave 10.14.5 had some threading conflicts with the latest version of FMPerception, which resulted in crashes the first time FMPerception was launched after an update... and, in some cases, a series of crashes. Fixed.

Huge thanks to David Zakary for the following:

  • 10.14.5 also caused a similar threading conflict in displaying Calculations (flat). This has been fixed.

Download version

Version 18.0.1 - Tweaks to 18 support

Mac and Windows Changes:

  • Added support for non-English variants of the new calculation functions.
  • Added support for a couple of additional new calculation functions.

Mac-Only Changes:

  • Support for Mojave Dark Mode was added by accident, and has not been properly tested. I've temporarily disabled it for FMPerception while I complete testing and adjustments to properly support it. That support will include a menu option to disable it for FMPerception alone. My apologies for the confusion.

Version 18.0.0 - FileMaker Pro 18 Advanced Support!!!

Important Note:

In FileMaker Pro 18 Advanced, there is a new option under the tools menu for “Save a Copy as XML...”. This feature exports an XML file which contains data that is similar in many ways to the DDR, but differs structurally. While it contains information which is not present in the DDR, it is missing other elements that are critical to displaying the kind of information you've come to expect from FMPerception. While I eagerly anticipate the time when we'll be able to include support for these files and their new details in FMPerception, that day is not today. For now, FMPerception will display a detailed error message if you try to open this kind of XML. Please continue to use the current DDR for analysis with FMPerception.

Mac and Windows Changes:

  • Added detail sidebar support for the new FileMaker 18 script steps.
  • Added support for the new FileMaker 18 calculation functions.
  • Added support for the new FileMaker 18 barcode types.

Huge thanks to Robert Naud for the following:

  • While the conditional menu item for “Copy For FileMaker” for scripts and script folders and script separators displays, the folders and separators could not actually be copied. Fixed.

Huge thanks to Mario Antonini for the following:

  • Certain characters in a sub-script name could cause the Call Chain Diagram to fail to render properly. Fixed.

Windows-Only Changes:

  • Windows 10 and TLS changes required updating to using .NET 4.7.2. and Visual Studio 2019.
  • There are many ways in which to generate a unique id for a Windows machine, and none of them are quite universal. In recent versions of Windows, Microsoft has taken to changing some of these unique IDs when Windows updates are applied, which caused Windows users’ copies of FMPerception to be un-registered after an update. In FMPerception 18.0.0, we moved to using a new series of hardware identifiers for registration purposes. My hope is that these will prove more static than the identifiers previously used. My sincere apologies for the disruption caused by previous issues.

Mac-Only Changes:

Huge thanks to Alan Kirtlink for the following:

  • In certain situations, FMPerception could experience a crash due to a threading issue when crawling the relationship graph in a multi-file system. Fixed.

Download version

Version 18.0.0 - FileMaker Pro 18 Advanced Support!!!

Important Note:

In FileMaker Pro 18 Advanced, there is a new option under the tools menu for “Save a Copy as XML...”. This feature exports an XML file which contains data that is similar in many ways to the DDR, but differs structurally. While it contains information which is not present in the DDR, it is missing other elements that are critical to displaying the kind of information you've come to expect from FMPerception. While I eagerly anticipate the time when we'll be able to include support for these files and their new details in FMPerception, that day is not today. For now, FMPerception will display a detailed error message if you try to open this kind of XML. Please continue to use the current DDR for analysis with FMPerception.

Mac and Windows Changes:

  • Added detail sidebar support for the new FileMaker 18 script steps.
  • Added support for the new FileMaker 18 calculation functions.
  • Added support for the new FileMaker 18 barcode types.

Huge thanks to Robert Naud for the following:

  • While the conditional menu item for “Copy For FileMaker” for scripts and script folders and script separators displays, the folders and separators could not actually be copied. Fixed.

Huge thanks to Mario Antonini for the following:

  • Certain characters in a sub-script name could cause the Call Chain Diagram to fail to render properly. Fixed.

Windows-Only Changes:

  • Windows 10 and TLS changes required updating to using .NET 4.7.2. and Visual Studio 2019.
  • There are many ways in which to generate a unique id for a Windows machine, and none of them are quite universal. In recent versions of Windows, Microsoft has taken to changing some of these unique IDs when Windows updates are applied, which caused Windows users’ copies of FMPerception to be un-registered after an update. In FMPerception 18.0.0, we moved to using a new series of hardware identifiers for registration purposes. My hope is that these will prove more static than the identifiers previously used. My sincere apologies for the disruption caused by previous issues.

Mac-Only Changes:

Huge thanks to Alan Kirtlink for the following:

  • In certain situations, FMPerception could experience a crash due to a threading issue when crawling the relationship graph in a multi-file system. Fixed.

Download version

Version 17.0.5

Mac and Windows Changes:

  • When FMPerception is unable to load a file in a DDR due to corruption, the message in the sidebar now contains a link to the DamageDetectoR product page.

Huge thanks to Mike Zarin for the following:

  • A “Self Join?” column has been added to the Relationships list and the Predicates list, to indicate when a table is joined to another TO from the same base table.

Huge thanks to Joel Sciamma for the following:

  • Layout fields now have a column displaying the type of keyboard presented when editing this field in FileMaker Go.

Huge thanks to Jens Hillen for the following:

  • FMPerception’s Diff engine will now more accurately display changes to value lists

Mac-Only Changes:

Huge thanks to Robert Naud for the following:

  • “Copy for FileMaker” support for table fields and layout objects is functioning properly once again.

Huge thanks to Nils Waldherr for the following:

  • If you cancel the Open dialog while a DDR file in selected, FMPerception will no longer proceed to open the file anyway.

Download version

Version 17.0.4

Mac and Windows Changes:

  • If 2 versions of a DDR for files with the same name are exported to a single folder while renaming the Summary file, you’ll have 2 summary files, but only a single backing DDR file (with all the metadata) shared between the two. FMPerception will now notice if a Diff is performed where two Summary files are actually pointing to a shared backing DDR file.
  • During registration, FMPerception now checks for leading and/or trailing whitespace in the registration code before attempting to register.

Huge thanks to Markus Schneider for the following:

  • In the predicates list, column “Field Name B” is now properly displaying the field name, rather than the TO name.

Huge thanks to Robin Penfold for the following:

  • JSONBoolean and JSONNull no longer appear as plugin functions.

Huge thanks to James D Evans, Benedick Miller, and Eric Lindholm for the following:

  • Better support for excluding broken references that occur in deactivated lookups, auto-entry calculations, and relationship sorts.

NOTE: Behind-the-scenes change on macOS

It turns out that libxml2 (the xml parsing library used on macOS) has a maximum node count limit for a single query... 10,000,000 nodes. In the case of DDR XML, this happens at just over 450MB of XML for a single database. Once the file exceeded this size, certain queries would fail to run. For example, the “Uses” column on the Custom Functions list would populate with all zeros. The standard libxml2 has been replaced in this version of FMPerception with a custom-built fork of the library that does not have this limitation (or rather, changes it to 100,000,000 nodes, which should move the limit to about 4.5GB of DDR XML... which should be enough for now). Thank you to Kevin M Cunningham for bringing this to our attention.

The xml parsing library on Windows does not have this limitation, at least that I can confirm with any files that I have access to. That said, we have identified a situation where FMPerception for Windows might crash if handed a sufficiently complex query on a sufficiently large DDR, due to the OS's handling of unresponsive apps; i.e. if FMPerception takes too long to respond, Windows will shut it down prematurely, rather than allow the query to complete. This issue has been reported only once in the wild that we can determine. A solution for this issue is in development.

Download version

Version 17.0.2 - More New Functions in 17

Jeremy Brown brought 2 new calculation functions to my attention that I had somehow missed.

  • Get(ActiveRecordNumber) is now identified as a standard FileMaker function in all supported languages.
  • IsValidExpression() is now identified as a standard FileMaker function in all supported languages.

NOTE: Windows Bug:

16.1.0 introduced a bug that would disable the ability of FMPerception for Windows to check for new versions. The bug has been fixed in 17.0.0. However, this means that you will have to manually update to 17.0.0 by using the Windows download link at FMPerception.com. Once you're on 17.0.0, you should be able to automatically update to 17.0.1 and leter versions. My apologies for the confusion.

Download version

Version 17.0.1 - Improving FileMaker 17 Support, and PauseOnError Changes

Every year, there are things that you can only know for sure once the full, final FileMaker version is actually released (and the translated documentation is available).

  • FMPerception will now recognize the new FileMaker calculation functions as Standard Functions in all supported languages.
  • In 17, FileMaker changed the language for designating when a plugin script step is no longer available. This text is now identified as a broken reference in all supported languages.
  • The script steps that export, save, or otherwise output files to folders have an option for "Creates Directories". This is now reflected in the sidebar text for those script steps.

At PauseOnError, there were a couple of suggestions made that I wanted to (and could) implement quickly:

  • The report card has been expanded to display the count and percentage of fields that are populated via Auto-Entry Calculation or Lookup.
  • The report card has been expanded to display the count and percentage of fields that are validated in any way.
  • The report card has been expanded to display the count and percentage of relationships that:
    • permit the creation of related records.
    • will delete related records automatically.

NOTE: Windows Bug:

16.1.0 introduced a bug that would disable the ability of FMPerception for Windows to check for new versions. The bug has been fixed in 17.0.0. However, this means that you will have to manually update to 17.0.0 by using the Windows download link at FMPerception.com. Once you're on 17.0.0, you should be able to automatically update to 17.0.1 and leter versions. My apologies for the confusion.

Download version

Version 17.0.0 - FileMaker 17 Support!

  • Now supports copying Custom Menu Sets, Custom Menus, and Custom Menu Items from FMPerception, and pasting them into FileMaker.
  • Perform Script (by name) and Perform Script on Server (by name) were added to the indirection sources list.
  • Added support for the new functions GetSensor() and Get(UUIDNumber).
  • The new Configure Local Notification script step will properly generate script references
  • Properly displays when Show Custom Dialog points an input field at a variable (and the Global Variables list will find them).
  • Added support for portals that display the current found set.
  • And a bunch of other little tweaks to better support FileMaker 17

Windows Bug:

  • 16.1.0 introduced a bug that would disable the ability of FMPerception for Windows to check for new versions. The bug has been fixed in 17.0.0. However, this means that you will have to manually update to 17.0.0 by using the Windows download link at FMPerception.com. My apologies for the confusion.

Mac and Windows Changes:

  • Added a top level query for Predicates, allowing you to easily view each individual relationship predicate as a separate object. Useful for:
    • Getting a list of every field used as a key, and in what context
    • Looking for places where non-equals (as opposed to "not equals") predicates were used
    • Quickly identifying which predicates are for non-matching field types
    • And whatever else you can think of...
  • The names of the base tables for both table occurrences of a relationship are now displayed as columns in the Relationship list (Thanks, Ken Newell!)
  • If a plugin script step used a popup, and the popup was left at its default, clicking on the script step could cause FMPerception to crash.

Mac-Only Changes:

  • Fixed an issue where clicking the back button when you are already at the top could cause FMPerception to crash. (Thanks, HOnza Koudelka!)
  • Fixed an issue that could cause Indirection Sources to crash when running against a single file DDR (or a single file in a multi-file DDR). (Thanks, Kent Searight!)
  • Fixed an issue that could cause filter criteria containing double-quotes (") to not properly filter. (Thanks, Kirk Rheinlander!)

Download version

Version 16.1.2 - Quick Release Bug Fix - macOS Only

Huge thanks to Mike Zarin for the following:

  • Fixed an issue that could cause FMPerception to crash when exporting the results of a Diff.
  • macOS only. The Windows version was unaffected.

Version 16.1.1 - Quick Release Bug Fix - macOS Only

Huge thanks to Kirk Rheinlander for the following:

  • Fixed an issue that would cause script folders under Scripts and Groups to not properly display their contents.
  • macOS only. The Windows version was unaffected.

Version 16.1.0 - Indirection Sources

But First: An Auto-Update Note For macOS Users

I've received 2 reports of auto-update failing to notify users of new versions on macOS, even when "check for updates" is selected from the menu. Please check to see if you are running the latest and greatest version of FMPerception (as of this update, 16.1.0). Let us know if you are not being informed of updates that you are entitled to, based upon your support.

Indirection Sources

The big (visible) feature for this release is a single place to look to help identify if indirection is being used in a system, and the opportunity to review these potential sources to determine if further action/attention is required.

  • New query just below Unreferenced Objects called "Indirection Sources (Slow)"
  • 38 separate areas in the database are checked to help determine the system's exposure to indirection
    • 16 standard calculation functions
    • 11 design functions
    • 5 script steps
    • 2 methods of external file reference
  • The Report Card adds a column to the summary section (at the top) for Indirection Sources, and a block at the very bottom for the total count of indirection sources. Note: If you'd like to see more details on the report card here, let us know.

Behind The Scenes - Technical Platform Updates

While not generally visible, lots of changes occurred behind the scenes. Both macOS and Windows versions have been brought up to date with the latest technical platforms.

  • macOS was successfully migrated from Swift 2 to Swift 4, and is using the latest Xcode for compilation.
  • Windows is now using Visual Studio 2017.

You may or may not notice the changes, but this means that FMPerception is keeping up with technical changes as necessary, and we have access to the latest debugging and performance analysis tools available... which will definitely have an impact on the end-user experience.

Mac and Windows Changes:

  • Calculation definitions for calculation fields, auto-entry calculations and validation calculations are now in the Results table for Tables/Fields and Fields (flat), for ease of exporting and external analysis. This was requested by a number of users, and I've lost track of exactly who requested it first. Thank you to you all.
  • The "Configure Region Monitor Script" step will now be treated properly as a script reference.

Huge thanks to Lisette Wilson for the following:

  • Finding References to a Custom Menu Set is now much, much faster.

Huge thanks to Jerry Robin for the following:

  • A typo in the documentation section in the Details sidebar when looking at Fields (flat) was fixed.

Huge thanks to Michael Jasper for the following:

  • Clicking on a Call Chain Diagram dot that has no children threw an exception in the javascript. This displays an error dialog on Windows. It was handled silently on macOS. Fixed in both platforms for consistency.

Huge thanks to James Rusch for the following:

  • When Windows is set to require FIPS compliance, FMPerception no longer crashes during startup. While FMPerception is not doing anything cryptographic, its use of the MD5 hash to help generate a device ID violated FIPS standards. When FIPS compliance is required, FMPerception will now shift to using a variant of SHA1 instead.

Huge thanks to Oliver Brodwolf for the following:

  • The sort order on fields was changed from just case-insensitive to something better able to handle mixed text and numbers in columns. It was most obvious when sorting Text Search results by Location. The change was made to all text columns. Windows still sorts the old way, as achieving this kind of contextually-aware sorting in Windows is about as complicated as it would be in FileMaker (i.e. very not-easy).

Windows-Only Changes:

  • If you check for updates and there are no updates, FMPerception will confirm that this is the case, rather than just silently continuing.

macOS-Only Changes:

  • FMPerception on macOS now has tabbed browsing. If you open two or more DDR Browser windows, you can select the Window -> Merge All Windows menu item to combine all open windows into a single tabbed window. They act as standard tabs, so they can reordered or independently closed.
    • This happened automatically as part of upgrading to the latest Xcode, and no code was written to support this. There are currently no plans to do the non-trivial work required to do something similar on the Windows side.

Download version

Version 16.1.1 - Quick Release Bug Fix - macOS Only

Huge thanks to Kirk Rheinlander for the following:

  • Fixed an issue that would cause script folders under Scripts and Groups to not properly display their contents.
  • macOS only. The Windows version was unaffected.

Version 16.1.0 - Indirection Sources

But First: An Auto-Update Note For macOS Users

I've received 2 reports of auto-update failing to notify users of new versions on macOS, even when "check for updates" is selected from the menu. Please check to see if you are running the latest and greatest version of FMPerception (as of this update, 16.1.0). Let us know if you are not being informed of updates that you are entitled to, based upon your support.

Indirection Sources

The big (visible) feature for this release is a single place to look to help identify if indirection is being used in a system, and the opportunity to review these potential sources to determine if further action/attention is required.

  • New query just below Unreferenced Objects called "Indirection Sources (Slow)"
  • 38 separate areas in the database are checked to help determine the system's exposure to indirection
    • 16 standard calculation functions
    • 11 design functions
    • 5 script steps
    • 2 methods of external file reference
  • The Report Card adds a column to the summary section (at the top) for Indirection Sources, and a block at the very bottom for the total count of indirection sources. Note: If you'd like to see more details on the report card here, let us know.

Behind The Scenes - Technical Platform Updates

While not generally visible, lots of changes occurred behind the scenes. Both macOS and Windows versions have been brought up to date with the latest technical platforms.

  • macOS was successfully migrated from Swift 2 to Swift 4, and is using the latest Xcode for compilation.
  • Windows is now using Visual Studio 2017.

You may or may not notice the changes, but this means that FMPerception is keeping up with technical changes as necessary, and we have access to the latest debugging and performance analysis tools available... which will definitely have an impact on the end-user experience.

Mac and Windows Changes:

  • Calculation definitions for calculation fields, auto-entry calculations and validation calculations are now in the Results table for Tables/Fields and Fields (flat), for ease of exporting and external analysis. This was requested by a number of users, and I've lost track of exactly who requested it first. Thank you to you all.
  • The "Configure Region Monitor Script" step will now be treated properly as a script reference.

Huge thanks to Lisette Wilson for the following:

  • Finding References to a Custom Menu Set is now much, much faster.

Huge thanks to Jerry Robin for the following:

  • A typo in the documentation section in the Details sidebar when looking at Fields (flat) was fixed.

Huge thanks to Michael Jasper for the following:

  • Clicking on a Call Chain Diagram dot that has no children threw an exception in the javascript. This displays an error dialog on Windows. It was handled silently on macOS. Fixed in both platforms for consistency.

Huge thanks to James Rusch for the following:

  • When Windows is set to require FIPS compliance, FMPerception no longer crashes during startup. While FMPerception is not doing anything cryptographic, its use of the MD5 hash to help generate a device ID violated FIPS standards. When FIPS compliance is required, FMPerception will now shift to using a variant of SHA1 instead.

Huge thanks to Oliver Brodwolf for the following:

  • The sort order on fields was changed from just case-insensitive to something better able to handle mixed text and numbers in columns. It was most obvious when sorting Text Search results by Location. The change was made to all text columns. Windows still sorts the old way, as achieving this kind of contextually-aware sorting in Windows is about as complicated as it would be in FileMaker (i.e. very not-easy).

Windows-Only Changes:

  • If you check for updates and there are no updates, FMPerception will confirm that this is the case, rather than just silently continuing.

macOS-Only Changes:

  • FMPerception on macOS now has tabbed browsing. If you open two or more DDR Browser windows, you can select the Window -> Merge All Windows menu item to combine all open windows into a single tabbed window. They act as standard tabs, so they can reordered or independently closed.
    • This happened automatically as part of upgrading to the latest Xcode, and no code was written to support this. There are currently no plans to do the non-trivial work required to do something similar on the Windows side.

Download version

Version 16.1.0 - Indirection Sources

But First: An Auto-Update Note For macOS Users

I've received 2 reports of auto-update failing to notify users of new versions on macOS, even when "check for updates" is selected from the menu. Please check to see if you are running the latest and greatest version of FMPerception (as of this update, 16.1.0). Let us know if you are not being informed of updates that you are entitled to, based upon your support.

Indirection Sources

The big (visible) feature for this release is a single place to look to help identify if indirection is being used in a system, and the opportunity to review these potential sources to determine if further action/attention is required.

  • New query just below Unreferenced Objects called "Indirection Sources (Slow)"
  • 38 separate areas in the database are checked to help determine the system's exposure to indirection
    • 16 standard calculation functions
    • 11 design functions
    • 5 script steps
    • 2 methods of external file reference
  • The Report Card adds a column to the summary section (at the top) for Indirection Sources, and a block at the very bottom for the total count of indirection sources. Note: If you'd like to see more details on the report card here, let us know.

Behind The Scenes - Technical Platform Updates

While not generally visible, lots of changes occurred behind the scenes. Both macOS and Windows versions have been brought up to date with the latest technical platforms.

  • macOS was successfully migrated from Swift 2 to Swift 4, and is using the latest Xcode for compilation.
  • Windows is now using Visual Studio 2017.

You may or may not notice the changes, but this means that FMPerception is keeping up with technical changes as necessary, and we have access to the latest debugging and performance analysis tools available... which will definitely have an impact on the end-user experience.

Mac and Windows Changes:

  • Calculation definitions for calculation fields, auto-entry calculations and validation calculations are now in the Results table for Tables/Fields and Fields (flat), for ease of exporting and external analysis. This was requested by a number of users, and I've lost track of exactly who requested it first. Thank you to you all.
  • The "Configure Region Monitor Script" step will now be treated properly as a script reference.

Huge thanks to Lisette Wilson for the following:

  • Finding References to a Custom Menu Set is now much, much faster.

Huge thanks to Jerry Robin for the following:

  • A typo in the documentation section in the Details sidebar when looking at Fields (flat) was fixed.

Huge thanks to Michael Jasper for the following:

  • Clicking on a Call Chain Diagram dot that has no children threw an exception in the javascript. This displays an error dialog on Windows. It was handled silently on macOS. Fixed in both platforms for consistency.

Huge thanks to James Rusch for the following:

  • When Windows is set to require FIPS compliance, FMPerception no longer crashes during startup. While FMPerception is not doing anything cryptographic, its use of the MD5 hash to help generate a device ID violated FIPS standards. When FIPS compliance is required, FMPerception will now shift to using a variant of SHA1 instead.

Huge thanks to Oliver Brodwolf for the following:

  • The sort order on fields was changed from just case-insensitive to something better able to handle mixed text and numbers in columns. It was most obvious when sorting Text Search results by Location. The change was made to all text columns. Windows still sorts the old way, as achieving this kind of contextually-aware sorting in Windows is about as complicated as it would be in FileMaker (i.e. very not-easy).

Windows-Only Changes:

  • If you check for updates and there are no updates, FMPerception will confirm that this is the case, rather than just silently continuing.

macOS-Only Changes:

  • FMPerception on macOS now has tabbed browsing. If you open two or more DDR Browser windows, you can select the Window -> Merge All Windows menu item to combine all open windows into a single tabbed window. They act as standard tabs, so they can reordered or independently closed.
    • This happened automatically as part of upgrading to the latest Xcode, and no code was written to support this. There are currently no plans to do the non-trivial work required to do something similar on the Windows side.

Download version

Version 16.0.7

Mac and Windows Changes:

  • Performance increases:
    • Script Call Chain diagrams are now much faster to display, especially in large, multi-file systems.
    • Layout Objects (flat) is now faster to display, especially in large, multi-file systems.
    • Huge thanks to Mark Jockin and his team for access to their DDR, which made wonderful test data for illustrating the problem.
  • Added a menu option to export the contents of the results web view. Now you can export, email and save your Report Cards and Script Call Chain diagrams. A couple of notes:
    • While tooltips and other mouse-over effects still work, clicking on elements won't drill into them anymore. Those hyperlinks require that the URL be clicked from inside FMPerception
    • Because of the embedded engine that FMPerception uses, these exports will likely view best from Safari on macOS and Edge on Windows. If you are using other platforms or other browsers, your mileage may vary. Let me know if you have any issues.
    • In the short term, this functionality will allow you to use your browser to print or PDF the documents until such time as FMPerception supports printing natively.
    • There's a known bug in the macOS implementation of the Script Call Chain diagram. If you open the exported HTML document in Safari and then expand the browser window, the boundaries of the diagram will not also expand. Short term solution: refresh the page once you've resized the browser window.
    • This one was requested so many times, I've lost track of who asked first. Sorry.
  • The Global Variables list now respects case.
    • Previously, all global variables in the global variables list were displayed all lowercase.
    • Now, FMPerception groups all global variables ignoring case (as FileMaker does internally), but then displays the Global Variable by its most common capitalization pattern.
    • If the global variable is referenced using variations in case, the 'Case Variants' column will display all variants for that global variable (including,in parentheses, the number of times that variant was used). All variants will dsiplayed in order from most common to least common.
    • A line was added to the report card to indicate how many global variables have been references using inconsistent case.
    • This one also was requested so many times, I've lost track of who asked first.
  • Numerous typos were fixed in the Report Card, including a couple of 1/x math errors and a division error that caused the display of potentially very large percentages.

Huge thanks to Chiyoko Yoshida for the following:

  • Table Occurrences based off of Tables which have been deleted (and Layouts based upon those TOs) will provide better documentation in the detail sidebar about what elements are missing and why there are blanks in the results table.

Huge thanks to John Renfrew for the following:

  • When the contents of a script are displaying in the details sidebar, the formatting of blank script comment lines was subtly adjusted to make them more consistent with actual functional lines, making them easier to parse.

Huge thanks to Todd Geist for the following:

  • The JSON constant "functions" that specify node/property type were appearing as plugin functions. They now appear properly as FileMaker Pro standard functions

Mac-Only Changes:

  • The FMP ID column for table occurrences no longer uses a comma separator.
  • There were spots in the report card where the HTML used to format the text became visible. This has been fixed.

And finally, my apologies: The new Diff tool has taken quite a bit longer than anticipated. It's still on it's way.

Download version

Version 16.0.6 - Post-DevCon Tweaks.

I'm still working on the new Diff functionality that was demoed at DevCon, but I wanted to get some of these tweaks into the hands of users without waiting any longer.

Mac and Windows Changes:

Huge thanks to Shamoto Shuji for the following:

  • Added a column to display the index language for a Results list of table fields.

Huge thanks to Rod Levin for the following:

  • Table occurrences with apostrophes in the names will no longer cause issues when getting references for table fields.

Huge thanks to John Renfrew for the following:

  • The complete script text has been added to a column for script lists to aid in batch-exporting script content.
  • Line numbers have been added to the formatted display of a script in the Details sidebar.

Huge thanks to Kimberly Madore for the following:

  • If a GTRR referenced a local layout based upon a base table stored in a remote file, the reference would not be considered for purposes of the Unreferenced Objects list.

Windows-Only Changes:

  • Detail sidebar now properly displays the name of a relationship when that relationship is selected from a list.

Download version

Version 16.0.5 - Small Features and Bug Fixes.

Mac and Windows Changes:

  • When the FileMaker 16 support was merged into the main version, the functionality of the All Comments column of the Calculation List was rolled back to its previous state. The All Comments column will once again flag calculations that are nothing but stringified comments.
  • Fixed report card help text typo

Huge thanks to Kevin Chavez for the following:

  • In a multi-file system, relationships that connect to a table occurrence from a table stored in a remote file will now display the name of the source file. The relevant information is available in new columns in the Results pane, and a new line in the Detail sidebar.
  • Table Fields whose lookups have been broken via certain uncommon mechanisms will now properly appear as Broken References.

Mac-Only Changes:

Huge thanks to Radu-Dan Sabau for the following:

  • In Switzerland and Liechtenstein, the thousands separator is an apostrophe, which was breaking JSON string delimiting in the Report Card for sufficiently complex systems. The Report Card should now work properly for similarly affected users

Download version

Great Things in the Pipeline...

A lot of my current development hours are going into a massive new feature that I'm trying to get prepped for DevCon. That said, I did want to get these adjustments into your hands as soon as they were ready. Don't forget to stop by the Geist Interactive booth At DevCon in Phoenix. I'm looking forward to talking to as many of you as I can in the days available.

Version 16.0.4 - Small Features and Bug Fixes.

Renewal of Support:

When you renew your support of FMPerception, that all happens on the Geist Interactive servers. However, because FMPerception is not continuously checking the registration server, you may need to refresh your registration info before your copy of FMPerception will notice a renewal of support. This is intentional, as it was never our intention to have FMPerception constantly "phoning home", but it does mean that periodically your copy of FMPerception won't get the word immediately.

  • There is now a hyperlink on the registration window to "refresh" your local registration.
  • This happens automatically whenever you update to a new version of FMPerception.

Mac and Windows Changes:

  • When clicking on a script, the Detail sidebar now displays the full text of the script with indenting. This is intended for copying and pasting into an email or other rich text editor.
  • Value List references now capture sorts (with a custom order based on a value list) and value lists in remote files (that externally reference the indicated list).
  • Added information about 12 plugins from Troi Plugins and 360Works to the plugin registry, so that they can now be identified by their plugin script steps even when the plugin is not present.
  • Report Card now displays a count of layout buttons that execute a single step (rather than Perform Script).

Windows-Only Changes:

  • Windows now supports setting FMPerception as the official handler for .xml files.

  • If you set FMPerception as the default application for .xml files, you can:

  • double-click on a Summary.xml file to open it directly in FMPerception (in a new window).

  • leave the "Automatically open report when done" checkbox on the DDR export screen on. When the export is complete, it will immediately open in FMPerception.

  • If you regularly edit or view .xml files in another application as part of your work, there is no penalty to not setting FMPerception as the default application

  • Mac users: The same functionality for macOS was added in a previous update. This change brings the equivalent feature to Windows.

  • Bug Fix: Fixed a periodic crasher when loading layout objects on pre-15 DDRs.

  • Bug Fix: Button names now display a more verbose description of what the button does in the Action section.

Huge thanks to Mike Zarin for the following:

  • Value List references once again display Location and Detail columns.

Huge thanks to Kevin Frank for the following:

  • Detail sidebar for a script step now displays the script step number.

Huge thanks to Kevin Chavez for the following:

  • Table Occurrences now indicate (in the Results and the Details) if they are for a table in a database other than the database where the TO is defined.

Download version

Version 16.0.3 - Year Two Support.

On May 27, 2017, FMPerception will celebrate its 1 year anniversary! The good news is that our first year included lots of great updates and cool new features. The bad news is that those who purchased FMPerception way back when will begin to reach the end of the one year of included updates. In order to better support what happens then, we had to make some adjustments.

NOTE: This is a critical update! If you are not running 16.0.3 or later, FMPerception's update engine will:

  • macOS: quite happily update you to a version that is not covered by your support.
  • Windows: not provide any updates beyond 16.0.2.

Changes:

  • Updates and Registration Changes:
    • When you purchase FMPerception, you get one year of "support", where all updates are included.
    • About 30 days before your support expires you will receive an email from support@geistinteractive.com with a link that will allow you to renew your support for an additional year at 50% off the cost of a new license.
    • The same link is available from within FMPerception:
      • Under the FMPerception menu is an option for FMPerception Registration/Trial.... There is a link for "Renew your support".
      • Under the Help menu is an menu item for "Renew Support" (macOS only)
    • FMPerception is not in constant contact with the registration server, so FMPerception may not immediately notice when you renew your support. FMPerception will automatically check with the server whenever a new version is installed or when your support finally expires. Alternately, you can force FMperception to check with the server at any time by clicking the refresh (↻) button on the upper right-hand corner of the screen FMPerception Registration/Trial... (accessible under the FMPerception menu).
  • Once your support expires:
    • You will not be able to run versions of FMPerception released after the date your support expires.
    • If you activated automatic updates, the process will continue to run. Versions released after your support has expired will raise a dialog to notify you of the new version, but the new version will not be installed. This is to stop you from updating to a version which you don't actually have the right to use.
    • The update process will always install the latest and greatest version that was released before your support expired.
    • There is nothing to stop you from going to geistinteractive.com and manually downloading or installing versions that you do not have the privileges to use. To continue using FMPerception, you'll either have to renew support or download an earlier version.

Version 16.0.2 - Year Two Support - Window Only

Version 16.0.2 is the last version released using Microsoft's ClickOnce technology for updates. It was released purely for purpose of helping migrate users to 16.0.3.

Download version

Version 16.0.1 - Dialing-In FileMaker 16!

There were quite a few things that needed to be adjusted to really encapsulate all of 16's new and adjusted features:

Mac and Windows Changes:

  • Lots of Detail sidebar changes to better display new script step properties and settings
  • The new FileMaker functions should no longer appear as plugin functions when the DDR is generated in a non-English language.
  • Global Variable references will now include variable-as-external-data-source and the new "Insert" script step functionality that can target a variable.
  • The "Type" column in the Account list was renamed to "Authenticate Against", now that we've got OAuth authentication options
  • Added a line to the report card to indicate when active accounts are being Authenticated via OAuth
  • More plugin script steps can now provide information about their plugin
  • Added a note in the Detail sidebar about a FileMaker bug where the DDR can display incorrect information about the Configure Region Monitor Script script step. See the Bug Report for further information. This seems to just make the step display wrong in DDR tools. It does not appear to have a functionality impact.
  • Value List copy-and-paste to FileMaker added.
  • ...and basically all the new FileMaker features had to be re-checked against the actual final release.

Huge thanks to Duncan Baker for the following:

  • If a portal filter is deactivated, the calc is still exported in the DDR. Calc is now displayed in Detail sidebar tagged as "[INACTIVE]". Not specifically 16-related, but it was fixed in this version.

Download version

Version 16.0.0 - FileMaker 16 Support Added!

This version adds support for the DDR-relevant changes to FileMaker Pro 16. A couple of caveats:

  • There are many changes to FileMaker 16 that do not touch the DDR. For example, the new Layout Object Tree in FileMaker 16 is very cool, but doesn't appear to have an impact on the DDR.
  • This is a first pass. There will be new features that will be added to FMPerception once FileMaker 16 gets into the hands of users, and users come up wth new questions that FMPerception can help answer.
  • There may have been last minute changes to FileMaker 16 that were not provided to developers. If you encounter problems, let us know, and bug fixes/new features will be forthcoming. I'll be doing my own testing with the final release version, but more eyes is always better.

We've also changed the version numbering scheme for FMPerception. FMPerception's major version numbers will be tied to the relevant FileMaker version. So, you'll always know what version of FileMaker is supported by a particular version of FMPerception. This is also relevant because we're going to continue to target day and date support for new FileMaker versions. I can't promise that we'll always make it on the day of release, but we will definitely try.

NOTE: FMPerception 16 just adds FileMaker 16 to the list of supported FileMaker versions. Nothing has been removed. FMPerception 16.0.0 supports FileMaker 12 through 16. FMPerception 1.4.6 and earlier support FileMaker 12 though 15.

Mac and Windows Changes:

  • Support for new extended privileges added (fmextscriptaccess, fmurlscript, and fmrest) to account/privilege set/extended privilege displays, and to the report card (so you can now quickly get a list of accounts that can access the new REST features, for example)
  • Support for new FileMaker Standard Functions added (like the new JSON functions)
  • Support for new Plugin Script Steps added:
    • Top level query added called "Plugin Script Steps"
    • Plugin script step information added to report card
    • FileMaker 16 exports a plugin identifier when exporting the exporting the script step. FMPerception provides information in the Details sidebar about the plugin itself, including a URL for getting more information. What's really awesome is that FileMaker exports this identifier even when the plugin is unavailable, which means that FMPerception can tell you which plugin is missing. This requires that the plugin developer have provided us with the relevant information. If you use a plugin script step, and you're not seeing this information, ask the plugin developer to contact support@geistinteractive.com.
    • NOTE: There still is no support for the plugin identifier for plugin functions in the DDR, so FMPerception can't tell you which plugin is missing if you only used plugin functions... Which means that if your plugin supports script steps, you should use one somewhere in a "documentation" script, just so that the reference is stored.
  • Support added for standard script steps with new behaviors (like New Window, GTRR, Go To Layout, and Insert from Device)
  • Support for new standard script step added ("Set Layout Object Animation")
  • Support added for new file options (Allow Keychain Access To Save Password, Require IOS Passcode, and Hide All Toolbars)
  • Completely blank calculation strings (no calc, no comment) are now suppressed from the Calculations list.

Mac-Only Changes:

  • Removed the contextual menu from a bunch of queries where it was erroneously visible. Things that contain no XML to copy (like FMPerception navigational elements) no longer offer the opportunity to copy them. I'm sure I missed a couple, but it's certainly better now.

Download version

Version 1.4.6 - Bug Fixes

Mac and Windows Changes:

  • Calculation List Fixes:
    • FileMaker Pro has a bug where some calculations that are nothing but comments will be wrapped in double-quotes, as if it were a string whose contents looked like a FileMaker comment. The All Comment column now flags these, even though they technically a string. As part of this, the display of the All Comment column has been changed from the purple-dot style to the stoplight style. So, Calculations that are comments force-wrapped as strings get a red octagon. Calculations that are entirely standard comments just get a yellow caution triangle.
    • Calculation list no longer displays unexpressed conditional formatting calculations when a CF was changed from formula-based to value-based.
    • Some placeholder text calculations, and hide calculations on some layout object types, were being omitted. This has been resolved.
  • Fixed intermittent Crasher in Themes/Report Card on multi-file systems. It was only a crasher on macOS, but on both macOS and Windows it is now faster in multi-file systems.
  • Typo fixed: In the Detail sidebar, when looking at a New Window (or GTRR) script step, Zoom Control no longer appears as "Zom Control".

Mac-Only Changes:

  • Broken References is a little slower now. A bug in Broken References multi-threading meant that running broken references on a multi-file system would omit the references from some of the files. Multithreading for this query has been temporarily disabled until I can resolve the issue.

Windows-Only Changes:

Huge thanks to Steve Saperstein for the following:

  • Fixed an intermittent crasher when copying XML while running Windows in 32-bit.

Huge thanks to Steve Hockwin for the following:

  • Non-English DDRs intermittently omitted broken references indicated by language-specific strings.

Download version

Version 1.4.5 - Quick Fix for Diffing (Mac-only)

Huge thanks to Chiyoko Yoshida for the following:

  • The menu option for "New DDR Diff Processor" will once again bring up a new diff processor on the macOS version.
  • The Windows version was unaffected, and remains at version 1.4.4

Version 1.4.4 - Relationship Naming and macOS File Handling

Mac and Windows Changes:

  • We've changed the way we order the TOs when describing relationships. In the DDR, FileMaker tags one TO as "left" and one TO as "right" , but these tags are unrelated to relative positioning of the TOs in the relationship graph. They would be more accurately tagged as "first/second" or "from/to", as the "left" TO is the one dragged from and the "right" TO is the one dragged to. In the interest of providing a descriptor that might be more useful more often, we've changed to organizing the 2 TOs alphabetically, so that the relationship will go from Table Occurrence A to Table Occurrence B. Special thanks to Shawn Krueger for asking the questions that lead to figuring this out.
  • Updated copyright year in OS-level application info

Mac-Only Changes:

  • You can now set FMPerception as the default handler of XML files. If you get info on one of the DDR Summary.xml files, you can tell the OS to "Open With" FMPerception, and then click the "Change All" button. Now, double-clicking on one of these files will launch FMPerception, make a new document window, and load that DDR. It's really slick and fast.
    Notes:
    • Once you have that association established, you can also quickly open a DDR from FileMaker's DDR export screen by leaving the "Automatically open report when done" checkbox turned on for the XML export. This will not do a Refresh, but will always open a new DDR window (which can be very useful for quick comparisons).
    • The OS does not distinguish between the Summary.xml files and the other XYZ_fmp12.xml files for specific database files. If you double click one of these, you'll get a dialog that says "The provided file is not a valid FileMaker DDR Summary.xml file." The resulting blank DDR Browser window will be left open.
    • This does not yet work on Windows dues to some unresolved technical issues. I'm still working on it, but I didn't want to hold up the macOS release any longer waiting for the Windows support for this feature.
  • Return of Auto-Generate Report Card - I'm still seeing support requests from users whose preferences got set to auto-generate the report card. This feature was only ever intended for those who work with very small systems, or when working on a section of a project where you're just going to have to run the report card every time for some certain period. Unfortunately a bug in a previous version of FMPerception turned this preference ON for a number of users. Putting a comment in the release notes did not reach all the users. So, this version of FMPerception check the status of this toggle and displays a confirmation dialog if you'd like to keep it (with a default to disable this feature). The dialog will only display once.
    • Most users won't see the dialog at all
    • If you see the dialog, you very likely want to hit "Diable Auto-Report Card" or just hit return (and enjoy substantively faster DDR load times...)
    • If you really want to continue seeing the report card first, click "Continue Auto-Report Card", and I won't bother you about it again.
  • Resolved periodic crasher when filtering Results using the "Everything" filter style.
  • Filter by Everything should now be a little faster, as it only searches the visible columns. Windows already did this.

Windows-Only Changes:

  • App now properly appears in the task manager as "FMPerception".

Huge thanks to Peter Schubert for the following:

  • Resolved periodic crasher when viewing unreferenced objects in multi-file DDRs. (macOS and Windows)

Download version

Version 1.4.4 - Relationship Naming and macOS File Handling

Mac and Windows Changes:

  • We've changed the way we order the TOs when describing relationships. In the DDR, FileMaker tags one TO as "left" and one TO as "right" , but these tags are unrelated to relative positioning of the TOs in the relationship graph. They would be more accurately tagged as "first/second" or "from/to", as the "left" TO is the one dragged from and the "right" TO is the one dragged to. In the interest of providing a descriptor that might be more useful more often, we've changed to organizing the 2 TOs alphabetically, so that the relationship will go from Table Occurrence A to Table Occurrence B. Special thanks to Shawn Krueger for asking the questions that lead to figuring this out.
  • Updated copyright year in OS-level application info

Mac-Only Changes:

  • You can now set FMPerception as the default handler of XML files. If you get info on one of the DDR Summary.xml files, you can tell the OS to "Open With" FMPerception, and then click the "Change All" button. Now, double-clicking on one of these files will launch FMPerception, make a new document window, and load that DDR. It's really slick and fast.
    Notes:
    • Once you have that association established, you can also quickly open a DDR from FileMaker's DDR export screen by leaving the "Automatically open report when done" checkbox turned on for the XML export. This will not do a Refresh, but will always open a new DDR window (which can be very useful for quick comparisons).
    • The OS does not distinguish between the Summary.xml files and the other XYZ_fmp12.xml files for specific database files. If you double click one of these, you'll get a dialog that says "The provided file is not a valid FileMaker DDR Summary.xml file." The resulting blank DDR Browser window will be left open.
    • This does not yet work on Windows dues to some unresolved technical issues. I'm still working on it, but I didn't want to hold up the macOS release any longer waiting for the Windows support for this feature.
  • Return of Auto-Generate Report Card - I'm still seeing support requests from users whose preferences got set to auto-generate the report card. This feature was only ever intended for those who work with very small systems, or when working on a section of a project where you're just going to have to run the report card every time for some certain period. Unfortunately a bug in a previous version of FMPerception turned this preference ON for a number of users. Putting a comment in the release notes did not reach all the users. So, this version of FMPerception check the status of this toggle and displays a confirmation dialog if you'd like to keep it (with a default to disable this feature). The dialog will only display once.
    • Most users won't see the dialog at all
    • If you see the dialog, you very likely want to hit "Diable Auto-Report Card" or just hit return (and enjoy substantively faster DDR load times...)
    • If you really want to continue seeing the report card first, click "Continue Auto-Report Card", and I won't bother you about it again.
  • Resolved periodic crasher when filtering Results using the "Everything" filter style.
  • Filter by Everything should now be a little faster, as it only searches the visible columns. Windows already did this.

Windows-Only Changes:

  • App now properly appears in the task manager as "FMPerception".

Huge thanks to Peter Schubert for the following:

  • Resolved periodic crasher when viewing unreferenced objects in multi-file DDRs. (macOS and Windows)

Download version

Version 1.4.2 - Small Features, and a Couple Bug Fixes

Mac and Windows Changes:

  • Added a column to the results pane for table fields that displays the type of validation applied (if any).
  • Added a column to the results pane for relationships that shows a yellow caution symbol when one of the predicates have mismatching field types, and a red stop sign when one of the predicate fields is no longer available (or otherwise missing from the DDR). If both issues are present, it will show as a red stop sign.
  • Clicking on a flagged relationship will show which particular predicate has issues in the details pane.
  • Added a line for broken relationships to the report card.

Mac-Only Changes:

  • When launched outside of the Applications folder, FMPerception will no longer ask to move itself to ~/Applications. Instead, it will ask to move to /Applications (as most developers would prefer).

Windows-Only Changes:

  • When looking at a Table Occurrence whose name contains a " or '(or a relationship using such a TO), FMPerception no longer crashes.

Huge thanks to Shawn A. Krueger for the following:

  • When a field is validated by value list, the name of the value list now appears in the detail pane. (Mac and Windows)

Download version

Version 1.4.1 - Some Quick Bug Fixes

Huge thanks to Stephane Lapierre for the following:

  • Detail filtering and freeform text search now properly support a single quote (') in the search string. (Mac and Windows)

Windows-Only Changes:

  • FMPerception should no longer crash when handed a Top Call Stats.log file with zero log lines.
  • FMPerception is now more fault tolerant of connection issues when connecting with the registration server.

Download version

Version 1.4.0 - Calculations List

As FileMaker Pro has grown in flexibility in recent years, it has also become easy to break elements of a solution in non-obvious ways.

  • If you paste a field into a new system, one of its calculation definitions (calculation field definition, auto-entry, or validation) may reference something unavailable, and the calculation will be commented out.
  • If you copy a layout object, the hide condition, conditional formatting, or calculated placeholder text will break (if you are lucky).
  • If you are unlucky, it will continue to work, but it will now follow a 13 TO chain, resulting in performance issues that are difficult to diagnose and resolve.
  • This can be particularly prevalent in Selector-Connector relationship graphs. This is not an argument against Selector-Connector, but an argument for better tools.

FMPerception 1.4.0 adds a tool to aid in identifying these kinds of issues and more: The Calculations List!

In the Slower Queries section of the query list is now an item labeled "Calculations (flat)(Slow)". Clicking on it will present a hierarchical breakdown of where all the individual calculation definitions exist within your system. So, if you have a layout object with a hide condition, six calculated conditional formatting entries, and placeholder text, it will appear as 8 separate entries on the Calculation list, one for each calculation. A Set Field By Name script step appears twice: once for the source calculation, and again for the target calculation.

For each of these calculations, we display information useful for locating performance problems, broken elements, and other support issues.

  • The length of the calculation

  • Is this calculation entirely commented out (suggesting a copy-pasted field definition that couldn't be resolved)?

  • Does the calculation reference a TO that can't be reached from the context of the calculation?

  • This even helps with scripts, which can run from any context. A calculation in a script step or menu item will derive a context from the TOs referenced. So, if a script step calculation talks to only one TO, we can't speak to whether that TO will be accessible at runtime. But, if the calculation accesses two TO's, we can flag if they are not both simultaneously accessible from the same undefined context TO.

  • This feature also accounts for global fields, which are accessible from any context, regardless of the structure of the relationship graph.

  • Does this calculation access information through a sorted relationship? Note that this may display inaccurate values for script steps, as we can't determine the true context TO.

  • The list of TOs that are referenced (directly or indirectly) in the order accessed. This is useful for identifying when the chain of TOs would pass through the Selector TO in Selector-Connector, or if a TO that is never explicitly referenced is ever implicitly referenced as part of a chain.

  • A count of the remote TOs referenced. If a single calculation references 11 remote TOs, that's something that might be worth further examination.

  • The longest TO chain that is referenced in resolving the calculation (Max Distance). So, if you only access 30 different TOs that should all be one step away, but one of them is actually 7 steps away, this will be viewable here.

  • For fields, there are columns for "Do Not Evaluate If Empty", "AutoEnter-Do Not Replace", and "Validate-Only If Modified"

  • The 6 custom definable "watched functions" that are used elsewhere.

While this may seem more granular than you will generally have a need for, it has pointed out legacy or broken code in almost every system reviewed. We thought this would be helpful, but we had no idea how helpful it would prove to be.

A Calculations list is also available as a sub-query for an individual selected layout, script, privilege set or custom menu. This is a great tool for finding potential problem spots with a particular non-performant layout.

Mac and Windows Changes:

  • Layout objects that display a list of TOs required to display a field or portal will now display those TOs in order of reference, rather than alphabetical. Alphabetical was the easy answer, but not the most useful answer.
  • When looking at All Files in a multi-file DDR, a number of queries were made multi-threaded, resulting in better performance the greater the file count. The following queries were affected: Tables, Fields Flat, Serialized Fields, Layouts Flat, Scripts Flat, Steps Flat, Custom Functions, Relationships, Table Occurrences, External Data Sources, Accounts, Privilege Sets, Extended Privileges, Custom Menu Sets, Custom Menus, Custom Menu Items, Value Lists, File Access, and Themes

Other Changes:

Huge thanks to Sylvain Parent for the following:

  • The Custom Functions list now populates much faster, especially when you have a large number of custom functions.

Download version

Version 1.3.0 - Top Call Stats Analysis

But First: Performance Bug - Mac Users: Please Read!

There was a bug in an earlier version of FMPerception for macOS that in certain cases would cause FMPerception to default to opening the Report Card at DDR load. This is not the preferred behavior, as generating the Report Card can be time consuming, particularly for large systems. I have fixed the bug, but don't have a reasonable way to find the users who never intended to turn it on.

If you see the Report Card when you first load a DDR, or if your DDR is taking more than about a minute to load, check the Preferences / Navigation tab, and make sure that the checkbox "Auto-Run Report Card on DDR Import" is turned off. You should only have this 'on' if you're sure that you intended to turn it on.

Everybody likes a faster FMPerception, so please take a moment to double check this preference. My apologies for the confusion.

Thank you very much to Sylvain Parent for bringing the issue to my attention, and Markus Schneider for assistance with chasing it down.

And Now.... Top Call Stats Analysis

We've previously made getting access to the FileMaker-internal ID easier, but working with the TopCallStats.log files in FileMaker Server 15 was still complicated. Now, it's much easier.

If you place a TopCallStats.log file in the same folder as the DDR, FMPerception will parse it during the DDR open/refresh process. Then, you will gain access to a new query at the bottom of the top-level query list (just above the Report Card) called "Top Call Stats Log (Slow)".

There are a series of sub-queries which slice and dice the data in different ways, but as FileMaker developers it can be easiest to think of these as different sub-summaries:

  • TopCallStats.log Remapped - This is the flat TopCallStats data, except the Target column has been remapped to display the name of all referenced elements (plus a couple other small tweaks). This is what you'll want to export if you want to use your own tools for analysis, but still have easy access to remapped IDs. In 'Summary' terms, this is the sorted data without sub-summary sections.
  • By Sample Period - Useful if you want to target a specific time period. When looking at a log file there can be between and 1 and 25 lines per sample period. The precision on the timestamp can make it difficult to isolate a single sample period.
  • By Operation - What is the Server doing (in general) that's eating up all that time?
  • By User Name - If users move around a lot, it can be helpful to isolate a single user's activities, regardless of where they are (or what device they're using).
  • By IP Address - Is one particular subnet demonstrating particularly slow performance?
  • By Machine Name - If users move between machines (or the machines move around the network), it can be helpful to isolate a single machine, regardless of where it is on the network, and to compare machines, regardless of who's using them at the time.
  • By Client Name - The provided Client Name in the log combines User Name, IP Address, and Account Name into a single column. Helpful if users move between machines or subnets (i.e. Karl only has problems when he's in XYZ facility).
  • By Target - This is the remapped Target, so it's displaying the FileMaker items by name rather than by ID. An event that targets a table, and another event that targets a field in that table, are kept isolated from each other (in contrast with the "FileMaker Pro Element" query described below).
  • By FileMaker Pro Element - This resolves the Target chain to an actual FileMaker database object. It also respects the hierarchy, so that any Top Call Stats lines that reference a field in a table will also be included in the collection for the table itself. Useful if, for example, you get a bunch of hits against different fields in a single table, this will report them each separately, and roll them up as part of the reported usage for the table itself.

If the icon is grayed out, it means that a TopCallStats.log file was not found in the proper location / with the proper name. It needs to be called "TopCallStats.log", and it needs to be in the same folder as the Summary.xml file (regardless of what you may have named it.) Please let us know if you have any problems.

And as you dig into this further, please let us know what else you would like to be able to discern from looking at the Top Call Stats.

Language Support:

The TopCallStats.log files generated by FileMaker Server are localized to the language of the server. This caused some difficulties in turning the FileMaker-internal IDs in the Target column into understandable element names.

  • FMPerception's TopCallStats.log analysis currently supports English and Italian.

  • If your language is not supported, everything still works except for:

  • The 'Target Mapped' column. It will display the same data as is in the Target column (i.e. the Target will not get remapped).

  • The 'FileMaker Pro Element' sub-query. Without language support, FMPerception can not (for example) tell when an ID is for a table or a field.

  • If you would like to have your language supported, I need a sample TopCallStats.log and the matching DDR for testing purposes. Once I've done my initial analysis, we'll have a short email conversation about confirming that I'm mapping everything properly. For a number of reasons, this is an extremely complicated process without the assistance of a multi-lingual FileMaker developer. With a little bit of help, this becomes trivial (for everyone involved).

Advice for doing Top Call analysis:

  • Use small log files. The Top Call Stats logging process captures a lot of data per sample. The max log size is 100 MB, but working with a 100MB file is arduous, and the more data you capture, the more 'noise' will surround the info you're really interested in. If your users are having performance issues when connecting first thing in the morning, turn on logging for 2 hours in the morning, rather than all day for a week. It will be easier to find what you're looking for. NOTE: A 100 MB TopCallStats.log file is about 650,000 lines of data. Often in our FileMaker work, more data makes it easier to find the aberration. I would suggest the inverse is true when looking at Top Call Stats.
  • Use longer sample times. If you're trying to find out what's happening with a layout that takes 30 seconds to refresh, don't set your sample duration to 1 second. That will record lots and lots of smaller events that you don't care about. A sample duration of 20 seconds will generate 1/20th the noise, and still capture the information you need about the 25 most time consuming server events during that time. Only decrease the sample time if the longer duration isn't capturing enough detail.

Super-special thanks to Radu-Dan Sabau and Lisette Wilson, without whose invaluable assistance this feature would have taken forever.

Other Changes:

Huge thanks to Mike Zarin for the following:

  • The default sort by name was different than the columnar sort by name, meaning that when you manually sorted by name you got a different order than the default sort. Fixed. (Mac Only)

Huge thanks to Shawn Krueger for the following:

  • When selecting an Account, the Privilege Set sub-query now displays the appropriate Privilege Set.

Mac and Windows Changes:

  • Any list of Layout objects now includes a Table Occurrences column that displays a list of all of the table occurrences that are traversed to make that object appear. This is for the object itself, not any triggers, conditional formatting, hide conditions, etc...
  • The layout object list no longer sorts alphabetically by name. It default sorts by the layout depth.

Download version

Version 1.2.5 - International Registration Bug Fixes

Huge thanks to Miyuki Imaizumi for the following:

  • If the Calendar in System Preferences/Language & Region is set to something other than "Gregorian", FMPerception should no longer crash during startup. (Mac Only)

Huge thanks to Joost Kingma for the following:

  • If the Short Date format in Settings/Time & Language is set to something other than Month/Day/Year, FMPerception should no longer crash during startup. (Windows Only)

Mac and Windows Changes:

  • The FileMaker DDR expresses the FileMaker-internal ID for Themes in hexadecimal. However, the Top Call Stats log expresses the Theme ID in decimal. There's now a column for each on the list of themes. When you filter the Themes list by 'ID' (Windows) or 'FileMaker Internal ID' (Mac), it will match on either of these columns. (As far as I can tell, every other ID is decimal)
  • Added a custom icon to the Report Card option, rather than using the default.
  • Scripts (Flat) now properly respects the preferred auto-sort setting.

Download version

Version 1.2.4 - Quick Bug Fix

In certain cases, the Results list would fail to display many columns. This has been resolved.

Download version

Version 1.2.3 - Next Most Requested Feature - Default Sort Override

After the report card, the next most requested feature was the ability to override the default sort order, so that (for example), fields don't appear in manual/creation order all the time. Yes, you can click on a column header, but the Column and Tree Browsers do not respect sorting done in the Results pane columns. This makes the browsers less helpful, particularly for larger lists.

Note: The default behavior of most lists has been changed. See below for instructions on how to change it back, if you happen to like (or depend upon) the previous behavior.

By default, most lists will now sort alphabetically by Name by default. The exceptions:

  • Scripts and Layouts - These are very often grouped by function, regardless of naming conventions.
  • Script Steps - Sorting these alphabetically would be… less helpful.
  • Layout Objects - Layout objects are organized by depth, from bottom to top, with child objects displayed immediately after their containing parents.
  • Preset Menus - For example, when you click on a particular file you will see the same options in the same order (tables, fields (flat), serialized fields (flat), etc). These are defined in FMPerception, and are unaffected by this new logic.

Changing the default sort behavior: Let's say that you would like to change this new default behavior. There are a couple of options:

  • To momentarily restore the order of the items as FileMaker exported them, an additional column now appears on the right side of the Results list for most FileMaker-provided data. Its column header says "Ordinal". This column stores the original order of items as they appeared in the DDR.
  • There is now a preference (on the Navigation tab in Preferences/Settings) to "Sort Almost Everything Alphabetically". It is ON by default for all users. If you deactivate it (and click the save button), any new lists gathered from the DDR will no longer apply the default alphabetical sort. You may need to open a new DDR browser to have everything appear the way you want it (due to FMPerception's memory for things like columnar sort order).
  • There are now separate preferences (on the Navigation tab in Preferences/Settings) to apply the default alphabetical sort to Scripts and Layouts. These are OFF by default. If you activate it (and click the save button), any new relevant items gathered from the DDR will now apply the default alphabetical sort. You may need to open a new DDR browser to have everything appear the way you want it (due to FMPerception's memory for things like columnar sort order).

Auto-Run the Report Card

If you happen to like the new report card so much that every time you open a DDR, that's your first stop, there is now a preference to do it automatically. Note that this will cause the initial opening of a DDR to take longer. All it does is handle the navigation for you. If you regularly work with large DDRs, or often go elsewhere than the report card, I would advise against turning this on.

There is now a preference (on the Navigation tab in Preferences/Settings) to "Auto-Run Report Card on DDR Import". It is OFF by default for all users. Once activated (and the save button clicked), all future DDRs opened or Refreshed will do the data crunching for the report card during the import. On open, you'll be left on the report card. On refresh, you be left where you were when you refreshed… but the report card will be available in an instant, as it's been pre-calculated.

Other Changes:

Huge thanks to Shawn Krueger for the following:

  • In certain cases, small helptext bubbles would appear over the tooltips in the Report Card. These no longer appear. (Mac only)
  • Also, fixed help text on Report Card/Tables section/Field Count row (copy-paste error).

Huge thanks to John Pollard for the following:

  • The Detail sidebar for a single table now includes a return-delimited list of table occurrence names.
  • Also, the TO names in the Details and in the "Table Occurrences" column on Tables Results are now alphabetized.

Windows-Only Changes:

  • The Metadata section in the Details sidebar now displays more data more often. This should restore parity with the Mac version for this feature.
  • In a multi-file DDR, the icons for the top-level items in the All Files section now more closely match the icons for any single file.
  • When you experience a crash, you should now receive a "What were you doing when this happened" dialog. I'm seeing periodic automated crash reports for Windows, but they're not providing quite enough information about when and how they happened. I would love to get some additional details here.

Note about crashes: I feel very strongly that FMPerception should never ever crash. So, if you encounter a crash (and particularly if it is reproducible), I really, really want to know about it (Mac or Windows). I've had very good luck chasing these down and resolving them, so if you bump into any kind of problem (crash or otherwise), please don't hesitate to drop us a message at support@geistinteractive.com. You'll be glad you did.

Version 1.2.3.2 - Windows-Only Tweak to Preferences Window

The preferences window no longer crops some elements on window resize..

Download version

Version 1.2.2.1 - Windows-Only Release

Adjustment intended to resolve an intermittent registration-based crasher for Windows users.

Version 1.2.2: Report Card / Privilege Set Crasher Resolved, and New Report Card Features

Huge thanks to Duncan Baker for the following:

  • Windows Only - Resolved a crasher in the Report Card when the DDR contains Privilege Sets tied to active accounts that have Custom record-level access privileges.
  • The macOS version was unaffected.

Huge thanks to Mike Zarin for the following:

  • Report Card no longer includes layout separators in the potential list of "active layouts". Layouts visible in sidebar could appear in the Report Card as more than 100%. (Mac / Windows)

New Features:

  • There is now a column on the Script list for "Cyclomatic Complexity (Simplified)".
    Cyclomatic Complexity is an expression of how many possible paths there are through a script. It is not an expression of how many steps are in a script. A script with no loops or if statements will have a cyclomatic complexity of 1, even if it is hundreds of lines long. The maximum cyclomatic complexity will only be zero if there are no scripts at all. The 'Simplified' aspect is that Cyclomatic Complexity does not currently account for variations in calculations and conditions. It accounts for only flow-control script steps.
  • The Scripts section of the Report Card now contains 2 new lines:
    • Script Length Maximum
    • Cyclomatic Complexity (Simplified) Maximum

Download version

Version 1.2.1: Report Card / ESS Crasher Resolved

Huge thanks to John Renfrew for the following:

  • Resolved a crasher in the Report Card when the DDR contains elements using ESS
  • While I was in there, I added a line in the Tables section of the Report Card specifically calling out tables defined to use ESS.

Leaving the change log for the previous version attached here due to the short turn-around time and the size of the previous update.

Version 1.2.0: Who wanted a Report Card?

Mac and Windows Changes:

After Windows support was added, the number one requested feature was a "report card", a view that would aggregate the statistics from across the system and present them in a usable manner. Version 1.2 adds that Report Card.

Once you have loaded a DDR, drill into either a single file, or All Files (for a multi-file DDR). The query at the bottom of the list is the Report Card. I put it at the bottom of the list for 2 reasons:

  • The very bottom and the very top of the list are relatively easy to navigate to.
  • Since it aggregates data from every other query in the system, it is by definition the slowest query. Give it a chance to crunch the data.

Let's talk about the use cases of a Report Card style report. The use case that we have targeted first is the following: “I have never seen this system before, and I’m sitting down to talk to the customer in 5 minutes. What do I need to know before I start talking about complexity, issues, timelines, etc?” This is as opposed to the commonly supported “This is the system I look at every day. Please give me some quick numbers, but primarily bring to my attention anything of a critical nature.” I have every intention of adding a second report in a later update that targets the second use case, but it is likely a subset of the first case, and I'd really like to get some more input from the users about what they'd like to see in one (or both) of the reports before trying to split them apart.

Also please note that this is massive feature, and it's the first version to contain it. Please bear with me as I work to add and tweak features.

Features:

  • Clicking on any number will drill down to the relevant database elements, so that you can get further information, sort, export just that set, etc.
  • Mousing over a line (in the tables past the Summary at the top) will display a tooltip with some help text to clarify what that metric means and why it's important, and (in the case of a multi-file Report Card) a table of file-specific numbers
  • Note that the report header displays what version of FileMaker was used to generate the DDR, when the DDR was generated (regardless of when the Report Card was run), and what version of FMPerception was used, so that if something changes from one run to the next, you can see if FMPerception revved in the interim.
  • The report card should be outputting locale-specific number formatting, so if you expect to see a comma as a decimal separator, it should be there. If you see something other than what you expect, please let me know.

Known Mac Issue:

  • When mousing over the report, the report card will periodically flicker off and then on. I'm chasing it down...

Huge thanks to Dan Smith for the following:

  • Value lists that are External or Static will no longer flag as having empty field references, even if there are legacy broken field references left behind. (Mac and Windows)
  • You can no longer drill down into a "Nothing Found" item. (Windows Only)

Huge thanks to Dr. Volker Krambrich for the following:

  • Diff processor is no longer case-sensitive when matching file names. (Mac and Windows)

Huge thanks to Alec Gregory for the following:

  • Auto-Enter calcs no longer duplicate the "Overwrite Existing" line in the detail text. (Mac Only).
  • Fixed issue where "Do Not Evaluate If All Referenced Fields Are Empty" message was not being displayed when appropriate. (Mac and Windows)

Huge thanks to Steve Murray for the following:

  • When the registration process encounters a firewall, FMPerception no longer crashes. (Windows Only)

Windows-Only Changes:

  • Somehow, local CSS changes were not being counted on layout objects. They no longer display as zero.
  • Cleaned up a couple of edge cases that could result in a crash when navigating through a DDR.

Download version

Version 1.2.0: Who wanted a Report Card?

Mac and Windows Changes:

After Windows support was added, the number one requested feature was a "report card", a view that would aggregate the statistics from across the system and present them in a usable manner. Version 1.2 adds that Report Card.

Once you have loaded a DDR, drill into either a single file, or All Files (for a multi-file DDR). The query at the bottom of the list is the Report Card. I put it at the bottom of the list for 2 reasons:

  • The very bottom and the very top of the list are relatively easy to navigate to.
  • Since it aggregates data from every other query in the system, it is by definition the slowest query. Give it a chance to crunch the data.

Let's talk about the use cases of a Report Card style report. The use case that we have targeted first is the following: “I have never seen this system before, and I’m sitting down to talk to the customer in 5 minutes. What do I need to know before I start talking about complexity, issues, timelines, etc?” This is as opposed to the commonly supported “This is the system I look at every day. Please give me some quick numbers, but primarily bring to my attention anything of a critical nature.” I have every intention of adding a second report in a later update that targets the second use case, but it is likely a subset of the first case, and I'd really like to get some more input from the users about what they'd like to see in one (or both) of the reports before trying to split them apart.

Also please note that this is massive feature, and it's the first version to contain it. Please bear with me as I work to add and tweak features.

Features:

  • Clicking on any number will drill down to the relevant database elements, so that you can get further information, sort, export just that set, etc.
  • Mousing over a line (in the tables past the Summary at the top) will display a tooltip with some help text to clarify what that metric means and why it's important, and (in the case of a multi-file Report Card) a table of file-specific numbers
  • Note that the report header displays what version of FileMaker was used to generate the DDR, when the DDR was generated (regardless of when the Report Card was run), and what version of FMPerception was used, so that if something changes from one run to the next, you can see if FMPerception revved in the interim.
  • The report card should be outputting locale-specific number formatting, so if you expect to see a comma as a decimal separator, it should be there. If you see something other than what you expect, please let me know.

Known Mac Issue:

  • When mousing over the report, the report card will periodically flicker off and then on. I'm chasing it down...

Huge thanks to Dan Smith for the following:

  • Value lists that are External or Static will no longer flag as having empty field references, even if there are legacy broken field references left behind. (Mac and Windows)
  • You can no longer drill down into a "Nothing Found" item. (Windows Only)

Huge thanks to Dr. Volker Krambrich for the following:

  • Diff processor is no longer case-sensitive when matching file names. (Mac and Windows)

Huge thanks to Alec Gregory for the following:

  • Auto-Enter calcs no longer duplicate the "Overwrite Existing" line in the detail text. (Mac Only).
  • Fixed issue where "Do Not Evaluate If All Referenced Fields Are Empty" message was not being displayed when appropriate. (Mac and Windows)

Huge thanks to Steve Murray for the following:

  • When the registration process encounters a firewall, FMPerception no longer crashes. (Windows Only)

Windows-Only Changes:

  • Somehow, local CSS changes were not being counted on layout objects. They no longer display as zero.
  • Cleaned up a couple of edge cases that could result in a crash when navigating through a DDR.

Download version

Version 1.1.5: Enhancements and Bug Fixes

Mac and Windows Changes:

Huge thanks to Chiyoko Yoshida for the following:

  • Since the DDR XML does not contain any information about the layout parts on a layout (no, really), FMPerception can't tell you how many times a layout part style is being used.
  • Layout part styles are now flagged as such in a special column.
  • On macOS, the number of uses is not displayed as zero, but as a blank, which will cause it to sort separately from the zeros.
  • On Windows, the zero is still being displayed. (I'm working on it, but I didn't want to hold up the release of this feature until I could chase that down.)
  • There is also a note in the Documentation section of the Detail that explains what this means and why it is there.

Huge thanks to Steve Saperstein for the following:

  • In the Diff Report (for certain cases), a newly created object would not be identified as new.

Mac-Only Changes:

  • In the Diff report, when something is reordered the index change is now properly reported.
  • In the Diff report, FMPerception will now better handle diffing 1000+ line scripts.

Windows-Only Changes:

  • In the Diff report, FMPerception will now add a line to the results when there is a new file in the Modified file list, or a file that exists in the Original file list that is not present in the Modified file list. The macOS version already had this feature.
  • In the Diff report, when something is reordered we now use a one-based index, rather than a zero-based index.

Download version

Version 1.1.4: macOS 10.12 Sierra bug fix.

A quick patch to resolve a navigation issue discovered in macOS 10.12 Sierra. The code that handle the up arrow (or hitting the keyboard's left arrow or delete keys) now works again in Sierra.

  • Mac-only. There is no Windows version of 1.1.4.
  • Since 1.1.3 was released yesterday, I'm leaving the release notes for it here as well.

Version 1.1.3: Script Call Chain Visualization.

I've received many quests for a way to see the whole call chain for a script... the scripts it calls, and those that call it, as far as we can reach. To check out the new feature, open a DDR and navigate to a script. In the list of queries specific to that script will now appear "Call Chain Diagram". Drill into that.

  • 2 trees will be drawn:
    • one for upstream scripts from the selected script, and
    • one for downstream scripts from the selected script
  • Click-and-drag to reposition the chart in the window.
  • Scroll/pinch to zoom in and out
  • Click on a shaded dot to collapse/expand the child nodes
  • Click on the name of a script to drill down into that script in the FMPerception hierarchy. You can drill back up the hierarchy to return to the chart.
  • Mouse over a script to see the full name, source file, and the number of times it appears on this chart.
    • Scripts that appear more than once will be displayed with a thicker circle, and if you mouse over one of these scripts, every occurrence of that script on the diagram will light up.
  • A star will appear next to scripts that run with full access privileges.
  • A folder will appear next to scripts that exist in a different file from the file containing the original script.

Because of the possibility of scripts calling themselves (or calling another script that calls the original script), we can't always display all of a script's children, every time it appears on the diagram. So, if a script appears on the diagram more than once, one of those dots will display all of its children. Scripts that appear more than once will be displayed with a thicker circle, and if you mouse over one of these scripts, every occurrence of that script on the diagram will light up. Check it out. It makes it pretty easy to follow the thread of a looping/recursive script sequence without filling the screen with many copies of the same tree.

Mac and Windows Changes:

  • Removed the progress bar from the registration screen. It was intended to show the time remaining in a user's license, but quite a few users perceived it as the progress bar on the registration server interaction, and were waiting for it to finish. Pulled to reduce confusion (particularly for new users).

Download version

Version 1.1.3: Script Call Chain Visualization.

I've received many quests for a way to see the whole call chain for a script... the scripts it calls, and those that call it, as far as we can reach. To check out the new feature, open a DDR and navigate to a script. In the list of queries specific to that script will now appear "Call Chain Diagram". Drill into that.

  • 2 trees will be drawn:
    • one for upstream scripts from the selected script, and
    • one for downstream scripts from the selected script
  • Click-and-drag to reposition the chart in the window.
  • Scroll/pinch to zoom in and out
  • Click on a shaded dot to collapse/expand the child nodes
  • Click on the name of a script to drill down into that script in the FMPerception hierarchy. You can drill back up the hierarchy to return to the chart.
  • Mouse over a script to see the full name, source file, and the number of times it appears on this chart.
    • Scripts that appear more than once will be displayed with a thicker circle, and if you mouse over one of these scripts, every occurrence of that script on the diagram will light up.
  • A star will appear next to scripts that run with full access privileges.
  • A folder will appear next to scripts that exist in a different file from the file containing the original script.

Because of the possibility of scripts calling themselves (or calling another script that calls the original script), we can't always display all of a script's children, every time it appears on the diagram. So, if a script appears on the diagram more than once, one of those dots will display all of its children. Scripts that appear more than once will be displayed with a thicker circle, and if you mouse over one of these scripts, every occurrence of that script on the diagram will light up. Check it out. It makes it pretty easy to follow the thread of a looping/recursive script sequence without filling the screen with many copies of the same tree.

Mac and Windows Changes:

  • Removed the progress bar from the registration screen. It was intended to show the time remaining in a user's license, but quite a few users perceived it as the progress bar on the registration server interaction, and were waiting for it to finish. Pulled to reduce confusion (particularly for new users).

Download version

Version 1.1.2: Themes and Styles Overhaul

General testing of FMPerception under macOS Sierra (10.12) indicates operation without issue. If you encounter any problems, please don't hesitate to drop us a line.

Mac and Windows Changes:

  • The Themes section was completely overhauled to give better, faster access to themes, styles, and counts and lists of affected objects. You can now quickly identify which themes are being unused, which themes are used primary in their default form, and which style sheets are being used for which objects.
  • Styles on layout objects are now identified more precisely.
  • Special thanks to Mike Zarin for putting me on the trail of an intermittent performance issue, which surfaced a collection of issues with how this was originally implemented.
  • The new Geist Interactive logo was added to the About screen.

Windows-Only Changes:

  • Broken References are now properly calculating and displaying again.
  • Poorly-formed scripts (too many de-indents) will no longer cause FMPerception to crash.
  • Fixed issue where some numerical columns would fail to column sort.
  • In multi-file DDRs, the Single File list will now pre-sort alphabetically (to match macOS behavior).

Download version

Version 1.1.1: Bug Fixes, and "Opinionated" Analysis

Initially, FMPerception was focused on showing you the raw data in a meaningful manner, and attempts were made not to editorialize. "Good or bad, this is what your data looks like now." We avoided making any suggestions relevant to best practices, if for no other reason than "FileMaker best practices" are often contentious topics of conversation in the FileMaker world. That said, we're going to be starting to flag potential issues that are towards the "objective" end of spectrum.

This version has one of the first of these features. When looking at the QuickFind settings for fields and text objects on layouts, FileMaker uses a green dot for local fields and a yellow dot for related fields. FMPerception now uses a green dot for local fields, a yellow caution sign for related fields, and a red octagon with an exclamation point for unstored calculations, whether they are local or remote. I believe that a strong argument can be made for avoiding QuickFind in unstored calculations if at all possible. If you feel otherwise, I'd love to hear from you.

Because we're going to start using more color coding, all of the blue dots that used to signal the presence of something have been changed to a magenta that is consistent with the FMPerception logo. I have other plans for that blue.

Mac and Windows Changes:

Standard Script Steps now displays all references to a step, even if they are used in a single-step button or custom menu. This means that numbers for "Perform Script" will increase significantly, as any button that calls a script now counts as a use of Perform Script.

A search which returns a custom menu item or a layout button will now provide better detail, rather than just describing the result as a "Reference".

Huge thanks to Gull-Britt Nylund for the following:

  • If the literal text "&" appears in a calculation definition, it is no longer being displayed as "&" in the Details.

Mac-Only Changes:

Huge thanks to Mike Zarin for the following:

  • Filtering by "Everything" works once again.
  • This fix also brought back the Metadata section of the Detail, such that the values from the Results are available in the Detail as well.

Windows-Only Changes:

FMPerception no longer crashes when asked to import a non-XML file.

FMPerception no longer crashes when asked to import a DDR containing a database with a filename containing an apostrophe.

Support emails sent from FMPerception for Windows will now include "WINDOWS" in the subject line, to aid us in quickly identifying the source of issues.

Download version

Version 1.1.0: Windows Version Synchronization

Version 1.1.0 marks the initial release for Windows. In the interest of keeping everything in lock-step (as much as possible), the version numbers on the 2 platforms have been synchronized.

Mac-Only Changes:

Huge thanks to Ryan Moriarty for the following:

  • Ryan identified a crasher that I was unable to reproduce. He ran multiple test versions on his machine and provided crash reports and logs until I could cleanly resolve the issue.

Windows-Only Changes:

The full Windows version has been released!

Download version

Version 1.0.9: Hot Feature Requests

The Windows version of FMPerception is wrapping up its beta, which is freeing up more time to start adding core features again.

Changes:

Added support for Back button on Results list.

Resolved crash related to atypical change logged in Diff.

A script reference or search result to a trigger will now appear as a trigger, rather than as the layout or layout object that implements the trigger.

Clicking on a Portal layout object now displays information about any portal filter or portal sort in the Details region.

Added support for displaying a little more detail about about layout object references in the "Detail" column of the Results.

Thanks to Nils Waldherr for the following:

  • Disabled support for option-Clicking on outline view disclosure.
  • Better support for handling non-English text styles, logical functions, and LastExternalErrorDetail vs LastODBCError

Thanks to Ralph Alvy for the following:

  • Fixed documentation for .References. Previously described as "references from", rather than "references to".
  • Results-only navigation by keyboard now support Right Arrow for drill down and Left Arrow for drill up (as well as continuing to support Return to drill down and Delete to drill up).

Thanks to Gull-Britt Nylund for the following:

  • Added support for finding references to table occurrences.

Thanks to Jonathan Reff for the following:

  • Added support for finding local and remote references to Layouts.

Download version

Version 1.0.8: Diff Tweaks and more...

Shortly I'll be able to get back to adding substantive features. The Windows version is getting close, and releasing that will free up quite a bit of it.

Changes:

Diff is now better at identifying property changes to Field Definitions, Privilege Sets, and Custom Styles.

Filter by Filemaker internal ID is now an exact match search, rather than a substring search.

Viewing a list of custom styles for a theme no longer displays the count of uses of that theme in the list. I'd like to add this back in, but it was taking far too long, and was being perceived as a crash. I think I'll be able to restore it, but for now it's been suppressed until I can optimize the performance.

Thanks to Dr. Volker Krambrich for the following:

  • Changes to script steps now display the proper step number for the change.
  • In certain cases, changes made independently in two files could compare two completely different layout object types
  • When a container layout object (popover, slide region, tab, etc) changed position, the effective position changes for the contained objects were reported with insufficient detail.

Download version

Version 1.0.7: Lightning Update...

Right after the release of 1.0.6, Matt Larson (in record time) pointed out an edge case with tracking merge fields with Quickfind turned on (seems to be related to merge fields that use "Other Symbol…"). It was easy enough to fix, so I pushed out another quick release.

Since most users will not have updated yet, the release notes for 1.0.6 follow.

Version 1.0.6: Post-DevCon Adjustments...

If you do a few dozen demos, and add a bunch of new users, you're almost certain to identify new edge-cases. For a few days, I shifted my focus back to the Mac version just to handle a number of issues identified in the last couple weeks.

Just a reminder, by popular demand, we now have an FMPerception forum on FMForums.com. Things are just getting rolling over there, but if you'd like to take part in the conversation, or interact with other FMPerception users, head on over.

Changes: (Some of these were pointed out by observant folks at DevCon. I apologize if I did not get your names for proper recognition. My thanks to each of you.)

  • Script step sub-elements now properly display the child elements, allowing you to go from a "perform script" script step directly to the relevant script, and to its steps, and so on.
  • Value Lists no longer show an option to "Copy for FileMaker Pro" in their context menu, as they are not copy-pasteable in FileMaker Pro Advanced.

Thanks to Nils Waldherr for the following:

  • For German users, "Falsch", "Fett", "NICHT" and "Wahr" are now properly appearing as Standard Functions, rather than as Plugin Functions.
  • Standard Functions and Plugin Functions are now much faster (multi-threading and other performance improvements). Also, once you request one, the other is calculated along with it (rather than being independent processes). So, if you select one, the other will populate immediately upon clicking on it.

Thanks to Matt Larson for the following:

  • Quickfind on merge fields now being properly reflected with blue dot in Results.

Thanks to Ron Papajcik for the following:

  • Periods in database names no longer break single field reference access

Thanks to Dave Graham for the following:

  • Sort script steps and related actions no longer flag as indexing indicators. Better support for fields that auto-complete based upon previous entry. As a bonus, Indexing Indicators (slow) is faster now. It's almost a candidate for losing its "slow" tag.

Download version

Version 1.0.6: Post-DevCon Adjustments...

If you do a few dozen demos, and add a bunch of new users, you're almost certain to identify new edge-cases. For a few days, I shifted my focus back to the Mac version just to handle a number of issues identified in the last couple weeks.

Just a reminder, by popular demand, we now have an FMPerception forum on FMForums.com. Things are just getting rolling over there, but if you'd like to take part in the conversation, or interact with other FMPerception users, head on over.

Changes: (Some of these were pointed out by observant folks at DevCon. I apologize if I did not get your names for proper recognition. My thanks to each of you.)

  • Script step sub-elements now properly display the child elements, allowing you to go from a "perform script" script step directly to the relevant script, and to its steps, and so on.
  • Value Lists no longer show an option to "Copy for FileMaker Pro" in their context menu, as they are not copy-pasteable in FileMaker Pro Advanced.

Thanks to Nils Waldherr for the following:

  • For German users, "Falsch", "Fett", "NICHT" and "Wahr" are now properly appearing as Standard Functions, rather than as Plugin Functions.
  • Standard Functions and Plugin Functions are now much faster (multi-threading and other performance improvements). Also, once you request one, the other is calculated along with it (rather than being independent processes). So, if you select one, the other will populate immediately upon clicking on it.

Thanks to Matt Larson for the following:

  • Quickfind on merge fields now being properly reflected with blue dot in Results.

Thanks to Ron Papajcik for the following:

  • Periods in database names no longer break single field reference access

Thanks to Dave Graham for the following:

  • Sort script steps and related actions no longer flag as indexing indicators. Better support for fields that auto-complete based upon previous entry. As a bonus, Indexing Indicators (slow) is faster now. It's almost a candidate for losing its "slow" tag.

Download version

Version 1.0.5: Smoothing off the rough edges...

Most of my time right now is being spent on getting the Windows version ready for beta. However, when bugs are reported, they're still getting tackled.

Also, by popular demand, we now have an FMPerception forum on FMForums.com. Things are just getting rolling over there, but if you'd like to take part in the conversation, or interact with other FMPerception users, head on over.

Changes:

  • Field/Sub-Elements referenced in field definitions for Summary / Furigana fields are now displaying properly.
  • Crasher on Slide Controls display resolved.

Thanks to Mike Beargie for the following:

  • Field references (and unreferenced fields) now properly handle Import script steps and Summary / Furigana sub-fields, adjusting for non-standard field node structure.

Thanks to Wim Decorte for the following:

  • All Files / Plugins, Standard Steps, and Standard Functions now properly display the relevant database filename in their sub-results.

Thanks to John Renfrew for the following:

  • Rerunning the same freeform text search twice in a row could result in a smaller found set. Resolved.

Thanks to Andreas Thyholdt for the following:

  • Better support for changes to AutoEntry and storage properties in field definitions.
  • Better support for changes to script steps. Actually, the whole diffing engine for script steps was replaced, and the diff now provides better guidance for when a script step was edited vs deleted and replaced.

Download version

Version 1.0.4: Lots of little adjustments

Changes:

  • DDR Browser now uses a more fault-tolerant XML parsing method that doesn't get stuck on invalid XML characters. This should produce many fewer import/parsing problems in the future.
  • Added support for Broken References / Calculation Context From Missing Table Occurrence.
  • When the calculation context TO is no longer available on Calculations, Auto-enter calculations, or Validation calculations, it is also displayed as an error in the Detail display.
  • Added support for Broken References / Layout Missing Backing Table Occurrence.
  • When the Layout's context TO is no longer available, it is also displayed as an error in the Detail display.
  • Style/References now generates a list of affected layout objects.
  • Not all object types were tracking a local css node count. If you were using this feature to locate slower layout objects, take another look.
  • The script trigger Detail display now maintains proper formatting.
  • Gray queries on single files are no longer displaying red text in the Detail if they're selected through the Outline-style Browser.
  • If Scripts are not exported in the DDR, Scripts (flat) and Steps (flat) now properly gray out.

Diff Changes

  • Changes in Relationship sorts now display better in results.
  • Rerunning the diff after it has already run once no longer produces a crash / failure.
  • Changes to Layout Objects will now capture a little more detail.

Thanks to Andreas Thyholdt for the following:

  • Diff now has better support for capturing changes in layout object triggers and window triggers.

Download version

Version 1.0.3: Better data for non-English users (and lots more)...

Note: Members of Apple's developer program can download macOS 10.12. After (very) cursory testing, FMPerception appears to generally work without changes, though there is some significant visual artifacting. While you are welcome to try out FMPerception in the unreleased operating system, and welcome to send in bug reports related to it, anybody who suggests that I'm a slacker for not already having perfect support for 10.12 will receive my squinty-eyed glare of disapproval. ;-)

A brief discussion of localization: While translating the interface for non-English-speaking users is on the agenda, it will likely not be happening immediately. To add localization right now would just slow down future feature releases in order to keep the translations in sync with the changes in the interface. Our focus right now is on rapid response to feature requests and bug reports. That said, I draw a distinction between places where FMPerception uses the wrong word for your language, and where FMPerception actually provides incorrect data. The following 2 changes are places where FMPerception was answering questions incorrectly depending upon the language of the user:

  • Better foreign language support for Standard Functions vs Plugin Functions. Most standard functions (for languages supported by FileMaker) are now handled, but by no means all. FMPerception will now get much closer to identifying which functions are standard, and which are plugins. If you find a function that is appearing on the Plugin Functions list by mistake, please pass it along, and I'll fix it. (First pointed out by Shin Ninagawa)
  • The Broken References queries that do text searches (<File Missing>, <Table Missing>, <Field Missing>, <Function Missing> and <Unknown>) are now language-aware, and will find these issues in all 11 languages that FileMaker supports. (Credit to Markus Schneider)

Changes:

  • Added default sorts (alphabetically by name) to Standard Functions, Plugin Functions, and Global Variables lists.
  • Queries with default sorts applied to the results will now respond properly to clicking on a column header. In certain cases, it might have taken 2 clicks to get a column to update the sort.
  • Sequences of file paths in script steps and file references no longer massively blow out the side of the Detail display, as they are now displayed as a list, rather than a single long string. They can still be too long, and refuse to wrap... But now multiple paths are displayed on separate lines.
  • Fixed support for Broken References / Missing External Value List. Missing remote value list now displays <Value List Missing> in Results and Detail.

Thanks to Matt Petrowsky for the following:

  • Added support for moving down the hierarchy in the Results with the Enter/Return keys, and up the hierarchy in the Results using the Delete key.
  • Layout Object / CF? column suppressed (for being redundant), and "CF Rules" column renamed to "CondForm Rules" to clarify that it's referring to Conditional Formatting, not Custom Functions.

By the way...Did you catch Matt's video review of FMPerception? He's got some really cool ideas on automatedly generating timestamped, versioned DDRs.

Thanks to Eden Morris for the following:

  • Field / On Layout results now display the complete set of layout object columns. Faster access to "on what layouts is this field enterable?"... and similar questions.

Thanks to Markus Schneider for the following:

  • Added support for Broken References / <File Missing>.
  • Layout Objects in FileMaker 12 DDRs now display the appropriate bounds numbers, not just "Object Bounds Indeterminable". (Though FileMaker added the ability to set a width for a layout in FileMaker 12, it didn't get added to the DDR until FileMaker 13, and that was throwing off some of the math.)

Thanks to John Renfrew for the following:

  • Sorting Script Steps within a script now works properly, regardless of the column selected.
  • Added support for hiding passwords in script step details until mouse hover. Bear in mind that some script steps display the password in the step text representation. We're not (yet) hiding those. Copying and pasting (like to TextEdit, or Mail.app) will also strip the CSS that's obscuring the value.

Crashers resolved:

  • Resolved crash related to starting new open/refresh while previous open/refresh is still in progress.
  • Resolved 2 crash conditions related to layout objects with incomplete bounds information.

Download version

Version 1.0.2: More Details!

Note: There's a small number of changes in this update, but it's not a small update.

Changes:

  • Big Feature: Script steps now display detailed metadata about the individual step and all options / calculations that compose the step.
  • Some script steps displayed important metadata after a return, causing the metadata to hide on the Results list. These have been condensed to a single line for display in the Results.
  • Standard Steps query is now multi-threaded. Provides a huge speed boost for large, multi-file systems.

Thanks to Bryan Frank for the following:

  • Hitting refresh while FMPerception is in Full Screen mode no longer causes a crash. Great bug reports = fast resolutions!

Download version

Version 1.0.1: Release!

Note: 1.0.1 is exactly the same as 1.0.0. The only change is the version number. The automated update system did not like transitioning from "1.0.0 b##" to "1.0.0", but it'll happily accept "1.0.1" as a new version from either of them.

First of all, thank you so much to everyone who tried out FMPerception during the beta period, and especially to those who provided feedback, regardless of whether it was positive or bug reports or feature requests, or whatever. All the feedback was helpful, we read and studied every bit of it, and I honestly believe that it made a huge difference in the quality of the 1.0 release. So, thank you.

Second, thank you very, very much to everyone who purchased FMPerception during the beta period. Your investment in this new platform is really going to help make it better. So, thank you all.

Finally, this is not the end of the fixes and changes. I've got about 600 lines of code that just need a little more work, and I hope to have that modification ready to go for 1.0.2 as soon as I can.

Changes:

  • Adjusted Layout Object Hierarchy (on layout objects) and Parent Script Hierarchy (on script steps) to present a bottom-up hierarchy, so that the first item on the list is always the immediate parent.
  • Preferences: Save/Revert buttons now pay attention to what you're doing. When you make a change to the preferences, they light up to hint that further activation is necessary. Once you've selected whether to save it or change it back, the buttons gray out so it's clear that the action completed, and that further action is not required.
  • Also, the "Defaults" button was renamed to "Restore Function Defaults", and was moved to the top of the Flagged Functions list to clarify what defaults it specifically addresses.
  • Diff processor: Key equivalent added to the 2 Choose buttons (⌘1 for Original, ⌘2 for Modified)

Thanks to Kirk Rheinlander for the following:

  • "No Found Items" item now appearing on Broken References and Unreferenced Objects when appropriate. This fix also added it in quite a few other locations.

Thanks to Gary Palmer for the following:

  • When the registration server is unavailable, the error message has been changed to "The registration server is currently unavailable. Please try again in a couple of minutes. If you get this error again, please contact support."

Thanks to Radu-Dan Sabau for the following:

  • Added a warning to the Navigation tab on Preferences, that indicates that changes must be saved, and that they only apply to new DDR Browser documents.
  • When the only displayed result of a query is "No Found Items", the window title now says "0 elements" rather than "1 elements".

Thanks to John Renfrew for the following:

  • The Copy XML Text popup feature now wraps the XML in a root level node, producing a well-formed XML document. It's just boilerplate, but it makes the copied XML useful for something more than just visual review by a human.

Thanks to Matt Petrowsky for the following:

  • Introduced a little more space between items in the Browser (Column style)

There's lots more coming. Stay tuned...

Download version

Version 1.0.0: Release!

First of all, thank you so much to everyone who tried out FMPerception during the beta period, and especially to those who provided feedback, regardless of whether it was positive or bug reports or feature requests, or whatever. All the feedback was helpful, we read and studied every bit of it, and I honestly believe that it made a huge difference in the quality of the 1.0 release. So, thank you.

Second, thank you very, very much to everyone who purchased FMPerception during the beta period. Your investment in this new platform is really going to help make it better. So, thank you all.

Finally, this is not the end of the fixes and changes. I've got about 600 lines of code that just need a little more work, and I hope to have that modification ready to go for 1.0.1 as soon as I can.

Changes:

  • Adjusted Layout Object Hierarchy (on layout objects) and Parent Script Hierarchy (on script steps) to present a bottom-up hierarchy, so that the first item on the list is always the immediate parent.
  • Preferences: Save/Revert buttons now pay attention to what you're doing. When you make a change to the preferences, they light up to hint that further activation is necessary. Once you've selected whether to save it or change it back, the buttons gray out so it's clear that the action completed, and that further action is not required.
  • Also, the "Defaults" button was renamed to "Restore Function Defaults", and was moved to the top of the Flagged Functions list to clarify what defaults it specifically addresses.
  • Diff processor: Key equivalent added to the 2 Choose buttons (⌘1 for Original, ⌘2 for Modified)

Thanks to Kirk Rheinlander for the following:

  • "No Found Items" item now appearing on Broken References and Unreferenced Objects when appropriate. This fix also added it in quite a few other locations.

Thanks to Gary Palmer for the following:

  • When the registration server is unavailable, the error message has been changed to "The registration server is currently unavailable. Please try again in a couple of minutes. If you get this error again, please contact support."

Thanks to Radu-Dan Sabau for the following:

  • Added a warning to the Navigation tab on Preferences, that indicates that changes must be saved, and that they only apply to new DDR Browser documents.
  • When the only displayed result of a query is "No Found Items", the window title now says "0 elements" rather than "1 elements".

Thanks to John Renfrew for the following:

  • The Copy XML Text popup feature now wraps the XML in a root level node, producing a well-formed XML document. It's just boilerplate, but it makes the copied XML useful for something more than just visual review by a human.

Thanks to Matt Petrowsky for the following:

  • Introduced a little more space between items in the Browser (Column style)

There's lots more coming. Stay tuned...

Download version

Version 1.0.0 beta 28

Beta 28 is an exact copy of Beta 27, except for where it checks for updates. It exists only to connect users on the new updates server, so that they can get version 1.0 through automatic update when it is released.

Download version

Beta 27: Last beta?

Note: There's a really good chance that this will be the last beta before the official release on Friday. Thank you to everyone for all of your input and bug reports. When we go live on Friday, that does not mean that we're going to stop making updates. We're only just getting started.

Changes:

  • Resolved issues with single and double quotes in field names, script names, layout names, etc. This touched many aspects of the system, so I would appreciate it if eveyone could keep an eye out for unintended consequences.
  • Outline Browser now pre-discloses the first item after DDR open (saves you one click, every time).
  • Interface (preferences and export to CSV) updated to reflect latest naming for interface regions. Matt Petrowsky had some great input on clarifying the language used to describe the sections of the interface (Browser, Results, Detail).
  • Warning message added when importing a DDR from an earlier FileMaker version than FileMaker 12.
  • Truncate Table script step references now appear in the Table References query results.
  • Script / References is once again displaying references from remote database files.
  • Column Browser columns can now be reduced in width. Somebody asked for this, but I can't locate the reference. Whoever you are, thank you.
  • By the way, there are no new crash fixes, because we haven't seen a crash report since the release of beta 26. Good news for everyone.

Thanks to Radu-Dan Sabau for the following:

  • The Diff results no longer display the Debug Message column. It was just for me anyway.
  • When a layout theme changes, the Diff Processor now provides more useful feedback.
  • Reduced decimal imprecision in Diff. You're now less likely to get repeating or "e-15" bounds shift values.

Thanks to Vincent Cestmois for the following:

  • Script / Called By Scripts is now much faster. (Radu-Dan gets credit for finding the issue first, but Vincent provided the details I needed to resolve the issue.)

Thanks to Ernest Koe for the following:

  • Table Occurrence / Relationships are now specific to the selected table occurrence.

Thanks to John Renfrew for the following:

  • Opening a new DDR in a window that had already loaded one no longer breaks Unreferenced Objects queries.

Thanks to Bruce Robertson for the following:

  • Layout Object Hierarchy no longer contains the object itself, reducing the likelihood of accessing an infinite hierarchy progression.

Download version

Beta 26: Bugs fixes and tweaks

Changes:

  • Export Table Data as CSV menu option renamed to Export Detail List to CSV to conform with current naming standard. Also changed the three periods to actual ellipses, because typography matters...

Thanks to Matt Petrowsky for the following:

  • If you have an open DDR, try to open a different DDR into the same window, and then Cancel rather than select the new DDR, the original window no longer closes.
  • Global variables no longer showing reference to a $$$ variable when filemakerstandards.org # function is present.

Thanks to John Renfrew for the following:

  • Script step in search results now shows location as Script Step: XX rather than Script Step: Step XX. It's shorter and displays better without having to resize the column.
  • Hitting Refresh while using the Outline Navigator should no longer crash.
  • A Custom Function that calls a second custom function multiple times no longer displays the same function multiple times under Calls Functions. Also fixed for Called by Functions.

Thanks to Bruce Robertson for the following:

  • In multi-file DDRs, the File list is now default-sorted alphabetically.
  • Changed "File Size (MB)" column header to clarify whether it was the DDR file size or source database file size being addressed.

From Crashlytics (I don't know who to thank, because crash logs are anonymized):

  • Better survivability when importing corrupted DDRs.
  • Now handles button bars with improperly encoded orientation.
  • Now handles layout ovals with improperly encoded bounds.

Download version

Beta 25: Bugs fixes and small enhancements

Additions:

  • Big one: filter text and filter dropdown setting are now restored and removed as you move across the hierarchy. This resolves the obnoxious "I selected something, and now I can't see anything in the details list because the filter is still there and has to be cleared" behavior. And now, when you go back up the hierarchy, the filter will still be there.
  • Added a column to show the script step line number on the far left when viewing a list of script steps.
  • Added a column to show the kinds of auto-entry behaviors used by a field when viewing the field list.
  • The DDR browser window title now shows the tail end of the loaded file path, along with basic information on the currently selected item and the count of its elements. (Thanks to Matt Petrowsky and John Renfrew for weighing in on this.)
  • Huge multi-line tooltips are now truncated, and a note was added to the bottom that says "[Truncated - Click item to view complete value in sidebar detail]". Some of those script steps and calculations have very long descriptions...
  • The "Name" column now has width memory (within a single document). So, if you make it really wide for script steps, it will restore that width when you revisit script steps, while keeping it more reasonable in, say, field names. If you find you like this feature, let me know and I can see about making it apply across multiple documents.
  • If a field is defined as a lookup, but the lookup is deactivated, the definition of the lookup will now appear in the sidebar (marked as deactivated). This is to help resolve an issue where search criteria or references might find the deactivated lookup for a field, but when the viewing the field, no reference could be seen. This now matches the behavior for auto-entry calculations and validation calculations.
  • Freeform text search and filters are now restored during a refresh. There is a known issue here where freeform text search criteria will be restored, and run, but the refresh will not navigate further down the hierarchy. I'll get it fixed, but I didn't want to hold up all these other changes for this bug.
  • Refresh will now restore the selection set of items in the detail list, even if there are multiple of them.
  • And there's lots more on the way... Keep those ideas coming, please!

Thanks to Matt Petrowsky for the following:

  • Custom functions with # in their name can now locate their references.

Thanks to John Renfrew for the following:

  • When a field/portal is on a layout but no relationship path reaches the target table occurrence (due to severed relationships, broken references, or placing a related global field without the relationship), Step Depth and Predicate Depth for the object will now display -999, rather than previous -1, in the hopes that this will appear more an error code than a calculation bug. A note was added to the sidebar details documentation section as a reminder. -999 indicates "you can't get there from here."
  • File Access items no longer appear with red text in the header.
  • HTML SPAN tags are no longer appearing in the documentation section of the sidebar details for Indexed Fields.
  • Fixed inconsistent font styling in table-specific functionality rules sidebar details for Privilege Sets with custom record access privileges.
  • Fixed inconsistent font styling in lookup definitions.
  • Returns in object names (script steps in particular) no longer mess up the display of the breadcrumbs at the bottom of the screen.

Thanks to Radu-Dan Sabau for the following:

  • The sort indicator in the details list column headers now accurately reflects the current sort state when you click into a previously unvisited area, or return to a previously sorted one. Clicking on a column header to sort will now be much more likely to respond the way you intended the first time.

From Crashlytics (I don't know who to thank, because crash logs are anonymized):

  • Fix for a crasher on an oddly encoded script list.

Download version

Beta 24: Lots of bug fixes...

Sparkle integration is a wonderful thing!

The combination of the performance of FMPerception with Sparkle automatic updates means that we can release new versions very often, without forcing users to handle long re-import times. Todd and I are in agreement that our users should not have to wait for a major version release for bug fixes or even new features. We'll be aggressively tackling bugs and new feature requests, and releasing them as soon as they're ready to go. And the best part? You'll be able to start using them immediately!

Thanks to John Renfrew for the following:

  • Broken References/Empty Field References no longer display duplicate results.
  • Layout objects now display the style name from the theme in the table view.

Thanks to Wim Decorte for the following:

  • Plugin Functions references used in script steps now display the step number with the result.
  • Opening a new DDR into a window that had already loaded a DDR no longer scrambles the top hierarchy levels.

Thanks to Radu-Dan Sabau for the following:

  • FileMaker 13 DDRs no longer show CurrentHostTimestamp and CurrentTimestamp as Plugin Functions (in FileMaker 14, the case of these get() functions was altered).
  • Merge fields should now properly display when querying Layout References for a particular field.
  • Also, merge fields will now act as a reference for the purposes of the Unreferenced Objects query.
  • Show Custom Dialog no longer flags as having Empty Field References when using less than 3 input fields.
  • Blank spots in the Import Records import order no longer appear as Empty Field References.

Other features and bug fixes:

  • The Overridden CSS column now displays as the number of overridden properties, rather than just a dot to indicate "1 or more".
  • The name of the "File Bug Report" menu option in the Help menu was changed to "File Bug Report/Request Feature"... because we really want feature requests, too.
  • You no longer have to click out of changes to the Flagged Functions preferences before hitting Save. (See, even Cocoa and Swift sometimes needs the equivalent of Commit Records...)
  • Import Records script step no longer acts as a reference to every field in a table, improving display of Unreferenced Objects/Fields results.

From Crashlytics (I don't know who to thank, because crash logs are anonymized):

  • Fix for a crasher on the "Layouts and Folders" and "Layouts (flat)" lists.
  • Note: If you're seeing crashes when looking at layouts or layout objects, please contact us. I've been unable to reproduce the crash, so I'm left with reinforcing the code, and hoping that it resolves the problem. I'd prefer to be more proactive.

Download version

Beta 23: Initial bug reports (and a big feature)

New features:

  • Unreferenced Objects - In the slow section, you can access unreferenced objects by object type. Check it out and let me know what you think.
  • Custom function calculation content is now part of the table view, which means it can be searched or exported.

Thanks to John Renfrew for the following:

  • Button segments in Button Bars now properly display the label and icon name in the layout objects lists.
  • If the table view display section is collapsed to nothing, the interface objects inside are no longer scrambled when the section is re-expanded.
  • Repeating fields on layouts now display the number of repetitions (with orientation) in the sidebar.
  • Go To Layout by calculation is no longer appearing as a Broken Reference/Empty Layout Reference

From Crashlytics (I don't know who to thank, because crash logs are anonymized):

  • Fix for a crasher when a Line layout object has zero length.
  • Fix for a crasher related to layout object bounds.
  • Note: If you're seeing crashes when looking at layout objects, please contact us. I've been unable to reproduce the crash, so I'm left with reinforcing the code, and hoping that it resolves the problem. I'd prefer to be more proactive.

Download version

Beta 22: First public beta release!

Welcome to the world of FMPerception.

We're definitely interested in bugs and feature requests, to help make FMPerception as good as it possibly can be.

Download version