5 Replies Latest reply on Jan 21, 2016 11:43 PM by macwombat

    Scripting in FMP 12 - learning curve?


      Greetings -


      Longtime FIleMaker user here, but have never ventured into any scripting. I'm the director of a non-profit that uses QuickBooks Online for our bookkeeping. I was frustrated with the limits that QBO has for customer information, so we started using a donor management module/app designed to sync with QBO. This tool has been so clunky and unintuitive that I decided to see if there was any way to sync FM with QBO.


      There is a company making a product called fmQBO designed to do just that. However, it requires the ability to write or at least adapt FM scripts. I've just started looking into this, but I'm concerned about the learning curve required to get up to the necessary level to do this competently (and securely). I could assign this to our administrative assistant, but she has no database experience. She's young and very computer-savvy, however.


      I'd appreciate any advise from scripting gurus on this list. Thanks




      BTW, I posted this in another (wrong) discussion area. I'm just leaning how this forum works, so I apologize for the double post.

        • 1. Re: Scripting in FMP 12 - learning curve?

          I would suggest you begin learning scripting by writing scripts. Sounds obvious, yes. Write scripts in a non crucial file, perhaps one you create just for this purpose. A good place to start is to understand that everything, or almost everything, that's in the default menus can be scripted. Start with simple things . . . perhaps a find script for example. The script steps are mostly self-descriptive. And a script can be one line/step. Go to layout (navigation step) can be followed by a find by entering Find Mode, setting a field and performing a find. Set Variable is a particularly important step as it can, among other things, make a script reusable. The more you write the more you will discover. As PhilModJunk said "developing for fm without scripting is like canoeing with one paddle".

          my two cents . . .



          • 2. Re: Scripting in FMP 12 - learning curve?

            Adding to Rick's excellent advice, think of something you regularly do with your current database—there's bound to be some sequence of steps you regularly repeat—and try to write a script that replicates that. A script is, at its base, a series of steps you would otherwise have to perform manually.

            • 3. Re: Scripting in FMP 12 - learning curve?

              If she is computer savvy and interested to learn a new skill why not get her to look at some of the starter solutions and check out the scripts in those.  The contacts starter solution would seem to most readily suit the style of database you are talking about.  Those scripts are not too complex but they give you an idea of what FM scripting is like.

              • 4. Re: Scripting in FMP 12 - learning curve?

                Thanks to all for your replies. I decided to wade it and take a shot at this. I have been using the fmp12_scripts_reference.pdf(?) file and following the tutorial instructions from the company that created the fmQBO tool. I didn't get very far before I was stumped. My question has to do with true/false implementation. Here's part of the connection script I'm looking at:


                #set to true if you want to enable the Sanbox for this connection

                #set to false if you want to disable the Sanbox for this connection

                #set to empty to use the current sandbox state

                Set Variable [$isSandbox; Value:Settings::useSandbox]


                I see many references in the documentation to True and False being the results of a calculation, but none to "setting" those in a script line/statement.


                Am I missing something obvious? Thanks.

                • 5. Re: Scripting in FMP 12 - learning curve?

                  In FileMaker anything that evaluates to 1 (or basically not zero and not empty) is true and to zero is false.  In your set variable script step above, the value in the field called Settings::useSandbox will presumably have a 1 if the sandbox is to be used, it will have a zero if the sandbox is not to be used and it will be empty if the current sandbox state is to remain as it is.