Author Archives: Thomas Meglasson

  • 0

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?


  • 0

LaunchIt

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 Google.com. 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 shawn@app.works or (503) 616-9422.


  • 0

Button Bar Techniques! Part 3: Dynamic Text Resizing in FileMaker

Tags : 

By Thomas H. Meglasson III

Have you ever been limited by screen real estate in a solution?  Have you ever had a field that you thought would only ever have a few words in it but user’s decided to write an essay in?

Sometimes the data in a certain field can vary greatly.  It is a waste of layout space to size the field to show the largest possible amount of data, but also not optimal for users not to be able to see all of their data because a field isn’t big enough.  This is especially true with number fields, where FileMaker chose to display an incredibly helpful ‘?’ if the number is to long for the text field object.   

Read More


  • 0

FileMaker Training – Beginners to Intermediate

Date:
Monday, August 8, 2016 – 8:00am to Tuesday, August 9, 2016 – 5:00pm
Event Location:
App.works Conference Room
Description:
FileMaker Pro 15 Training
Taught by: Matt Navarre
Hosted by: App.works

App.works’ next intermediate FileMaker Pro 15 Training is here!

What: This beginner to intermediate, two-day intensive training course will be taught by Matt Navarre, founder of App.works. Using FileMaker Pro 15 Advanced, Matt will delve deep into all that FileMaker 15 has to offer the developer that wants to hone his/her skills and for the layperson who is looking to stretch his/her knowledge.

Two days of lecture will conclude with an hour or two at the end of class for hands-on assistance with a project you are currently working on, or a project you’d like to get started on.

Materials to be covered in class include:

Focused training on FileMaker Training Series 15 for Intermediate developers
Overview of Best Practices
Introduce what FileMaker can do for you and your business
Highlight what is new and improved in FM 15
An opportunity to pick Matt Navarre’s brain
What to bring to class:

Your own laptop – with FileMaker 15 Advanced installed
Your own project to work at the end of class (if you have one)
Any questions or specific problems you’d like to solve in FileMaker
Your sense of humor


  • 0

From Database Developer to Web Developer Thanks to WebDirect

Tags : 

By Thomas Meglasson III

I don’t know PHP, and my HTML and CSS skills are rudimentary at best. Nevertheless, I recently became a web developer!

Fortunately, with FileMaker’s WebDirect, I don’t need those skills to make a beautiful website. I build it all right in FileMaker, using skills I already have, and then publish straight to the web with a FileMaker Server.

I was recently tasked with creating a conference registration system for a large association’s annual convention. They expect around 900 to 1,000 registrants this year. The system had capture the demographic data of the registrants, look up their membership data if needed, let them choose their attendance options and pay for both the conference and a membership renewal.

Read More