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!


Monday
May112015

The FileMaker Separation Model And Run Script With Full Access

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

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

In a separation module situation, the user interface layouts reside in one file, the actual data resides in another file and external data sources allow the two files to work in unison (with some exceptions). One exception is the ability to run a script with the full access setting due to its dependent nature on where the script resides.

To recap, the "Run script with full access privileges" checkbox on a script is dependent upon actions within the file it resides. Executing a script to delete records within the interface file with "Run script with full access privileges" activated will not override the lack of deletion privileges within the data file for that user.

OPTION ONE
Run the delete script within the data file and have its "Run script with full access privileges" checkbox selected. The script in the interface file calls upon the data file script and then returns. Depending on the number of records affected (shown within the interface file), the user might see what is going on. Somewhat akin to when Toto pulls back the curtain on the Wizard Of Oz.

OPTION TWO
Add the ability for the user to delete records in the data file but add conditions that can only occur within a scripted process. This is done by linking the ability to delete to a TRUE calculated result. (add link where I discuss this). The most elegant way to do this is to link the calculation to a global value set by the script, either a global field that can be seen in the data file or setting a global variable within the data file.

REMEMBER: Global variables ... like the "Run script with full access privileges" setting ... are file dependent.

OPTION THREE
There are a collection of options here that can get pretty messy. One is to temporarily re-login the user with a delete privilege in the data file for the duration of the script. Another option is to NOT delete the script but flag them for deletion. Later on, a user with delete privileges or a batch script (run by FileMaker Server or a robot) actually deletes the record.

