13 Replies Latest reply on Sep 14, 2014 8:26 AM by philmodjunk

    Manage External Data Sources (script the changing of ip addresses)

    ezz

      Title

      Manage External Data Sources (script the changing of ip addresses)

      Post

      Just testing Go with the concept of offline syncing with a host file (Pro) and in the scenario where a solution was developed to market how can the External Data Source references be updated to match the users ip addresses without manually making them use Manage External Data Sources? Is it possible?

      Documentation states no variables are possible in Data Source Path References. Documentation also states it is best to not use asterisks for the ip address of the host (is that the solution but not a good one?).

      My concern is that any distributed solution should be easy for end users to get going with and having to manually go into Manage Ext\ernal Data Sources and configure there own ip address setting is not at all user friendly.

       

      Am I missing something simple here or is that just the way is and no way around it?

       

        • 1. Re: Manage External Data Sources (script the changing of ip addresses)
          schamblee

          A user can not make changes to the Data Sources using "Filemaker Go".   You have two different options with Go, you can use file sharing (networking) or standalone w syncing.  Filemaker does not come with  syncing built-in, you would have to build your own or purchase a third party program.  

          Link to Filemaker Sync Guide :

          http://www.filemaker.com/solutions/ios/docs/fmi_guide_sync_en.pdf

          Link to third party software

          http://www.seedcode.com/filemaker-sync-gozync/?gclid=CKbpnrjy1sACFaTm7Aodo1cA2Q

          http://360works.com/filemaker-sync/

          Connect to a file Via Go

          http://help.filemaker.com/app/answers/detail/a_id/7763/~/connecting-to-a-file-via-filemaker-go

           

          • 2. Re: Manage External Data Sources (script the changing of ip addresses)
            ezz

            I understand all the above... I am specifically referring to IF there is any other user friendly solution to Manage External Data Sources through code/script/plugin etc rather than require end users to manually update their own through the menu item. The goal is to not rely on end users to manually enter a text path (ip address) in order for a solution to work in their own network sharing environment.

            fmnet:/*/Host.fmp12

            Using an asterisk in the path for external data sources file(s) to be deployed on Filemaker Go works but is not 'best practice' for performance reasons, therefore the hard coded ip of the users network address to Pro or Server is recommended.

            In any mobile (Go) and Desktop (Pro/Server) solution combo in regards to sync at least one file on the GO must have a link to the external data source it is syncing with. Even the third party solutions require this (that you edit the external data sources).

            So for end user solutions in various networks, instructions must be given to open the Go file first on the desktop and manually edit the path for their own network then transfer to the device... which is less than ideal... a button press one could live with but manual edits are prone to errors and risks of numerous support calls "it doesn't work" only to find an incorrect path was entered/typed.

             

            Variables can be used in all other paths but not the external data source section of Filemaker which seems counter productive to producing 'end user friendly solutions'.

            • 3. Re: Manage External Data Sources (script the changing of ip addresses)
              schamblee

              You can not modify scripts from Filemaker Go and Filemaker Go also does not support plug-ins.   Manage External Data Source refers connecting to Databases outside of Filemaker such as sql databases.   Your fmnet:/*/host.fmp12 file would not be consider a External Data Source, because it is a Filemaker Database which all tables are located in the database.  

              You can create a client standalone database that connects to a database on a server this client database would use "open url" to open the database located on the server.

              http://www.filemaker.com/help/13/fmp/en/html/scripts_ref2.37.69.html

              You can also create an icon with the 'App Maker' database which can be download from  https://fmdev.filemaker.com/docs/DOC-2654   You will have to register, but it is free.

              Apple also has an iphone configuration utility program that can be downloaded from http://support.apple.com/downloads/#iphone

               

              • 4. Re: Manage External Data Sources (script the changing of ip addresses)
                philmodjunk

                Manage External Data Source refers connecting to Databases outside of Filemaker such as sql databases.

                Pardon my nit-picking but external data sources can be references to tables in other Filemaker files as well as sql databases. And if you have a front end file on the iOS device with the data file on a server, it is the method that would be used to link one to the other.

                But this is not the only way to set up iOS devices as clients of a hosted database. The entire file or both files can be located on the server rather than the iOS device, for example.

                • 5. Re: Manage External Data Sources (script the changing of ip addresses)
                  schamblee

                  I wasn't meaning to excluding other filemaker files from being external data source.  This would be handle in Filemaker Pro and not in Go. In reference to the question, I believe Ez is wanting to connect to different databases from Filemaker Go on a server instead of external data source.   Databases contains tables and you can connect to those different table in different Databases, which would be External Data Source.  I don't always say it the way I'm thinking it. wink     

                  Thanks PhilModJunk

                  • 6. Re: Manage External Data Sources (script the changing of ip addresses)
                    ezz

                    Phil has it right in that I am simply talking about a Filemaker Go file talking to a desktop hosted Filemaker Pro or Server file on the same network. The concept of offline syncing a field database with its master office host (not live connections). As per the below, for example.

                    Link to Filemaker Sync Guide: http://www.filemaker.com/solutions/ios/docs/fmi_guide_sync_en.pdf

                    The wish list answer I think is that if one could use a script step named "Add/Edit Managed External Data Sources" as opposed to only the available menu command of "Open Managed External Data Sources".

                    The question was is there another way around this at all (to write paths through code in the 'Manage External Data Sources' dialog box. Filemaker documentation states No but perhaps a plugin or something else existed I was not aware of... but perhaps not it seems.

                    • 7. Re: Manage External Data Sources (script the changing of ip addresses)
                      schamblee

                      That is not what Phil said.  Phil stated a FMP database can be an External Data Source which is not what you are talking about .   Your statement above states you want to  connect to a network then sync your data.  This is two different things.  

                      I will give you an example of External Data Source:  You have two databases from the starter solutions. (Inventory.fmp12 and Invoices.fmp12)
                      You could modify either databases to access the data from the other database.  You would open one of the databases such as Invoices.fmp12 then you would use "External Data Source" to add tables from the Inventory.fmp12 database, so you could use the fields from the inventory database in your Invoice databases.   

                      No, plugin will not run on Filemaker Go, they are not supported.    No you don't use script to manage external data source.  You can create scripts to sync data from the database on the ios device to the database on the server. Example scripts are in the Filemaker Sync Guide.   The easies way is to use seedcode Gosync app.  All the work is done for you.

                       

                      • 8. Re: Manage External Data Sources (script the changing of ip addresses)
                        ezz

                        Thanks S... I did not mean to imply your information was wrong at all... just that Phil was right in that I am talking about connecting to another Filemaker Database from Go... specifically the comments ("I believe Ez is wanting to connect to different databases from Filemaker Go" vs "And if you have a front end file on the iOS device with the data file on a server, it is the method that would be used to link one to the other").

                        "You would open one of the databases such as Invoices.fmp12 then you would use "External Data Source" to add tables from the Inventory.fmp12 database, so you could use the fields from the inventory database in your Invoice databases."

                        In your example I understand the process of first using "Manage External Data Sources" dialog box to add the 'path reference' to the other Filemaker file and then subsequently the ability to add table occurrences from that other file. If both files reside on the desktop for example then the path would be as simple as 'file:......fmp12' and work across any machine provided the two files are in the same folder.

                        In the case of GO and a Host though the file path must be an ip or name server address such as 'fmnet:/192.168.10.10/database.fmp12' which if distributed as a solution to various networks with a host not matching this exact ip address already hardcoded into your Go files data sources then your solution breaks... unless you have the end user manually go into the Go file (on the desktop with Pro) and update the data source to their own network ip address before putting the file on the ipad for example.

                        Now a solution that works it seems would be to use a wildcard (asterisk) in place of the specific ip address such as 'fmnet:/*/database.fmp12' in the Go file and as such there is no longer the need for the end user in a distributed solution to modify the data sources to get it working.

                        So the original question was is it possible to script or code the changing of the path reference. Be it on a desktop through Pro or otherwise. I think not is the answer but perhaps someone knew a way or a plugin etc:

                        http://www.filemaker.com/help/html/odbc_ess.20.5.html#1027714 and specifically

                                                                         
                                       
                        Variables are not supported in FileMaker data source references.
                                       

                         

                        "The easiest way is to use seedcode Gosync app.  All the work is done for you"... This may be so and a great utility but its way to expensive to be considered a good solution for distribution considering you have to already sell your clients on the costs of your own solution + Filemaker Pro and or Server and also then GoZync... It also does not get around the fact of the end user (not me the solution developer) having to manually modify the data source even if using GoZync.

                         

                        The remaining question is using the asterisk in place of a hard coded ip is not ideal (it is stated because Filemaker will search through all ip addresses which in turn affects find performance). Does anyone know any more details on such negative affects... ie, does Filemaker only search once on the first call in a script (Sync) through all ip's until a match is found or does it mean every script step using the external reference in script (Sync) will search all ip's again and again. Also is there a timeout issue here at all in the event on many ip's to search through... any other gotcha's to think about?

                         

                         

                        • 9. Re: Manage External Data Sources (script the changing of ip addresses)
                          schamblee

                          The ip address shouldn't change on a server, because you should use a static ip address on the server.   

                          • 10. Re: Manage External Data Sources (script the changing of ip addresses)
                            ezz

                            Agreed, in the case of a single custom solution for a single client this whole issue is null and void... the solution developer can hard code the ip reference into any system for that one client OR go onsite and setup the system (or instruct any IT administrator to do such).

                            On a bigger scale though it is a potential issue when considering Filemaker a viable RAD tool for mass marketing in house Mobile and Host solution combinations for any company or small business that may have different network configurations.

                            • 11. Re: Manage External Data Sources (script the changing of ip addresses)
                              schamblee

                              There are hundreds of companies that use Filemaker Pro and Go.   You would not hard code the ip address, you would setup a field that stores the server information that could be changed.   Try the Free GoZync to see how syncing will work.  It's locked but you can get an idea of what is need in your own app.  The GoZync is done all in Filemaker with no plugs-ins.   You should be able to come up with something by looking at the Filemaker Sync Guide and the app.  http://www.seedcode.com/filemaker-sync-gozync/

                              • 12. Re: Manage External Data Sources (script the changing of ip addresses)
                                ezz

                                S:"You would not hard code the ip address, you would setup a field that stores the server information that could be changed."

                                If one could do this then that would be a solution but Filemaker does not allow this functionality (variables in data source paths to be used) which led me to the question in the first place.

                                BTW, I understand syncing and have written from scratch an offline sync process which works just fine. Actually scripting offline sync into most solutions is not that hard, it's just a little flawed with sacrifices or workarounds. It would be nice if Filemaker improved many aspects of the suite a bit more in regards to offline syncing but alas that is another bigger conversation of which this one problem of data source variables is part of.

                                This also is getting off track but regardless... I have tried GoZync and even if we set aside the costs for arguments sake and however good the utility might be under the hood it is not really doing anything a medium level or above coder can not achieve on their own (no disrespect to GoZync for their great application but I think better suited to those who can not get the concept of setting up their own offline syncing). It also still requires editing/copying of scripts, adding table occurrences and the editing of data sources manually (not via a field entry) etc., if you have developed your own sync framework there is very little extra work in order to migrate that logic into any other of your own solutions in about the same time it takes to setup GoZync. On a personal level I also don't like the need to have 2 hosted files open with GoZync for it all to work.  

                                Off topic again but an interesting much bigger subject is the viability of Filemaker as a RAD tool. Briefly 'hundreds of companies' is depressing from a solution developers point of view... who would want to market their hard work to any and all companies in any given sector or trade globally. Don't get me wrong in that I love what Filemaker has done with the product since 12 and really hope they progress further and increase market share and awareness. It is at present a unique RAD tool which opens up 'half' a world of opportunities with Mobile device and Desktop RD development but is a bit crippled still in many fundamental RD aspects, lacking in some refinement of effective scope such as this little data source issue, among other concerns from a developers aspect not worth going into in this thread.

                                 

                                • 13. Re: Manage External Data Sources (script the changing of ip addresses)
                                  philmodjunk

                                  Ironically, back in the days of FIleMaker 3 - 5.5, there was built in code for this. If an externally sourced file "went missing", an open file dialog opened for finding the file (like happens in Pro today), you found the file and then external data sources were updated to this new file name or location (This update does not take place in current versions). Back then, it drove us crazy as we little control over this and no direct access to something like the current Manage External Data Sources and the results were incredibly messy data source references and clients first moving or renaming a file (and every file had only one table so all relationships were via external data source references) and then "finding" the wrong file to connect to...

                                  But if we could use passwords and a script to control such a process, it would be a nice new feature for FM GO.

                                  http://www.filemaker.com/company/contact/feature_request.html