Data Separation – Part 1Posted: October 19, 2011
The Filemaker application that I spend most of my time on is proving to be rather sought after. Developed for (only) the use of this organisation, it is currently a single file solution- i.e. data, interface, and everything else in one file. We now, however, are preparing it for use by 2 other organisations. Supporting it and updating it in future will be much easier if the data is split out from the interface. That way, each customer will have their own data file, and they will all have the same interface file.
And so begins the process of converting it.
The first stage is simple, but mind-numbingly tedious, and it’s one of those things that I’m sure Filemaker could make easier. Given the single file, Focus.fp7, I’ve made 2 copies of it, i.e. Focus_DATA.fp7 and Focus_INTERFACE.fp7. At this stage, the 2 files are identical.
I now need to take the interface file, and point all references to data items to the data file. So, within the interface file, I defined the data file as an external data source (File, Manage, External Data Sources). Then (and this is the laborious part), reassign the TOs in the interface file to the equivalent TOs in the data file.
This means, for every TO in the interface file:
- Within the relationships graph, copy the TO name – e.g., in my solution, “PGM to SSN”.
- Select the data file from the list of data sources.
- Select the appropriate table name.
- Paste the original TO name.
In my solution there are literally HUNDREDS of TOs, so it really is a pain. BUT, I’m 75% there after several hours’ work that a well-trained monkey could do.
The satisfying bit is going to the list of tables (in Manage Database), seeing which ones no longer feature in the Relationships Graph, and deleting them. The table is, of course, still in the data file, which is the whole point.
The next step will be to get rid of the LAYOUTS in the data file, but I’m not sure what to do with all the RELATIONSHIPS in the data file. Mostly, these will be surplus to requirements, as most of the relationship stuff will be taken care of in the interface file, but there are some (many?) relationships that will still be needed for calc fields etc. So, how to work out what’s needed over there, and what can be zapped? Could be another long job.