ALL METHODS BREAK THE SEPARATION MODEL MYTH
Adding in of the listed options (and likely those that I didn't list) will break the myth that separation model implementations are seamless upgrades. That whatever the coding update to a solution, all you need to do is pop in a new interface file and you are good to go.

In some cases, the developer can go onsite (even virtually) and add the needed schema changes to the LIVE data file. This can be done outside of traditional business hours, after a proper backup has been done. The "bag of hurt" method can be adding the schema choices to an empty data file and the reimporting all the data records again. Both methods have some level of upgrade risk involved and those risks should be measured properly before executing.
=
More info about the author and FileMaker in general, contact me at info@dwaynewright.com.

© 2009 - 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.

Monday
May112015

Exploded FileMaker Match Fields

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

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

Please Note: If you are viewing this page in a news feeder, the images may get munged up a bit or other formatting of the posting may fail. For the best experience, please visit the journal directly by clicking (here).

An exploded match field is a type of multiple line match field in which the child match field used in the relationship is actually a calculated value of each character of the real child value you want to use. Let me take a shot at it from another direction. For example, say the word FileMaker in the child table is used in a separate calculation field and be broken down into something that looks like this ...

F
Fi
Fil
File
FileM
FileMa
FileMak
FileMake
FileMaker

So the real field we are using in the relationship is a divided version of the real matching information we want to use. This means the child match field is a multiple line match field. The idea is that you can begin typing in part of the information in the parent match field (say Fil) and still have a valid relation link to a whole word (such as FileMaker, File or Filler).

A multiple line or compound key field is an odd little thing in FileMaker but can be very useful in the design of many to many relationships. If a value that is separated by a carriage return in one key field matches a value in the other key field, the relationship is valid and referred to as a multiple line field. That is to say if the Parent key field contains

Red
Yellow

it will have a valid relationship to the Child Key field containing the value of Yellow or Red.

© 2012 Dwayne Wright - dwaynewright.com

Monday
May112015

Benefits Of Using Anchor / Buoy In FileMaker Relationship Design

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

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

Here is a quick list of some of the benefit for Anchor/Buoy

HELPS DEFINE PROPER DATA MODELING
The aspect that no two base table touch directly can be helpful in understanding how each entity in your business model actually works. When you add a new buoy to an anchor, you are basically agreeing to the fact these two business elements communicate via this method.

LAYOUT CONTEXT IS FILTERED
This was the feature that got me drinking the Anchor/Buoy koolaid. In many places, you only see table occurrences that really do link (from a business perspective) to a default base table.

MAKES GREAT USE OF MULTIPLE PREDICATE RELATIONSHIPS
This is because the multiple predicate relationship can easily be identified in other areas and you don’t pick a multiple predicate relationship to use by mistake. This does require that you use the recommended naming convention.

NAMING CONVENTION ALSO INDICATES RELATIONSHIPS OTHER THAN EQUAL TO
Yeah, what I said above. One of the biggest hurdles in advanced FileMaker design is picking the correct table occurrence (and its associated relationship) to use at a given time.

=
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.

Monday
May112015

FileMaker Global Field Storage Options

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

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

The global field option is used to contain a single literal value for all records in a FileMaker table. Any field that has data stored globally has one value and it can be viewed no matter where you are within a FileMaker table.

Data in global fields can be passed from one table to another ... and not have a relationship. I have seen a least one occasion where global field data WOULD NOT pass between tables unless there was a valid relationship. The only time that I have seen it fail is when the user is working with FileMaker via a web browser using a method called Instant Web Publishing. So if you are thinking about web enabling your database, that is one thing to keep in the back of your mind.

Fields with the global option can be edited directly on a layout or via a script. Global fields work about the same as normal entry fields in that you can click inside them, cut, paste and add new data.

In FileMaker, global fields a field storage option. If I mention a global field, I mean a regular field with a global storage setting.

Fields can be accessed by opening the Define Database dialog box (from under the File menu) and then clicking the Fields tab. Click the field you want to make a global and click the options button. The third tab should say storage. Click it and you can see where the check box is for making the field a global storage field. All types of fields can be setup to be a global except for summary fields ( which usually returns a static value, just like a globally stored value does ). Some examples of data that could be in a global field

Field Name: Local Tax Rate
Data: 8.25%

Field Name: Company Logo (picture)
Data: The graphic of your company logo for letterheads and such

Usually a field with global storage is set at a particular value for use in a calculation or for use in a script. The setting of a global value can be done via end user data entry but in most cases it is done via a FileMaker script. This allows you to use a global field like a programmer uses a variable. Enter or set in a fresh value and it will immediately reflect on all records.

Finally, let’s cover how fields with global storage behave in networked FileMaker settings. In these cases the field behaves like a local global for each user. One user on the network cannot see what is in another users global field. By default, the global will contain the data it had when last closed in single user mode. The global field for a networked user will contain unique data, only for that user and only during that network session. When a networked user closes a file with global fields, none of the data in that global will be saved for the next session.

PLEASE NOTE: It’s a common technique of FileMaker developers to put a small g in front of the names of Global fields. This way you can find and identify them, when you have a large list of fields.

=
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
May062015

FileMaker Anchor / Buoy Segmentation Makes Better Printing

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

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

In previous discussions, we have chatted about how the relationship graph TOs (table occurrences) can be grouped. We have chatted about how FileMaker Anchor / Buoy leverages TOGs (table occurrence groups) as a key element in its strategy to tame the FileMaker Relationship Graph. When you have all your table occurrences grouped in a manner such as this, it makes printing the Relationship Graph much easier.

Why would you want to print the Relationship Graph? Well, it might help you plan where you want your relationships to go and how you are going to get there. You may use this as a method to describe the interactions between modules to project stake holders. You might want to have a history of the evolution of your Relationship Graph for project management needs. You may want to print the Relationship Graph to pdf and send it to a FileMaker Consultant for their recommendations or technical support.

In the lower right corner of the Relationship Graph are the two buttons that help you setup your Relationship Graph for printing.

Page Guides - The first button in the print button group is used to turn on or off the page guides for printing the graphic area. This can be a worthwhile organization tool and is a great idea if you are going to print out the relationship graph area for a presentation or part of your overall database documentation.

Page Setup - The next and final button in the bottom button row is used to bring up the print preview screen for the relationship graph area. This can be very useful if you are going to print out the relationship graph area for a presentation or part of your overall database documentation.

ORGANIZING YOUR GRID TO A GRID
So in some ways, your Anchor / Buoy groups can be considered a grid of relationships. So the next step is to turn on the Paper Guides (via the button mentioned above) and then place your TOGs neatly into the spaces added by the grid.

So I decided to practice what I’m preaching here. I had my Relationship Graph in very good shape for my InBizness SOHO product. However, I have never made sure that it printed perfectly. This is a large task because InBizness SOHO 2.5 (the release I’m working on) has 211 table occurrences for the 45 tables it currently has. It took about 30 minutes for me to line up all those table occurrences to be in synch with the Page Guide grid. I know that many of my competitors in the FileMaker framework business market could never print all the relationships for their solution from one place and it all fits into the printable grid.

Here you can see a 50% print preview look at part of InBizness SOHO 2.5 Relationship Graph. All TOGs are sorted alphabetically, fully anchor / buoy, full consistent naming convention and now totally printer friendly.

SUMMING IT UP
The TOG setup for Anchor / Buoy makes the printing of a Relationship Graph a reasonable experience. Printing your table occurrence groups occasionally can be very beneficial for project documentation. The process of reorganizing your graph this way also gives you the opportunity to take a very close look at it. That means you can also use this time to delete unneeded TOs and rename them as necessary.
=
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.