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.
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.