The Philosophy of FileMaker - Part 2
4.6 (64 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
372 students enrolled
Wishlisted Wishlist

Please confirm that you want to add The Philosophy of FileMaker - Part 2 to your Wishlist.

Add to Wishlist

The Philosophy of FileMaker - Part 2

Intermediate FileMaker Pro 15 Scripting, Calculations, Relationships and Reporting
4.6 (64 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
372 students enrolled
Created by John Mark Osborne
Last updated 8/2016
Current price: $50 Original price: $200 Discount: 75% off
5 hours left at this price!
30-Day Money-Back Guarantee
  • 8.5 hours on-demand video
  • 8 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Design a multi-user solution
  • Identify and create one-to-many, many-to-one, one-to-one and many-to-many relationships
  • Create an Entity-Relationship diagram (ERD)
  • Design according to the principals of anchor-buoy relational design
  • Translate business systems from real-life to electronic using data modeling
  • Create portals, filtered portals and filtered relationships
  • Learn how to print properly in a multi-table environment
  • Work with columns, merge fields, labels and a variety of other print mediums
  • Create reports using sub summary parts and summary fields
  • Learn how to script complex automations with decision making intelligence
  • Create adaptive or dynamic scripts
  • Work with modular scripting
  • Capture errors and redirect programming with error analysis
  • Save and restore found sets for a better user experience
  • Compare and contrast different approaches to a problem in order to design better solutions
  • Validate and format a phone number for consistent data entry
  • Flag overdue or upcoming events
  • Understand record locking and script for multi-user solutions
  • Learn the differences and best uses for global fields, variables and parameters
View Curriculum
  • Students should have completed Part 1 of the Philosophy of FileMaker
  • Students should be familiar with the basics of browse, find, layout and preview mode which can be achieved by taking any of the beginner courses also available on Udemy
  • Students do not need to have experience with relational design, scripting and calculations but familiarity can help in faster learning
  • This is an intermediate course with some advanced information

Part 2 of this training series continues on with FileMaker Scripting, Calculations, Relationships and Reporting from the guy who actually wrote the book, Scriptology: FileMaker Pro Demystified. With over two decades of experience teaching FileMaker, John Mark Osborne will help you understand tough FileMaker concepts with ease. Intermediate and advanced FileMaker techniques will be taught throughout the three part tutorial series. In order to better understand every nut and bolt that goes into designing a solution, a single file will be created from scratch. The chosen solution is an invoicing solution for its familiarity to a wide audience and flexibility of applying techniques to other solutions. The completed FileMaker file at each stage is provided to assist with the learning process.

Who is the target audience?
  • Students will learn how to design a complete solution from the ground up including layout design, scripting, calculations, relational design and reporting
  • An invoicing solution will be used as the basis for the course but the concepts learned can be applied to any solution
  • This is an intermediate course with some advanced information
Compare to Other FileMaker Courses
Curriculum For This Course
79 Lectures
Part 2
1 Lecture 04:39

A quick recap of what we learned in Part 1 during the 8 previous hours of this tutorial series.

Preview 04:39
Ultimate Find
15 Lectures 01:32:38

Manual performing a find is pretty easy so why would you need to automate it?

Preview 03:58

Replicating a manual find is pretty easy to do but is the first step to creating a much larger script.

Preview 03:12

Since the status toolbar will eventually be hidden, the continue and cancel button will need to be recreated.

Preview 05:54

Certain buttons, fields and other objects don't belong in find mode so hide them when entering find criteria.

Preview 07:22

If a user cancels a scripts, the consequences could be devastating. One script step can prevent this issue.

Preview 05:11

Dialogs displayed by the FileMaker application make sense to the developer but not necessarily the user. This section will show how to suppress a FileMaker error message and display your own custom dialog.

No Records Found

When Set Error Capture is turned on, it is important to know every error that could occur. An unknown error could possibly cause havoc with your solution.

No Find Criteria

Adding a method for users to redefine errant find criteria is a convenient ease-of-use feature.

Modify Find

Dynamic or adaptive scripting is more difficult but saves time in the long run.

Dynamic Scripting

Here's our chance to improve on the manual find process and show a list or form view layout depending on the number of records found.

List versus Form

Layouts from the same table occurrence will store the same found set while a layout from the same source table but a different table occurrence will keep a different found set.

Table Occurrence Found Sets

Let's combine the information we learned about table occurrences from the previous video with the Go to Related Record script step.

GTRR with Table Occurrences

The final step for saving and restoring the found set is to make it work on all layouts regardless of table.

Adaptive Saving and Restoring

Let's add the Allow User Abort and Set Error Capture sub-scripts to the scripts we programmed previously so as to bring them up-to-date.

Fixing the Other Scripts

There's a small issue with the invoice duplication script written in Part 1 of this video tutorial that can be solved with Set Error Capture and some new code.

Perfecting Invoice Duplication
20 Lectures 02:12:16

A discussion of the calculation dialog features and the general design of a calculation function.

Anatomy of a Calculation

The pervasive calculation dialog enhances so many features but each iteration has subtle but important differences.

The Many Faces of the Calculation Dialog

This seemingly simple formula is faced with many decisions about how tax is calculated.

Sales Tax

The first grand total on the data entry layout will use a calculation field to total fields from or related to the current record.

Grand Total - Part 1

The second grand total will use summary fields to total the found set of records on the print layout.

Grand Total - Part 2

Filtering a phone number to a consistent formatting helps users recognize numbers more easily.

Phone Formatting

Validating a phone number for the correct number of digits allows the auto-enter formatting to work properly.

Phone Validation

Browse mode text formatting overrides layout formatting across all layouts and can be prevented with several methods.

Remove Text Formatting

Three methods for calculating when an invoice is overdue.

Overdue Invoice Display

Making a found set of all overdue invoices makes it easy to send out reminders.

Locating Overdue Invoices

Parsing text is very handy when importing data from another application since it's not always stored in a FileMaker friendly format.

Parsing Text

Replace Field Contents is often a better choice than Set Field when working with multiple records.

Replacing Data

Some parsing jobs are more complicated than the word functions can handle so nested formulas are necessary.

Parsing Text Advanced

Presented are two ways to copy data from the billing to the shipping fields.

Scripts versus Calculations

A simple method for tracking modification information for a single field rather than the entire record.

Field Level Tracking

This technique allows modification tracking of any number of fields and results in a list of changes in chronological order.

Advanced Field Level Tracking

Users are often confused when modification tracking fields don't update when a portal is modified. You can explain how the information is another table all you want but it's probably easier just to program it to work the way they want.

True Modification Tracking

Tooltips provide assistance to users without taking up valuable screen real estate with help text.


We've used the Hide Objects feature extensively up to this point but it may not be clear the best way to hide an object on a blank portal row.

Hiding Objects in Portals

Determine the number of work days so you can tell a customer when a shipment will arrive.

Delivery Work Day
FileMaker Advanced
13 Lectures 01:29:06

A brief overview of all the features in FileMaker Pro Advanced.

What does it do?

Recover isn't a FileMaker Advanced feature but it should be since it is so often misused.


Plug-ins extend the ability of FileMaker and are available from a variety of third party manufacturers.


The DDR documents your FileMaker solution so you can analyze it.

Database Design Report

Contains a variety of features including runtime, kiosk and encryption.

Developer Utilities

The Script Debugger allows you to slow down your script so you can pinpoint bugs more efficiently.

Script Debugger 101

To help you with the debugging process, a couple of bugs were introduced to a script so you can see the debugger in action.

Debugging Script Example

Custom function allows calculation code to be centralized, making it easier to update the formula if it is called in multiple locations.

Custom Phone Function

Think of recursion as a loop in a calculation where your code can be repeated over and over with slight variations.

Recursion Primer

Let's apply recursion to phone formatting, allowing users to determine the formatting type and number of digits in a phone number.

Recursive Phone Function

While we are making the phone formatting formula adaptive to any number of digits using recursion, let's do the same for validation.

Validation Recursion

Custom Menus allow you to add, delete or change FileMaker Pro menus and menu items to suit the needs of your users.

Custom Menus

Dynamic or adaptive menus adjust to the current layout.

Dynamic Custom Menus
Multi-User Solutions
16 Lectures 01:39:29

Demonstrates how to share a file from a single machine in order to test multi-user programming scenarios.

Sharing a File

Record locking prevents two people from editing the same record at the same time in a multi-user solution.

Record Locking Defined

Trying to delete a record that is locked is met with the same record locking message as trying to edit a locked record.

Deleting a Record

Let's make the message for the delete record script adaptive to the context of the layout.

Adaptive Deletion

With a few changes, we can adapt the delete record script to delete a portal row.

Deleting a Portal Row

Deleting a line item from an invoice is a little trickier than the standard portal row delete script.

Deleting a Line Item

Global fields and script variables act differently in a multi-user scenario.

Global Fields & Script Variables

Let's review the scripts previously written to see if any could cause record locking.

Identifying Scripts with Record Locking

Sometimes the best way to get around record locking is to think creatively.

Scripting for Multiple Locked Records

Think of this as a bookmark feature, allowing you to retrieve a found set that was saved previously.

Marking Records

Marking records takes a turn when you consider multiple users.

Multiple User Marking

A multi-key is a return separated list of values used in a relationship to create an OR relationship.

Creating a Multi-Key

Let's automate the creation of a multi-key with a script and then store it in a global field so the user can just click a button.

Saving a Found Set

Restoring a found set can be done with the Go to Related Record step.

Restoring a Found Set

Transactional processing bundles multiple actions into a single transaction.

Transactional Processing

With transactional processing, record locking issues can be resolved.

Leveling Inventory Revisited
Custom Form Letters
13 Lectures 01:20:58

Empower users with globals, calculations and scripts to create their own merge or form letters in browse mode.

Merge Fields in Browse

Using the Substitution function, the merge letter will be transformed into a real letter.


A layout for printing will be to be required for proper output.

Print Layout

The Replace Field Contents script step will be employed to provide a calculation result to the Letter field.

Print Script

Let's resolve the record locking issues in a creative way using a calculation field.

Resolving Record Locking

The Form Letter feature won't be complete without the ability to save letters for future use.

Save Letter

Multiple methods for inserting a saved letter into the global field interface. 

Insert Letter

A warning should be issued to users to make sure they want to update a letter.

Overwrite Letter

Here's some neat tricks to allow text formatting via global fields, scripts and calculations.

Automating Text Formatting

A series of script steps and calculations format the text according to the choices in the global fields.

Formatting Magic

With a couple script steps, the custom form letter solution can send form emails.


Record the history of each time you send out a form letter or an email.


Believe it or not, I make tons of mistakes from which I will create a learning experience.

Working with John Mark Osborne
1 Lecture 05:18

Find out about training courses, consulting and solutions from Database Pros.

Preview 05:18
About the Instructor
John Mark Osborne
4.7 Average rating
585 Reviews
4,517 Students
9 Courses
FileMaker Pro Expert

John Mark Osborne has been working with FileMaker Pro for over 20 years. He earned his FileMaker Pro degree working on the frontlines of Claris technical support. John was the Technical Lead for FileMaker, serving as an escalation path for other technical support representatives and writing a large portion of TechInfo (now called Knowledgebase), their technical information reference. John also acted as a liaison between the technical support department and the FileMaker development team, reporting bugs, attending product meetings and acting as resource for the development team.

John Mark is best known as the author of the popular FileMaker Pro web site Database Pros. The Database Pros web site has been on the internet for 20 years and gets over 35,000 hits a day by offering free FileMaker Pro tips, tricks and techniques.

John Mark is also well known as the co-author of the wildly popular Scriptology book and CD ROM. John Mark launched a hands-on training class based on his Scriptology book and it has become so popular that it is now taught at MacWorld Exposition in San Francisco and New York. Most recently, John Mark was one of twelve trainers in the United States authorized to teach their new FileMaker Training Series of classes.

John Mark has been a featured speaker at the FileMaker Developer Conference for 15 years. At the 1999 Developer Conference, he was awarded the FileMaker Pro Excellence award for "creation of outstanding technical resources".

John Mark is a former technical editors for Advisor magazine working on the tips and tricks section which is the most popular column in the magazine.

John Mark has recorded beginner, intermediate and advanced tutorial videos for FileMaker 8, 9, 10, 11, 12, 13, 14 and 15 totaling thousands of hours.

John Mark Osborne is an FBA member (FileMaker Business Alliance) working closely with FileMaker, Inc. and their most important customers. John Mark Osborne has also passed the rigorous FileMaker 7, 8, 9, 10, 11, 12, 13, 14 and 15 certification tests and is proud to display the FileMaker 7, 8, 9, 10, 11, 12, 13, 14 and 15 certification logos.