Search Project Mgmt
Search FileMaker Blogs

Thank you for visiting the FileMaker Thoughts blog. I recently moved this content over from my blogger account. Hope you like it! When you get a chance, check out the centralized search feature for all the FileMaker blogs found along the right side panel. It is quite handy!


Friday
Dec122014

FileMaker Database Design & Information Integrity

From Dwayne Wright PMP, PMI-ACP, CSM
Certified FileMaker Developer

WEB: www.dwaynewright.com
EMAIL: info@dwaynewright.com
TWITTER: dwaynewright
YOUTUBE: FileMakerThoughts

For most FileMaker solutions, the primary security concern is ...

- keeping the database solution running smoothly
- make sure the data is entered correctly
- make sure it empowers its users to be more productive.

It is quite possible that a security hole can damage the work flow of a database, damage the accuracy of searches & reports and sometimes cause a database to blow up and crash! For example, say that a new user doesn’t really know how to enter information in correctly. So they go to the wrong layout, enter the wrong information in the wrong fields and then the database crashes or the reports are inaccurate.

SECURITY RETURN ON INVESTMENT
Let’s face it, increasing security in a FileMaker solution can become time intensive and sometimes expensive. There is the time it takes to plan, design, implement, document and upkeep a security system. If you skip any of these, your security might be as bad as not having any security at all. There is also the possibility you may need to invest in third party products ( such as plug-ins ) to get the type of security you want.

As we have said before, many FileMaker developers think of security as an after thought, a necessary evil or a type of insurance policy. So it may be helpful to think of what your return is on your investment of securing your FileMaker solution at a particular level. To do this, you may need to identify what business threats are present if your FileMaker solutions security was compromised. This is typically called quantifying risk.

SECURITY POLICIES AND DOCUMENTATION

To most FileMaker developers, there is at least one thing more dreadful than applying security to a FileMaker solution. That would be providing any extensive written documentation about a solution. How important is the documenting the security of a FileMaker solution? A clear policy on what each user can or cannot do with a database solution can be a great aid to a FileMaker developer. Not only in designing or testing the security system of the solution but other productivity related areas as well.

The security policy does not have to be long winded. A security policy does no good if no one reads it because it is too intimidating. Short, sweet and to the point is generally the best method here.

It may help to think of your FileMaker users grouped into individual business units such as sales, marketing, shipping, etc... , which each having a policy of what they can and cannot do within the FileMaker solution. You can also add sub groups to these business units to define security levels by manager, supervisor or data entry person.

A policy also has the benefit of telling your database users what is expected of them.
This can be as helpful as anything a developer can do. If the database or the developer tells a user they should not be somewhere may not carry as much weight as it does in written form coming from their direct supervisor.

While you are at it, you might want to write a policy for the administrators that are in charge of supporting a FileMaker solution. This can be a policy about how the solution can be supported against possible security threats in the future. This can include checking audit logs, sign in logs, user history and other possible security implementations.

We realize this may not be enough information about security policies but do not let that upset you. There are a number of books about the subject which you can find in your local Borders, Barnes & Nobel or at Amazon.com.

=
More info about the author and FileMaker in general, contact me at info@dwaynewright.com.

© 2008 - Dwayne Wright - dwaynewright.com

The material on this document is offered AS IS. There is NO REPRESENTATION OR WARRANTY, expressed or implied, nor does any other contributor to this document. WARRANTIES OF MERCHANT ABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY DISCLAIMED. Consequential and incidental damages are expressly excluded. FileMaker Pro is the registered trademark of FileMaker Inc.

Thursday
Dec112014

The FileMaker Many To Many Relationship

From Dwayne Wright PMP, PMI-ACP, CSM
Certified FileMaker Developer

WEB: www.dwaynewright.com
EMAIL: info@dwaynewright.com
TWITTER: dwaynewright
YOUTUBE: FileMakerThoughts

In a many to many relationship a collection of records in one table occurrence can share a relationship to many records in another table occurrence. Here I have a couple illustrations that might help.

EXAMPLE - A car mechanic may have worked on many cars and a car may have been worked on by many mechanics. So if you wanted all the cars a mechanic has worked on and all the mechanics that have worked on all those cars, you might have an impressive list.

EXAMPLE - A movie may have many actors and each actor may have been in many movies. So if you wanted a list of all the actors in a movie and then a list of all the movies those actors had been in, you would probably have a large list.

EXAMPLE - A high school teacher may have many students and each student may have many teachers. So if said you wanted to find all the students for a particular teacher and all of their associated teachers ... you would get a very big list.

As you may have guessed, this many to many relationships can get complicated. So documentation of the database structure is a very good idea here. If done properly, data is linked from one file to the next. If done improperly, then you may have records that are islands to themselves.

In the past, many to many relationships were done via a multiple line key field on both sides of the relationship. FileMaker has opened the door for many other variations of many to many relationships. We have separate discussions that go into depth about this but I want to at least introduce some of those now. In FileMaker, you can have relationships with a collection of new comparison operators besides equal to ( = ). So, for example, two entities can relate to each other on a greater than or less than setting. FileMaker also supports indirect or flow through relationships, so two entities can see each other through other relationship settings to other entities.

Here you can see how many records can related to many records.
=
More info about the author and FileMaker in general, contact me at info@dwaynewright.com.

© 2007 - Dwayne Wright - dwaynewright.com

The material on this document is offered AS IS. There is NO REPRESENTATION OR WARRANTY, expressed or implied, nor does any other contributor to this document. WARRANTIES OF MERCHANT ABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY DISCLAIMED. Consequential and incidental damages are expressly excluded. FileMaker Pro is the registered trademark of FileMaker Inc.

Saturday
Dec062014

The FileMaker Get(PrivilegeSetName) Function

