A READER ASKS
I've made significant enhancements to the bare bone Parish application that I was working on and now have one more question for you.
How do I update the application after distribution?
That is, after the application has been in use for a period of time, how do I replace the application on a machine without killing the data which people have updated. (In the days of exe's I would just bring in a new exe and all would be OK). With FM the data and the application are all rolled into one.
Will I have to do an 'export' table by table, or is there an easier way?
Well, you have hit upon one of the big hurdles for any FileMaker developer that thinks “I could make my database a product and sell it to a particular vertical market.”
There are a few different directions you can go and (in the end) you will probably need to do a combination of them. The quick list is ...
- Script an import routine that sucks all the data out of the old and puts it into the new
- Implement a separation model to divide data and interface cleanly
- Do a hosted implementation of your solution
ABOUT THE SEPARATION MODEL
In light of the way you phrased your question, your most promising first step could be utilizing a method called the separation model. This is a technique in which you have all your data within one FileMaker file and all your interface elements in another file. You use the ability for FileMaker to have external file references in order to blend the two so it looks like they are one. This isn’t as hard as it seems and that (kinda, sorta, maybe) is going to take you where you want to go. Ideally, you would give your clients a new interface file and it would immediately blend with their current data file and your update is complete.
The reality of the matter is that the data file contains all your data fields and your update is likely going to have some changes in the data field area. You will probably still want to go down that road because it does help you separate the tasks you will need to do. You can give your client a new version of the data file that has all the interface changes and then do your import and other actions in the single data file. So if you have any problems, they are most likely going to be limited to the data file area. That is given that you don’t have any fundamental problems with the interface file as a whole. Then again, you can target those problems and work in that file and simply give it to the customer.
I plan on writing a series of posts on the separation model and that is probably going to start at the end of the summer. I’m wrapping up a series of articles on Anchor/Buoy on my FileMaker Relationships Explored blog and then I will dive into all thing separation.
ABOUT SCRIPTED IMPORTS
This is the most common way to update a client file to a newer version. It does work but it does require the users database to go off line for a period of time and the process really should be supervised by a developer. The idea is that the script would go to a layout for each table in the solution, import the old data, update the serial number fields for the next record and then go to a layout for the next table until the process is complete.
ABOUT HOSTING YOUR SOLUTION
Now this one is a little bit country and a little bit rock n roll. The idea is that you hook up with a database hosting provider or have your own FileMaker Advanced Server(s) that you put your client files upon. So the client doesn’t really have a physical access to the file and everything is done remotely. This means you can implement changes as needed and not disrupt the users. It also means you can insure their files are always backed up and troubleshooting any problems they may have is much easier. It allows you to make any needed tweaks they may want with their files easier. You can even add an “order from the menu” option to users in which they can look at a series of enhancement options and select among them. Using FileMaker Advanced, you can grab huge chunks of core technology to make the “order from the menu” process quite easy.
If you are going to purchase your own servers, the downside is the equipment, software and IT related costs. Hosting providers are great in the aspect that they do all the heavy lifting IT work for you and you don’t have to invest in additional equipment and software. You can concentrate your attention and financial resources to the database development itself. Possible downsides include, if everyone that works at your hosting provider is at the big annual comic book convention when the server goes down, all your clients are down and you might find yourself in a sticky situation.
** I’m joking about that ... kinda, sorta, maybe. ***
There are most likely other techniques out there that are a tribute to something you would see in an episode of Wallace & Gromit. This can include custom functions, plug-ins, web viewer technology, SQL calls and the like. Some of these methods may be great and worthwhile for independent exploration. Others might become the equivalent experience of snow boarding down Mount Everest in your underwear.
At the onset of a new enterprise for you such as this, I highly recommend starting with the most fundamentally sound and proven methods first and after conquering those implementations, build a list of how other alternatives might fill in the gaps.
You might be a bit disappointed that FileMaker themselves have not added technology that would could make the updating and distribution process more streamlined. In many ways, recent updates to FileMaker have made the hosting option possible and that might be the way to go for you. It is a little bit “out of the box” to think about distributing solutions without any physical process of moving files to a client location.
I would at least try the hosted route with your first client and see how it goes. Learning from that experience will help you tailor that experience for your other users .... or ... make a decision it is simply not a viable method for you.
BTW: My friends at thedroolingdog.com offer a free 30 day trial period for FileMaker hosting.
More info about the author and FileMaker in general, contact me at firstname.lastname@example.org.
© 2008 - Dwayne Wright - dwaynewright.com
The material on this document is offered AS IS. There is NO REPRESENTATION OR WARRANTY, expressed or implied, nor does any other contributor to this document. WARRANTIES OF MERCHANT ABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY DISCLAIMED. Consequential and incidental damages are expressly excluded. FileMaker Pro is the registered trademark of FileMaker Inc.
===== UNPAID ADVERTISEMENT FOR A SERVICE I RECOMMEND =====