• 0

Monthly FileMaker Meetup – June 2017

Thank you to everyone who came out for our monthly FileMaker Portland Meetup group that met on Wednesday, June 14, 2017.

We watched a great presentation by Ralf Rainer von Albedyhll about his new app titled ‘NextPitchLA’ (that is now up and ready for download from the Apple App Store) that was created entirely from FileMaker. He walked us through the app which helps users track developments in the new Regulation Crowdfunding world, an online marketplace where non-accredited investors (and just plain regular folk) get to invest in startups. We also gained insight into the process of appraisal and approval from the Apple App Store.

See more of Ralf’s work at, and check out his website for more info about his exciting new startup!

Our many thanks goes out to Ken Skeen and Hanna Anderson for graciously providing a space for the event and to Matt Navarre for hosting and providing Hot Lips pizza and beverages! Also, a special thanks to Joey Grimaldi of ODI Technologies for informing us of the existence of this: Sales Guy vs. Web Dude.

Our next FileMaker Portland Meetup is scheduled for Wednesday, August 9th, 2017 for a DevCon recap. We hope to see all of you there!

  • 0

AppWorks receives Emerging Small Business certification

Credit: Eric Prado

Extra! Extra!  Read all about it!

AppWorks receives an Emerging Small Business (ESB) certification in Oregon.

What does this mean? I’m glad you asked! The ESB program opens the door for small businesses like us to participate in the state’s myriad public contracting procurement programs. 

Some examples of the state agencies we currently work with are the Dept. of Human Services, Epidemiology Division, DAS Surplus Property programDept. of Agriculture and Oregon State University. This certification will provide us with more contracting opportunities with state, county and city government agencies and jurisdictions, such as hospitals and universities.

We look forward to developing custom software for state, county and city agencies and working with the procurement agencies across Oregon.


  • 0

Podcast Episode 134 :: Vince Menanno discusses Tableau

Tags : 


For FileMaker Talk Podcast Episode 134 Vince Menanno discusses Tableau and the integration within FileMaker 16 with Matt Navarre.

Like this? Check out more podcast at FileMaker Talk.

  • 0

Podcast 133: FileMaker 16 – New Features Galore!

Tags : 


Matt Navarre and Matt Petrowsky (aka Matt Squared) talk about the new FileMaker 16 release and what it means for FileMaker developers around the globe. Looking for that deep dive into what the new features mean? Have a listen to this particular episode.


Like this? Check out more podcast at FileMaker Talk.

  • 6

FileMaker 16: External Data Sources

One of the new features in FileMaker 16 is the ability to set an external data source dynamically by using a variable.

So, what does that do?  How does it work? What does that mean for FileMaker development?

What it Means

It provides the ability to have multiple customers share a user interface file but each have their own data files.

In previous versions of FileMaker, external data sources were fixed, so each user had to have their own set of files, or record level security had to be used to block access to other user’s records in one data file.

Record level security can really bog down a system, so separate data files have serious performance benefits. However, if each customer has their own file and there are thirty customers, a small UI change meant that you would have to replace thirty different files.

In FileMaker 16, we can have as single UI file that all users login into. The file will look at who is logging in, dynamically set the data file name in a variable accordingly, and make sure they only connect to their data. A small UI update can be achieved by replacing a single file not the server.

How it Works

The UI file will not attempt to open the data file until it “needs” it, whether it is because there is a reference to it in a script that is called, or a field from the data source on a layout. Once that happens, the UI file will “resolve” the relationship and connect.  If this is defined as a variable, the variable needs to be defined before the external data source can be accessed. This means the variable will most likely be defined in a startup script which the purposely accesses the data file to make sure that relationship is resolved correctly.

That would be scripted something like this:

If [ Get ( AccountPrivilegeSetName ) = “Customer1” ]

Set Variable [ $DataFile ; Value: “file:Customer1_Data.fmp12” ]

Else If [ Get ( Account PrivilegeSetName ) = “Customer2” ]

Set Variable [ $DataFile ; Value: “file:Customer1_Data.fmp12” ]

End if

Go to Layout [ “Data” (Data) ; Animation: None ]

The last line of of the script above goes to a layout based on the data source, forcing the relationship to be resolved while the script is still running and the variable still exists. Alternatively, a global variable could be used, whose scope would extend outside of the script, and then the open script wouldn’t necessarily need to force the relationship to be resolved right away.

Issues to Consider

While this new feature has remarkable potential to simplify UI development on vertical market solutions, there are some issues that will have to be addressed. All of the ones that come to mind revolve around security.

A way will have to be developed to handle the accounts between the UI and Data file. Do you have all of the accounts in the UI file and then only the applicable accounts in each data file?  Or do you have an auto-login in the UI file and some other process for logging into the right data file with the right account?

