I have already come across this helpful link: http://help.filemaker.com/app/answers/detail/a_id/7720/~/database-synchronization---an-overview-of-approaches But it doesn't seem to directly answer whether a hosted FM Pro file is always necessary for true syncing between two mobile devices. I have also read through the guide for creating one's own custom sync solution, which is something we would consider doing: http://www.filemaker.com/solutions/ios/docs/fmi_guide_sync_en.pdf But again it assumes a hosted FM database.
Thank you for your posts.
You can host a file with FileMaker Pro, as long as it is under five users. You do not need FileMaker Server.
Since you and your partner will be outside the network at times, you will need to determine a way to move updated data between the iPhones. Still, you need a master database to accept the changes and send out to the other device. This would be the main file hosted by FileMaker Pro. You cannot sync directly with another iOS device.
Once one of the iPhones gets back into Wi-Fi range of the hosted file, you could press a button that would move those changes to the hosted file and receive the updates. The second iPhone would do the same.
Let me know if you need additional clarification.
Dropbox can be used to transfer copies of your database to and from your device, but it doesn't sync, it will overwrite or make a second copy on your device. The file doesn't have to be hosted, you would have to transfer the database from the device, update the data (import into new db) and then transfer this new file back to the device. There are third party apps that are available.
Seedcode has GoZync which doesn't require FMS. There is a free version that will sync one table. http://www.seedcode.com/filemaker-sync-gozync/
360works has MirrowSync which does require FMS http://360works.com/filemaker-sync/
FMEasySync is a free Framework that requires FMS as designed http://www.fmeasysync.com/
This a good a example to use if you decide to create your own.
I don't know how likely it is that FM will add syncing between FM and FMGo, but you can always make a feature request
I have built a solution that included peer-to-peer sharing of data between FileMaker Go on iOS devices — it can be done. Let me know if you really want to know how.
But you should really consider syncing with a hosted solution first. There are many FileMaker hosting services that are pretty inexpensive.
Thanks for the feedback. The complication in our case is that we don't have a dedicated business computer running all the time to host our file using FileMaker Pro. (I presume that in order to host on a network, the computer has to be on and FM Pro has to be running. If, for example, the computer goes to sleep, or a different PC user logs in, the file is no longer being hosted. Correct?) That is why I was interested to know if there is a way to sync without using a hosted file as the master database.
Jeremy Bante: I would be interested in hearing about the solution you built. I am curious to know what all is involved.
I suppose in our case we may have to just do updates/syncing at the end of the day when we're at the computer, by connecting the phone to the computer through a network or transferring files to and from the computer. (I've come across FMEasySync, and it looks like it would be a good framework to start with, although we would have to tweak some things for our purposes.) The drawback is we won't be able to do updates/syncing on the road during those times that we have a connection.
If anyone has any other suggestions I would love to hear.
I wouldn't suggest using sleep mode on a computer that is hosting a database. I have not tried it with filemaker to see if it will wake on network access, I would think it would be too slow. The file does needs to be open and running on the hosted machine and the computer can be used while the computer is hosting the file. A user using a computer at the same time as a file is being hosted can slow the system down.. Most sync systems, I've seen requires the main database to be hosted during the sync process, it makes it easier to transfer the data. Syncing can be down when the user is back in office on the local network which will most likely be the fastest and most reliable way to sync the database. The problem with trying to use a hosted file vs a sync system is that a internet connection is required for the hosted system when on a outside network, which can lead to it own issues (speed / available connection).
To confirm what you asked, screen savers and sleep mode definitely interfere with FileMaker networking, as clients will be unable to connect to hosted files.
Ben, to share data between iPads without a host, the idea is to export a data carrier file on the first iOS device, share it via AirDrop to the second, and import data from that carrier file on the receiving end — it isn't a bi-directional sync, but it's something. The biggest issue to deal with is that the only file type FileMaker Go can import from — a FileMaker file — is also one of the only file types it can't export with the Export Records script step. However, FileMaker Go can store a FileMaker file in a container field and export the contents. So I built a fmp12 carrier file with the schema set-up for whatever I need to share, but no data in it, and saved that to a container field in the main application file. When a user wants to share data with another iOS device, that carrier file is exported (to the Documents folder), the application file runs a script establishing a found set of records to be shared, a script runs in the carrier file importing that found set and closing itself, and the application file prompts the user with the file name for the carrier file and instructions for how to share it via AirDrop. Once the carrier file is on the receiving iOS device, the application file can import from it.
For security and development convenience, neither the carrier file nor the application file have an external data source pointing to the other. They interact entirely through fmp:// URLs. So to start the import script in the carrier file, the application calls it with an fmp:// URL including the path to the application file so that the Import Records script step in the carrier file knows where to import from, and the carrier file calls back another script in the application file indicating the success or failure of the import, etc.
There are other security concerns I'm not going to get into too much detail about here, but you should still think about very carefully. How does the carrier file know it's talking to the right application file, and vice versa? What kind of token do the users share between each other to "unlock" (i.e., login to) a secured carrier file?
Also be warned that AirDrop can be surprisingly finicky about connecting devices, and it's worth both user training and including reminder instructions in your application user interface. The receiving iOS device has to be "awake" (not in sleep mode, and unlocked) to show up as a potential AirDrop recipient. If the receiving device is not configured to accept connection requests from "Contacts Only," it will only accept connections from another device if the receiving device has a record in the Contacts app with an Apple ID email address corresponding to the other iPad — not just any matching email address will do, it has to be the Apple ID registered on the sending iPad.