FileMaker, the database product, has been around since 1985, and has evolved a great deal since its inception. It is fully relational, offers both development- and user-level support in a single application, is completely cross-platform compatible, and takes advantage of a modern security architecture.
The following is a brief list of the major changes and new features in FileMaker 8.
Features for Users
New User Interface Controls
FileMaker 7/8 Architecture
Version 7 was a major architectural shift for FileMaker, and many of the changes from prior releases of the platform represent critical issues that all current developers must know. To present a complete picture of FileMaker, the following section reviews, and compares to prior versions, the new architectural structure introduced in FileMaker 7 and extended in FileMaker 8.
The file format for FileMaker 7 and 8 is radically different from that of earlier versions of FileMaker Pro. Earlier versions of the product were limited to one table per file, whereas FileMaker 7 and 8 allow one million tables per file. Not only is the file format different, but the network protocol that FileMaker uses to communicate between hosts and guests is different as well. That means that if you need to, you can run both FileMaker 6 and FileMaker 8 on the same network and the two versions won't "see" each other on the network, or conflict in any way. After you convert FileMaker 6 files into FileMaker 8 files, the FileMaker 8 versions will no longer be readable by FileMaker 6. Conversion in this sense is actually a misnomer because when FileMaker 8 converts a FileMaker 6 file, the original file is left untouched. Instead, FileMaker 8 uses the original to create a new version of the file.
Along with the FileMaker 7/8 file format come some dramatic benefits. One favorite is the significantly improved stability of files, leading to far less corruption when systems suffer crashes. Also, developers can now make changes to everythingfield definitions, table definitions, access privilegeswhile the database is being hosted with guests logged on. This extends the flexibility of the platform even further.
The Relationships Graph is a visual representation of the relationships between table occurrences. The term table occurrences is used because there can be only a single relationship between two table occurrences. If a developer needs to create multiple relationships between two tables, those tables will be displayed multiple times on the Relationships Graphhence the term table occurrence (see Figure 1.3).
Figure 1.3. This Relationships Graph shows two occurrences of the Person table, each with a different relationship.
For more on the Relationships Graph, see Chapter 6, "Working with Multiple Tables," p. 157.
Enhanced Relationship Functionality
In versions of FileMaker Pro before version 7, relationships could be constructed only on the basis of a key field (match field) in one file being equal to a key field in another file. These relationships, or joins, are known as equijoins in relational database terminology. FileMaker Pro 8 supports multiple join types. Now relationships can be constructed in which one value is less than, greater than, or not equal to the other value.
In addition to the multiple join types, FileMaker 8 also supports complex, multiple-predicate joins, or joins with more than one criteria. In Figure 1.4, the Edit Relationship dialog clearly shows the different join types and the multiple join criteria.
Figure 1.4. This relationship shows all team members for the selected Team ID, excluding the current person's record.
Multiple Windows per File
In FileMaker 8, a user can have more than one window open per file and, more important, more than one window open per table (because it is possible to have multiple tables per file). It is possible to view two separate found sets of data at once, perform a search in one window while maintaining the state of another, or develop a multipaned application.
FileMaker 8 supports a centralized, modern security architecture in which accounts and privileges may be changed while a system is live. System behaviors are grouped into privilege sets; each account is associated with a single privilege set, ensuring that all users have their own accounts and passwords while sharing access levels with their peers.
Extended privileges serve as an additional feature that allows developers to define custom privilege settings. In scripts and calculations, a developer can test for the existence of an extended privilege and modify the behavior of a user's experience with a given solution accordingly.
Security capabilities also include the capability to integrate with an external authentication server (Open Directory or Active Directory) where an IT organization may maintain passwords on a central server for all the various applications in an organization, including FileMaker.
Although technically not really a security feature, it is possible to tie a FileMaker Server into an LDAP (Lightweight Directory Access Protocol) infrastructure so that users see only host servers that are applicable to their department/division, and so on.
For a complete overview of FileMaker's security features, see Chapter 12, "Implementing Security," p. 325.
FileMaker 7 introduced support for commenting within calculations, included the Let() function for declaring variables, and shifted syntax from Status functions to the more broadly applied Get functions.
FileMaker 8 allows developers to extract data by related rows with the GetNthRecord() function, new functions have been added to remove text style attributes (font, text color, font size, style), and additional Get() functions have been added to determine the location of desktop and document folders on client machines.
FileMaker Developer 7 and FileMaker Pro 8 Advanced allow developers to create their own custom functions. Often underappreciated, custom functions give developers the capability of abstracting code into reusable, discrete units.
FileMaker 8 contains its own scripting tool, ScriptMaker, which allows developers to create logical routines that run at the press of a button or the selection of a menu choice.
Scripts in FileMaker 8 can be set to run with full access privileges on a script-by-script basis that then overrides a user's security privilege settings.
Scripts can also be set to be available for execution from the Web. A wide majority of script steps are supported via both Instant Web Publishing and Custom Web Publishing.
FileMaker 8 boasts new alignment tools, and, on a layout-by-layout basis, a developer can decide whether record changes will be automatically saved, as they were in previous versions of FileMaker Pro, or whether the user needs to deliberately commit the record to save changes.
Button objects can now be included in tab sequences, and when a user has tabbed to a button object, she may "click" the button by pressing the Enter key or spacebar.
The biggest change with layouts is the Tab Control object. Developers can now create a tabbed pane without any scripting whatsoever.
Instant Web Publishing was greatly enhanced in FileMaker Pro 7, and Custom Web Publishing was completely overhauled to utilize XML and XSLT. FileMaker 8 made no dramatic changes to web capabilities, but did refine both performance and stability.
FileMaker 7 represented a complete rearchitecting of FileMaker's file format and dramatically extended the platform's capabilities. The transition from the file format supported by FileMaker 3.0 through FileMaker 6.0 is still going on. A comparison between the two architectures demonstrates the dramatic growth the platform has undergone (see Table 1.5).
Number of tables per file
Maximum file size
Maximum amount of data in a text field
2GB of data, or 1GB of Unicode characters
Number of significant digits in a number field
FileMaker Pro indexes the first 400 significant digits (numbers, decimal points, or signs) of the field, ignoring letters and other symbols
Number of characters in a number field
Maximum number of files allowed open on the client
Limited only by memory
Maximum records per file (theoretical limit)
64 quadrillion over the lifetime of the file
Maximum amount of data allowed in a container field
Maximum number of fields in a table
256 million over the lifetime of the file
Number of script steps supported by Instant Web Publishing
Number of FileMaker clients hosted by FileMaker Server
Number of web clients hosted by FileMaker Server Advanced
Part I: Getting Started with FileMaker 8
Using FileMaker Pro
Defining and Working with Fields
Working with Layouts
Part II: Developing Solutions with FileMaker
Relational Database Design
Working with Multiple Tables
Working with Relationships
Getting Started with Calculations
Getting Started with Scripting
Getting Started with Reporting
Part III: Developer Techniques
Developing for Multiuser Deployment
Advanced Interface Techniques
Advanced Calculation Techniques
Advanced Scripting Techniques
Advanced Portal Techniques
Debugging and Troubleshooting
Converting Systems from Previous Versions of FileMaker Pro
Part IV: Data Integration and Publishing
Importing Data into FileMaker Pro
Exporting Data from FileMaker
Instant Web Publishing
FileMaker and Web Services
Custom Web Publishing
Part V: Deploying a FileMaker Solution
Deploying and Extending FileMaker
FileMaker Server and Server Advanced
Documenting Your FileMaker Solutions