Another issue is the “Re-Login” script step.  Once the connection is made to the data file, it will be fixed until both the UI and Data file are closed and reopened. This means if a user uses re-login to log in as a user who does not have access to the file they are going to remain connected to a file they no longer have access to. Also, what if a user needs access to all of the data files? Letting them pick on login might be an option, but having to close the whole system and start it back up to switch data could become cumbersome for someone managing several customers on a vertical market solution.

Join the Conversation

What potential do you see for this feature? What other benefits might it have? What other drawbacks?  What solutions do you see for dealing with these drawbacks?

  • 5

FileMaker 16: Passing Multiple Parameters Natively Using JSON

Tags : 

With the release of version 16, FileMaker developers finally have the ability to natively pass and parse multiple script parameters . This is made possible by the new JSON functions — specifically, the JSONSetElement function and the JSONGetElement function. There are various methods and syntaxes FileMaker developers have been using for passing multiple parameters to and from scripts, but the most common one I’ve come across is key-value pairs in the format “key1 = value1 ; key2 = value2 ; key3 = value3” etc. This is a nice simple format, but it has some limitations. The new method in 16 is to pass a JSON object, with a series of elements that form the key-value pairs, and parse those elements out of the JSON object in the sub script. So, what once was passed as:

"id = 32313 ;
name = alice ;
address = 123 Main St. ;
member = true"

is now passed as:

     "id" : 32313, 
     "name" : "alice", 
     "address" : "123 Main St.", 
     "member" : true 

And on the receiving end, we parse out each element into a variable and use them from there, using the JSONGetElement function. There’s no longer a need for custom parsing functions, or complex let statements that parse and instantiate each variable.

There are two ways to form the JSON object when passing the parameters. The first, and more clunky way, is to just write the JSON from scratch. I say clunky because you have to do things like escape lots of quotation marks, and insert ampersands, and insert unescaped quotation marks, and insert syntax errors, and (barf) and I wouldn’t recommend it. But this is what you’d write, if you so desired:

     \"id\" : " & TableName::ID_Field & ", 
     \"name\" : \"" & TabelName::Name_Field & "\", 
     \"address\" : \"123 Main St.\", 
     \"member\" : true 


The second, and more elegant way, is to leverage the JSONSetElement function:

