fmQBO is Mob of Microservices

What the?  Yeah I know, weird huh?  But it is kind of true.  Okay so maybe not a “mob”. It’s more of a “collection”. Our FileMaker to QuickBook Connection tool, fmQBO is a collection of micro-services that work together to form a larger set of features. The only reason this matters is that it lets us innovate and iterate super fast. Watch the video to see what we mean.

Read more

FileMaker Accounting Integration Webinar

FileMaker is a great platform for building custom data driven applications. But should you use it to build your own custom Accounting solution? Probably not. In this FileMaker Accounting Integration webinar hosted by FileMaker Inc, we cover the benefits of building custom business applications with FileMaker and integrating them with Quickbooks Online.

Read more

FileMaker Script Call Chain Visualization – FMPerception

We are very excited to release the prettiest new feature to hit FMPerception, since it’s initial release. It’s called the Call Chain Diagram.  You can use the diagram to easily visualize all the scripts that call or are called by a given FileMaker Script in an interactive 2D chart.

Read more

JavaScript is Eating the FileMaker World Video

My presentation, “JavaScript is Eating the World” was released last week along with the rest of the Web Track presentations.

Read more

FileMaker Session Model Video

(Thanks to Naomi Fujimoto, you can read this post in Japanese)

Way back before FileMaker 7, Colleen Hammersly from Data Waves, and Wendy King came up with something called the “FileMaker Separation Model”. Part of that model involved only displaying data through relationships from a central file/table.  This pattern came to be called the “Session Model”, and this video is an explanation of its key concepts and its pros and cons.

Tight Control

Since everything is displayed through relationships there is no way for the user to see or edit records that aren’t explicitly made available by the developer.  Typically the developer closes and locks the status area, and puts everything under script control.  The user never sees find mode or list view.  Although you can assert tight control without it, the FileMaker Session Model is tightly controlled by default.

No Obvious Base Table

Every Layout in a FileMaker system needs a base Table Occurrence (TO).  If you are building a Layout to view “Contacts” you can build it right on a Contacts TO.  But what if you are building a “Home” screen or a “Dashboard”?  What TO do you base it on?  The FileMaker Session Model provides a special utility table called “Session,” for this purpose.  The Session TO  becomes the base for all the layouts you need that don’t have an obvious one. It turns out to be great for “Home” and “Dashboard” kinds of views, because often the data for these types of screens comes from many different tables.

Slide Panels and Other UI Goodies

Sometimes you want to switch from a Contact to an Invoice and use the cool slide panel for the effect.  If both Contact and Invoice can be displayed on the same layout, this is easy.  You just switch panels and select the record you want to display by creating or activating a relationship to it.

Why not use the FileMaker Session Model?

It’s not perfect. You don’t get List View, or Find Mode.  A more subtle impact is that your FileMaker Script Triggers have less focus.  They are fired based on the Session record and not the related record you might want them to be responding to.  I typically only build a part of my interfaces this way for these reasons.

Let’s Get Technical

The Session Record has one main job. It is to make sure that it can’t get locked by other users or browser tabs in the case of WebDirect.  It does this by having a unique record for each connection that is made to the Database. I say “connection” because if you just do it based on account name you’ll have problems with WebDirect, since every browser Tab is a new Database Connection.  So the same user can open up many separate connections to the database. And you don’t want them to share the same record or they can lock each other out. Here is what a FileMaker Session Model graph might look like. ( click on  the images to zoom )

FileMaker Session Model

FileMaker Session Model Relationship Graph. Note the use of relationships to display all records

It can also be used to select the records displayed through relationships, as we are doing here, by setting key fields in the table. But it doesn’t have to.  You can use it along with the SELECTOR model, if you want to be modular. And really! who doesn’t want to be more “mod”?  Here is what that looks like. ( click on  the images to zoom )

FileMaker Session Model

Session Model used with the Selector Model

In this case, the SELECTOR model handles selecting records for display and SESSION handles making sure that a record is available for each connection to the DB to prevent record locking.

I prefer this way of keeping things as modular as possible. It fits with the philosophy.

Example Files

Both the files I used in the video are available for download, here.

Thanks for watching. 🙂

FileMaker Selector Connector Video

Updated 11/24/2014 ( see below for whats changed )

Update 2/24/15 –  Jason Young wrote a great blog post about using Selector Connector with Seedcode Complete.

Wasn’t this called Universal Context?

This is a video of what was the Universal Context presentation I gave at Pause on Error last month.  The name however, had to go. It turns out that a “universal context” is only one of the features that kind of falls out of this graph architecture.  So we busted one model into two and came up with a “Selector Model” and a “Connector Model”.  I hope to put up something more definitive in the future, but I wanted to get this out quickly, because many nice people asked me to. 🙂 Read more

FileMaker Master Detail 2.0 Video

MasterDetail 2.0 has been released with a few new features.  MasterDetail 1.0 was a big hit when it was released over a year ago. In this version, we added support for up to 5 fields in the found set, virtual triggers, and automatic found set limiting.  This ModularFileMaker Module is now better than ever! Read more

Virtual FileMaker Script Triggers

Regular FileMaker Script Triggers

Regular FileMaker script triggers fire at times that the FileMaker engine defines.  You are probably familiar with these, but if you aren’t I would recommend reading up them, here and here.  In short, they are over two dozen predefined events that FileMaker allows you to attach a script to. A common example might be the OnLayoutEnter script trigger that fires when ever the user arrives at a layout.

This is all good stuff, but what if you want to add your own Script Triggers?  Maybe you want to define a Script trigger that fires when ever another script reaches a certain point?  Thats what Virtual FileMaker Script triggers are for. Read more

Syncing FileMaker Found Sets with GoZync 5

GoZync 5 was just released, YAY!. We made some changes to how filtering works to take advantage of some new features that came with FileMaker 13. In this video we cover how filtering works when you are syncing FileMaker with GoZync 5 Read more

Printing Barcodes

Printing Barcodes with FileMaker

I have had a couple of customers of our Barcode Creator product ask me about printing Barcodes.  I referred them to FileMaker’s help on creating label layouts. But there are a couple of oddities about the FileMaker 13 label wizard so I thought I would cover some them in a blog and video. Read more