The short-lived project of rewriting the DCC database in FileMaker 7 was abandoned because a) we still had a lot of MacOS 9 machines in use, machines that would not have performed well under OS X / Filemaker 7; and b) because a new production director came on board and in collaboration we decided to implement a wide range of changes in the existing FileMaker 6 database structure. (See /DCC_architectural.html for a discussion of these latter changes). Since implementing the same changes effectively meant starting over from scratch in the FileMaker 7 version, I stopped work on it.

However, in spring of 2006, I decided to take another run at it, and rebuilt the entire DCC-NY database from the ground up, this time in FileMaker 8. It isn't in deployment yet, but it is complete and ready to go; all subsequent changes will be made in both the FileMaker 6 version and the FileMaker 8 version, and soon we will import all the data into the FileMaker 8 version and retire FileMaker 6 for good.

The full rewrite took 6 weeks, with interruptions provided by various changes and tweaks and tech-support requests pertaining to the live FileMaker 6 version. (i.e., I effectively did it in my down time at work).

 



Routines that in FileMaker 6 required a series of script steps in one file followed by a call to a remote script in another file to continue operations there were easily rewritten as single scripts in Filemaker 8.

Parameters that were stored and acted upon in FileMaker 6 by utilizing a raft of global fields were handled more gracefully in FileMaker 8 with declared variables.

Lots of scripts - especially navigation scripts - that in FileMaker 6 not only required routines that started in one file / script and continued in another file's scripts, but also required the local part to be rewritten or imported in file after file just to navigate to the same screen with related data showing were replaced in FileMaker 8 with single scripts that could be written once and deployed from the vantage point of any table and its layouts.

Script comparison

Many other scripts that in FileMaker 6 did the same thing with only minor variations were replaced in the FileMaker 8 version with a single script plus different script parameters attached to different buttons -- script parameters which were tested for to result in minor divergent behavior within the single script.

FileMaker buttonscripts



Dozens of scripts attached to fields just to give folks access to fields in Find Mode but not in Browse Mode became unnecessary in FileMaker 8 due to the new native field access controls.

The FileMaker 8 access privileges system (finally after all these years FileMaker has a sophisticated and highly granular security and privileges system) replaced the vast majority of my traditional FileMaker 5/6 era logon hack (see /USERS_ADMIN/UsersAdmin.html), although I still found it useful to pass some personal parameters to persistent values (variables now instead of globals) at logon time.

The FileMaker 8 version is web-ready via instant web publishing for looking up data in any of the relevant tables, something that would require extensive development in some form of middleware under FileMaker 6. The built-in web capabilities have finally come of age and using them is a pleasure.

I've also made use of the fancy & powerful text-formatting function calls in the FileMaker 8 version and anticipate making further use of it.

And although the DCC FileMaker system is not a vertical-market solution and therefore doesn't intrinsically benefit from the ability to separate data and structure as a vertical-market / shrinkwrap-for-resale solution would, I did find it useful in one place to have the layout and several relevant scripts in one file while referencing the data of a table back in the main file. (The old Invoice file, which I was intending on using on a read-only basis for old archived invoice records dating back to a far different architecture, rather than write in all the exception-handling subscripts for dealing with that old data in the live FileMaker 8 main file, ALSO happened to contain the layout for the printable invoice itself, a messy and tricky layout to replicate. So I didn't: I just duplicated it in the old file and had it reference the new live table data of the Invoice table in the main file!

All in all, FileMaker 8 is a nice step forward from FileMaker 7 (many nice refinements, and the rough edges of the new architecture smoothed out) and a great leap forward from FileMaker 6, while still remaining FileMaker in all the best senses of the word.