JSONSetElement ( "{}" ;
     [ "id" ; TableName::ID_Field ; "" ] ; 
     [ "name" ; TableName::Name_Field ; "" ] ; 
     [ "address" ; "123 Main St." ; "" ] ; 
     [ "member" ; True ; "" ] 

Now when the script into which you’re passing parameters begins running, you (optionally) set a variable to*:

Set Variable [ $param ; Value : JSONFormatElements ( Get ( ScriptParameter ) ) ]

And in the following script steps, you instantiate a variable for each of the incoming JSON elements as needed, using the JSONGetElement function. Since the variable $param is now just a tidy little package of JSON, you can pull out individual elements from it like so:

Set Variable [ $id ; Value: JSONGetElement ( $param ; "id" ) ]
Set Variable [ $name ; Value: JSONGetElement ( $param ; "name" ) ]
Set Variable [ $address ; Value: JSONGetElement ( $param ; "address" ) ]
Set Variable [ $member ; Value: JSONGetElement ( $param ; "member" ) ]

It works beautifully. This is JSON functionality at its most basic, but it’s a pleasure to use, and provides us with a brand-new, simple way to do something we’ve wanted to be able to do natively for years. And what’s cool about the new JSON functions is that FileMaker developers can start natively doing even more complex things, like building arrays of data, with child records and all, right inside variables, and pack and unpack them at will using native functions. All in all, JSON is a welcomed addition to the FileMaker platform’s toolset.


*The JSONFormatElements function is nice to have for looking at parameters in the data viewer, but is not actually required. All it does is take the JSON that is passed in and format it neatly with line breaks and indentation. You can just use Get ( ScriptParameter ) alone and everything will work just fine.

  • 0

AppWorks is hiring

Tags : 

AppWorks is hiring! We’re looking for energetic, creative individuals to build and/or maintain custom software for our clients using the FileMaker Platform.


  • End-to-end development of custom business software, including building data tables and relationships, designing user interface, scripting, and quality assurance testing
  • Maintenance of existing new and/or legacy software systems
  • Interaction directly with clients to assess their needs, and keep them apprised of project status, when necessary
  • Working closely with project managers and other FileMaker developers to design, implement, and maintain systems with a high level of quality
  • Working with internal project management tools
  • Accurately tracking billable hours on a daily basis


  • Excellent communications skills
  • 3 years of FileMaker Platform experience
  • Strong understanding of relational database design
  • Solid programming skills
  • Ability to articulate software concepts to non-technical staff
  • Ability to train/instruct end users to use the FileMaker Platform features
  • Exhibit signs of creativity and a positive attitude
  • Team player
  • Ability to perform job functions with a minimum of supervision
  • Basic knowledge of at least three of the following SQL, PHP, HTML, JavaScript, REST, JSON and C++

About AppWorks

AppWorks is a custom app development firm that specializes in creating database solutions to be used on any iOS or desktop device – including the web. We predominantly work with the FileMaker Platform (FileMaker Inc. is a wholly owned Apple subsidiary). We continue to diversify our portfolio while maintaining a strong focus in healthcare and public health, commercial and government databases.

We are pivotal in the FileMaker community – we are one of only three Platinum members in Oregon. We regularly host Apple events and co-host the FileMaker Portland Meetup group that is over 135 people strong.

In addition, we also offer FileMaker training classes four times per year. We offer beginner and intermediate classes. Matt Navarre is a regular speaker on FM Academy; is often asked to speak at conferences (like FileMaker’s annual DevCon); and co-hosts FileMaker Talk.

Working at AppWorks

AppWorks offices are located in downtown Portland, Oregon.

  • High-energy atmosphere
  • Encouraging and supportive work environment
  • Opportunity for professional development and growth
  • Training, mentoring, and opportunity to obtain professional certifications
  • Opportunities to attend annual FileMaker Developer conference
  • Competitive salary, health plan, yearly paid time off, 401K with company match after one year of service.
  • Annual bonuses
  • Team outings

We are looking for a long-term employee. Someone who sees our vision, fits in our culture and wants to help us maintain and build on this momentum as we grow over the years into a larger, flourishing company. We are a work-to-live company, not a live-to-work company.

Please provide samples of your development work.

Send inquiries to


  • 0

Podcast 132 :: Molly Connolly & Matt Navarre talk about conferences

Tags : 








Molly Connolly & Matt Navarre talk about conferences – DevCon, Pause on Error, and news about Elusive Moose.

Did you know Women of FileMaker are sending three women to DevCon. Apply for the scholarship for free conference pass now – applications close on April 7!

Make sure to check out her sessions at DevCon!

Molly also highlights Thorsen Consulting‘s services including business topics such as the jump-start training program.

Like this? Check out more podcast at FileMaker Talk.

  • 0

Podcast 131 :: Mark Scott from Beezwax on Button Bars

Tags : 


Matt Navarre catches up with Mark Scott from Beezwax on Button Bars.

Like this? Check out more podcast at FileMaker Talk.

  • 0


Tags : 

Credit: NASA/Tony Gray

AppWorks is happy to share LaunchIt a user friendly file launching module. This FileMaker module gives developers a fast way to share solutions with clients.

It takes time to talk a client through adding the hosted solution to their favorites and going through the steps of typing credentials – especially if the client is prone to typos. The launcher file takes less than a minute to set up, gives the user feedback if it doesn’t work, and doesn’t have the potential for opening security holes in a system.

A fmp url protocol and the open url script tell FileMaker to go to a server and open a file without having to put an external data reference in the launcher file or authorize the launcher in the hosted file. This only passes an open command – no account name or password information to the file. Security is left to the hosted file and comparable to the open command from within FileMaker.

Set Up

  • Download the LaunchIt file from our downloads page.
  • Make a copy of the LaunchIt file.
  • Rename the copy to match the filename being launched.
  • Double click the renamed file to open.
  • Type the server address and filename in the setting screen, this screen displays the first time the file is opened.
    The server address can be the raw IP address or the domain name – don’t use http:// or https://.
  • Test the settings with the  “test connection” and “open file” buttons.
  • Close the settings window.

D’oh: If you set up file without making a copy you’ll need access to the admin screen. To edit the file, hold down the option key (shift in Windows) and double click on the file. “Admin” is the username with no password.

Use It

Attach the launcher file you created to an email and send to your client.

If a user has an unsuccessful launch, the file will test the internet connection by trying to connect to Then it will try to connect to the server’s test page at :16000/Test.html. If a developer has disabled the test html on their server, they will need to add some other test for server connection, or forgo that test altogether.

Depending on the results of these tests, it will tell the user:

  • You do not appear to be connected to the internet.
  • Connection to server [server name] failed.
  • Successfully connected to server, but file [solution name] does not appear to be open. Please confirm the filename is not misspelled, or that [solution name] has not been closed or moved.

The user can use the “Try Again” button, or click on the gear icon in the lower right to go to the settings page and modify the server address or filename.

Get the free download:  Download LaunchIt

If you would like to schedule a professional consultation for personalized integration, please contact Shawn at or (503) 616-9422.