Updating Local Files

We've all heard it before. The mobile storm is coming - if not already here.

This means you're likely going to build a healthy number of mobile solutions. But heck, even if you're not, there's a ton of advantages to using a local file for part of your FileMaker solution.

With a local file, you can cache static data, images, media, you name it. Your local file can easily connect to any remote file and either temporarily transfer data, perform a sync or stay permanently connected.

The problem with this wonderful idea of a speedy local file is the notion of updates. How can you easily update the local file with a newer version which includes changes?

If you're comfortable with using a 100% pure FileMaker solution you can handle updates with either FileMaker Server or a peer-to-peer setup. Transferring bits across the wire, whether it be port 5003 or not, is pretty much the same.

If your FileMaker Server is already heavily loaded with normal data operations, then looking at the web server side of things is an easy approach to take. The remaining hurdle is making the update process work. This is where you can use the information in this video and the technique file to make it happen!

AttachmentSize
UpdatingLocalFiles.zip66.35 KB

Comments

Hey Matt,
Love the info and methods in this video. I currently have a system in place that is a bit more simple than This example and accomplishes almost the same thing. I have a local UI file that checks a hosted Updater file. The updater file has a container field with the latest release and a field for version number. The Local file checks local version number against hosted version file and if newer runs a script to get the current local file path and passes it to the updater file as a parameter and calls the updater script on the hosted updater file. The local file closes itself and the hosted file exports the field contents ( new local UI file ) to the path passed in the parameter, which overwrites the old local UI file. This works for both iOS and desktop without modification. I do not have an import records script in place, but will be looking at modding my system to include some form of importing records. This method could also utilize the import from URL as well to utilize a faster transfer than the container export from the server, but still avoid XML or HTML. Currently this method lacks the backup file in your video, but could ( and will be ) altered to do so.
Thanks for all you do!
Brooks

I have implemented your method of inserting from URL ( still using a hosted file for version control ) and it is at least 3 times faster then transferring from a hosted container field. Everything is working as it should but in your cleanup script you mention deleting the backup. I can not figure out how to delete the backup file on desktop or iOS. Do you have a method you could share?

Will this work also for runtime solutions?

what about upgarding a runtime from Version 11 to 12? how can this be accomplished on both win/mac?