From Dwayne Wright PMP, PMI-ACP, CSM
Certified FileMaker Developer

WEB: www.dwaynewright.com
EMAIL: info@dwaynewright.com
TWITTER: dwaynewright
YOUTUBE: FileMakerThoughts

Get(PrivilegeSetName)
FMP Version: FileMaker 7
Returns A Text Result

The privilege set is used in concert with account settings to set access levels to a FileMaker database. You have to understand privilege sets to work with FileMakers security environment. Each account has only privilege set. A privilege set can be assigned to multiple accounts. Privilege Sets consist of a large number of security settings ( much like a large lunch buffet ) and the combination of selected options define what a user can do. Privilege Sets can be used to control access to data structure elements ( like layouts or ScriptMaker access ) and/or control access to data within the database file ( a particular field or a particular record ).

The Get(PrivilegeSetName) function will return the name of the privilege set in use by the current database user.

If you run a script with the "full access" check box selected, it will always return the full access privilege set (and it's associated extended privs) during the scripts execution. Any script with the Get(PrivilegeSetName) within it and is running under full access checkbox is useless.

© 2010 - Dwayne Wright - dwaynewright.com
The material on this document is offered AS IS. FileMaker Pro is the registered trademark of FileMaker Inc.

Thursday
Dec042014

The FileMaker Join Relationship

From Dwayne Wright PMP, PMI-ACP, CSM
Certified FileMaker Developer

WEB: www.dwaynewright.com
EMAIL: info@dwaynewright.com
TWITTER: dwaynewright
YOUTUBE: FileMakerThoughts

This relationship involves at least three entities ( table occurrences ) all lined up in a row. It starts off when one record in an entity ( table occurrence ) is related to many records in another entity ( table occurrence ). Each record in that entity ( table occurrence ) is in turn related to one record in another entity ( table occurrence ). Here is a classic example of how this works in FileMaker.

We have one invoice record that has many sold products on it. Each sold product is a record in the middle database entity ( table occurrence ). Each one of those sold items is related to on product in an inventory entity ( table occurrence ).

So the middle or join table occurrence will have a number of records with an invoice id and a product id. The one invoice can total a number of sold products and product can be sold many times.

Here you can see how one record relates to many records that in turn relates to a single record.

There are a lot of variations of the middle /join entity ( table occurrence ) and you can have multiple middle entities ( table occurrences ). That is to say one relationship can depend on another ... that depends on another relationship. The relationship can even tunnel through the join entity ( table occurrence ).

For example, a table occurrence called products might be able to see a minimum or maximum value through the join file to the invoice file.

=
More info about the author and FileMaker in general, contact me at info@dwaynewright.com.

© 2007 - Dwayne Wright - dwaynewright.com

The material on this document is offered AS IS. There is NO REPRESENTATION OR WARRANTY, expressed or implied, nor does any other contributor to this document. WARRANTIES OF MERCHANT ABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY DISCLAIMED. Consequential and incidental damages are expressly excluded. FileMaker Pro is the registered trademark of FileMaker Inc.

Wednesday
Dec032014

The FileMaker Allow User Abort Script Step

From Dwayne Wright PMP, PMI-ACP, CSM
Certified FileMaker Developer

WEB: www.dwaynewright.com
EMAIL: info@dwaynewright.com
TWITTER: dwaynewright
YOUTUBE: FileMakerThoughts

There are times that the integrity of a FileMaker database can be damaged if a script is not allowed to run it's complete course. For example, a script may import a set of records, the process them, perhaps delete a few of the records and export them to some other area. If you aborted the script in the middle, you may have some unprocessed records, some records you don’t really want and your operations dependent upon the export are crippled for that day.

Although there is no menu item to abort a currently running script, FileMaker has a keyboard shortcut for both Macintosh and Windows machines to get you out of a running script.

FYI... The keyboard shortcuts for aborting a currently running script are the esc (escape) key for Windows users and command-period key combination for Macintosh users.

The Allow User Abort via its on or off setting, either allows or does not allow the end user to cancel out of a currently running script. The On position will allow that user to abort the script while it is running and the OFF position will not allow that user to abort.

COOL IMPLEMENTATIONS OF IT
Using get functions, you can see what privilege set level was used to open the database. Then, if they are designer, allow them to abort. If they are a standard user, do not allow them to exit a script unless it is complete.

FYI...
If you have a long script that you will not allow the user to exit from, warn them first. The best way to do this is using another FileMaker script step called Show Message. You can warn the user that the script may take a long time to run and allow them to abort it's execution BEFORE it gets started.
Normally, you will want to have this script step as close to the top of the script as possible. Otherwise the user could abort the script before the script comes to the Allow User Abort step is reached in the script.

ALLOW USER ABORT AND IWP
FileMaker Instant Web Publishing supports more than 70 script steps! When the Indicate Web Compatibility checkbox is checked, all incompatible script steps are dimmed! If a script contains IWP unsupported scripts steps and it is executed under IWP, you can use the Allow User Abort script step to manage the effects. If the Allow User Abort step is in the ON position, the script will stop when it encounters the unsupported step. In the other position, which is the OFF position and the default for FileMaker, then IWP will pass-over the unsupported script steps and execute the rest of the script. If there is no Allow User Abort script step in the script, IWP will halt the script at the first instance of an unsupported script step.

Got To Know Factor - 8

=
More info about the author and FileMaker in general, contact me at info@dwaynewright.com.

© 2007 - Dwayne Wright - dwaynewright.com

The material on this document is offered AS IS. There is NO REPRESENTATION OR WARRANTY, expressed or implied, nor does any other contributor to this document. WARRANTIES OF MERCHANT ABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY DISCLAIMED. Consequential and incidental damages are expressly excluded. FileMaker Pro is the registered trademark of FileMaker Inc.