The Separation Model – Part 21 – A Notification System

Rather than creating one or two scripts to solve one specific problem, it's typically better to solve the whole problem by creating a system which can be leveraged in more than one place and by more than one database system.

Such is the case with the Notifications system, which is now integrated into the KarateApp sample database.

The Notifications system is one in which a general approach is taken to sending out notifications to any target device via a particular method. What this means is that a SmartPhone would be a target device and SMS would be the method of notification.

Of course, the most common method of sending a notification might be email with the target being an email client. Ultimately, what we're talking about is getting the right information to the right people and doing it within a system which accommodates all the various possible methods.

Wish your FileMaker database could notify someone via email, sms, twitter, facebook post or some other method? Well, give this video a watch and you'll see that making this type of system is certainly possible.

AttachmentSize
KarateAppPart21.zip655.25 KB

The Separation Model – Part 20 – Using Mirror Tables

The separation model requires creative thinking when it comes to keeping the data file clean of any extraneous fields. Fortunately, one of the best aspects of the Relationship Graph is that it doesn't care where the file resides or where the data comes from as long as it can access the fields for relationships.

Given the previous statement, we can certainly create extra UI tables in order to facilitate our fondest data dreams and wishes. Adding new tables to the UI file is par for the course when you consider the number of existing utility tables already being used by the KarateApp solution.

In this video, I talk about my use of a Mirror table for the People table and how it's going to play a role in an upcoming video about automated notifications. Mirror tables are very useful in a variety of situations. Knowing how to use one is certainly a beneficial FileMaker skill.

AttachmentSize
KarateAppPart20.zip492.45 KB

Time Saving Developer Tools

How could anyone ever expect to build a house without a hammer? How about throwing an air compressor and nail gun into the mix? Yeah, that's right, you can get a lot more done in a shorter amount of time when you have more powerful tools.

Every occupation has their tools. Typically, created by people within that profession who needed a faster, better way of doing things. A FileMaker database can quickly become a management nightmare. Adding new fields and relationships for new features is a super common task.

The problem is, how do you know you're not already duplicating effort that may already be present? In this video, I walk through some tools I use and others I've tried. While I may not use them all in daily development work, all of them become super helpful when you need what they provide!

AttachmentSize
DeveloperWebview.zip13.05 KB

The Separation Model – Part 19 – Google Calendar Integration - Details

Like many things in life, you can certainly know "what" something does and "how" to use it - but, you may not know "how it does what it does" and often more importantly, "why it works that way". As an example, if you knew everything about everything, then you'd likely know how to fix your car or a broken toilet.

So, why do you need a mechanic or a plumber? Because they do know "why it works that way". They know what's going on behind the scenes, not just how to take a seat and make something work (yeah, ok a bit of gross humor - but you get my point).

What I'm talking about here are little details in the way that something works. Those which help you understand FileMaker to the level where you can use that knowledge in other areas of the application. Such is the case with this integration of a Google Calendar via the FMgCal plugin.

This video has some great insights into the "how" and "why" you can use things like checksums, watching for modifications and duplicates. These little pieces of knowledge allow you to create more efficient systems and build better databases.

AttachmentSize
KarateAppPart19.zip502.85 KB

The Separation Model – Part 18 – Google Calendar Integration - Overview

Creating a robust scheduling calendar within FileMaker can either be a big pain or an experience of joy. If you're into "the process" of figuring things out, such as "the how" then by all means, have at it.

However, if you're simply needing the functionality, and know you've got bigger, better problems to solve, then why not take full advantage of solutions which already exist.

If you really need all your data within FileMaker, then solutions such as SeedCode's Pro Calendar will get you started faster than you can add 42 repetitions - actually not that fast, but pretty darn fast.

If you tend to enjoy the free things in life, then using Google calendar is a GREAT solution. The problem is, however, that a Google calendar knows nothing about your data and will only manage the event itself - not who's attending (at least from your database) the event or which equipment needs to be at the event or any other related bit of information in your database.

At least it doesn't know until you start using a plugin such as FMgCal. This is the route I took when integrating a calendar into the KarateApp solution. True, I was going to make this solution 100% FileMaker, but seriously the amount of work a good calendar requires is MASSIVE!

I was so gratefully happy and ready to start using this plugin, that I just had to share how I've integrated it into this solution.

If getting a calendar into your FileMaker solution, with all the bells and whistles of a Google calendar, is a feature you've always desired, then the short investment of time to watch this video will solve that pain in quick fashion.

AttachmentSize
KarateAppPart18.zip502.85 KB

The Separation Model – Part 17 – Accounts, Passwords & Security

Security is one of those funny words. One dictionary definition is "the state of feeling safe, stable, and free from fear or anxiety".

While it may be hard to be completely "free from fear or anxiety" (when it comes to your data), you can certainly lock things down so it's SUPER hard for any "bad guy" to get anything of value.

Questions like "Is FileMaker secure" are pretty general, and given that FileMaker is just a tool, you're the responsible party for making sure things keep you free from that "fear or anxiety".

Since your FileMaker solution will inevitably need to reach out beyond itself, using external services, there are many situations where you need to secure things as much as possible.

In this video, I walk through accounts, passwords and security. Not FileMaker's accounts and passwords mind you - the accounts and passwords of your users and external services. I cover topics related to storing passwords within the database itself and how to go about securing access to external services used by your solution.

If you've not taken the time to learn the difference between a digest hash and encrypted data, and how you might use one versus the other, then watching this video will certainly help you out!

The Separation Model – Part 16 – Merge Fields

The last time I released a video specifically about merge fields was in 2007.

Wow! That's a long time and it's such a powerful and frequently used feature. What would a database solution be without the ability to send email?

So, here we are with this Karate App solution and we're using the separation model to design and deploy. The next addition to the database is the ability to send email - so, we need merge fields.

Using a few custom functions, an admin layout, the user interface and some merging creativity, we can easily add new fields which can easily be merged into any content. By explaining how this process might work in your own database, you will quickly realize the benefits of integrating this type of system into your own solution!

AttachmentSize
KarateAppPart15.zip518.12 KB

The Separation Model – Part 15 – Maintain Layout State

Nobody likes a rug being yanked out from underneath them - to reference the popular phrase. The same thing applies to your interface and solution. When a user moves from one layout to another, they're typically not expecting to come back to something different than when they left.

The biggest issues with FileMaker retaining layout state are tabs and portals. In the past, I've covered how you can move from one record to another and maintain the selected portal row.

In this video, I present a simple technique for using the ever popular "back button" feature found in pretty much every web browser. The video shows how to not only include this feature, but also how you can return tabs to their previously selected state - and with very simple scripts.

If you've rarely found great uses for FileMaker's script triggers, then this video will provide you with some great information about using them.

For any of the functions referenced, you can find them here.
https://github.com/filemakerstandards/fmpstandards/tree/master/Functions

The Separation Model – Part 14 – Data Classification

How is it you know a student from a vendor and a vendor from a teacher? Well, it's all context right? You visit the school to see the teacher and you visit the industrial complex to see the vendor.

As the saying goes, "If life was only that simple." Of course you can find a student at a school OR an industrial complex - the former is every day life and the later is a field trip - Yeah!

Since we can't count on context, we must use something else to identify what's what and who's who. Let's call that thing Data Classification.

Classifying things falls under that wonderful term named taxonomy. It's where you stuff anything you have with the terms which most clearly identifies it

All jokes aside, this isn't a concept which comes easily to the disorganized database developer. There are many ways to classify your data and knowing which one to use, and when, can be the confusing part. Staunch friends of E.F. Codd will tell you to use as many tables as possible and the finish-it-quick demands of an off schedule project will scream "just add another field".

Without having bias towards either of the extremes, I hope this video will provide a good deal of insight into how to approach your own Data Classification needs.

AttachmentSize
KarateAppPart14.zip520.18 KB

The Separation Model – Part 13 – Data Storage vs. Data Display

It's SO, and I mean SOOOOOO, easy to cheat on the Data Separation model. You just add a little calculated field here and another over there - it's no big deal right? Actually, (my personal opinion) it's not that big of a deal. I mean "Really" you do have access to the UI file AND the Data file - "You're the developer!".

However, the situation may come up where these "extra" fields just clutter up things when some DBA wants to access the data via ODBC. So why not just keep it clean. The trick with this little problem is, what you show in the UI - for the user - is not what you're going to store in the database. This will happen quite a bit, and requires a different way of thinking than "I'll just add another calculated field."

The answer to this little problem is UI Utility tables. Sometimes, it's as simple as a tiny little table storing the names of days. Other times, it may be a complete mirror table which contains automatically populated data just for the purpose of showing calculated values.

To what extent you carry out the Data Separation model, is entirely dependent upon your willingness to keep things separate. It's my job to show you how you can do this - and that's exactly what this video is all about. The separation of Data Storage versus Data Display.

AttachmentSize
KarateAppPart13.zip293.28 KB

Pages