FileMaker Pro 8.5 [Mac] full review
For Mac users, FileMaker Pro has dominated the database market for some time now. Its legendary ease of use, cross-platform nature, and less-than-terrifying learning curve seem to have put its few of its rivals out of the running.
In the previous two versions (7.0 and 8.0) most of the remaining bugbears – such as easy separation of data from interface, poor script editing tools, inflexible menu system, inadequate accounts tools – were put to rest. So any new version would have to include some seriously useful tools to make upgrading a worthwhile proposition.
The list of new features in FileMaker Pro 8.5 is short but significant; Universal (Intel and PowerPC) support, two new script steps, five or so new functions, improvements to multi-lingual sorting, the ability to name specific objects on layouts, an online resource centre, and, most importantly, a new layout object
called a Web Viewer.
For starters, yes, it’s a Universal application. As an Apple subsidiary, one imagines Steve has been breathing down necks to get this one out. As you’d expect with a native application, the speed improvements are considerable – FileMaker claims a 50-100 per cent increase for the Intel version against the same PowerPC version.
For FileMaker Server users, there’s one good bit of news: a compatible version, 8.0v4, of Server and Server Advanced (offering no new features themselves other than Universal support, and support for the new 8.5 client features) is available concurrently. FileMaker is clearly aiming to end the “waiting for the server” upgrade excuse. Existing customers can get the Universal upgrade CD for £35.
FileMaker could possibly have got away with just giving MacBook and iMac users an Intel-native version for £35 as well. Instead, despite the small list of new features, they’ve added one particular feature that may have been relatively simple to implement, but that changes the way in which most users will look at their FileMaker databases. More importantly, it offers a concrete reason for those users still staring at a version 6 or 7 startup screen to make the move to 8.5.
The new Web Viewer is a layout control that allows you to view a web page from within your FileMaker layouts. In layout mode, you draw a box, up pops a dialog, and you fill in the URL. Switch to browse mode, FileMaker attempts to load your URL and, assuming it’s successful, there’s your web content. It’s as simple as that.
There are no obvious controls (although you use a contextual menu to go forward and back), so it doesn’t look ‘embedded’, but links within the web content itself behave just as you would expect – it’s possible to jump to different sites, download files, submit forms, view PDFs, display image files, and so on. How do they manage it? For Windows users FileMaker taps into Explorer’s underpinnings. On a Mac Apple’s built-in webkit does the work – think of it as FileMaker running Safari in a frame.
It’s clear that the aim of Web Viewer is to give users access to internet-based services from within their existing FileMaker solutions. To this end, the setup dialog that appears when you create a web viewer also includes a number of default settings that allow you to set up web viewers that will connect to standard web services: Google Maps, MapQuest, Google, FedEx, and all the variations of Wiki you could possibly want. Each setting provides up to five site-specific options – which can be linked directly to fields, or can be completed by calculation.
The FedEx default, for example, offers only one choice – a tracking number. The idea is that you can create a simple layout with just one field and a web viewer, and set it up so that the value in the field is used as the tracking number. Enter a tracking number, and the FedEx page loads right in the page – so you can see the results without having to leave FileMaker. (Developers can also create their own default settings in XML, so that end users can easily add web viewers for other web services as they become available.)
Setting the scene
To complement web viewers, FileMaker has a few behind-the-scenes features. There’s a new script step that allows developers to interact with web viewers in a few simple ways (reset the web viewer, reload the page, go forward, go back, or go to specific URL), and a new function, GetAsURLEncoded, that makes it easier to create web-compatible links from text field calculations. The new GetLayoutObjectAttribute function, which lets you interrogate layout objects (fields, buttons, portals), includes the ability to examine the textual content of a web viewer. Once a user has checked the status of their FedEx order, for example, it’s possible for a script to extract the details from the web page (sadly using standard text functions – there’s no native XML parsing yet) and therefore add the status information to the FileMaker database itself.
One minor annoyance is the lack of accessibility of content within the web viewer. If you’ve loaded a web page, then the textual content is there for the asking. But recording visual content is down to you saving a page with an oversized web viewer as a PDF and re-importing it into FileMaker Pro. There is no simple way to grab an image of a page from a web viewer into a container field.
Rewrite the script
The remaining new features are all aimed at the FileMaker developer, although end users will certainly feel the benefit. The Size palette, renamed the Object Info palette, allows you to name specific objects on a layout. Why would you want to? Probably because the other new features require it! First, there’s a new script step (Go to Object) that lets you go to a named object, be it a field, a tab within a tabbed panel, or whatever. If you have a number of named objects on a layout, the LayoutObjectNames function will provide them for you as a return delimited list. The new List function can now concatenate a list of values from all the repetitions of a field, all the values from matching related records (whether or not these records appear in a portal), or over several fields. This is similar to the sumText function found in some third-party plug-ins, but simpler to implement.
More helpful still, the Get(ActiveLayoutObjectName) function will tell you the name of the currently active object. So a script can determine the field or portal that you’re in and react appropriately. As previously mentioned, the GetLayoutObjectAttribute function lets you interrogate named objects. You can discover the size and rotation of the object; if it’s a tab panel, whether or not it’s the front-most tab; whether or not it’s the active object on the layout; the source of the object (for fields this gives you the qualified field name, and for web viewers you get the URL); and, most importantly, you can get at the content of the object. For fields and container fields, the content is just the value for the current record, and for web viewers, disappointingly, it will only return the source document for any displayed HTML.
All this is a field day for FileMaker aficionados: you can now discover the named object on a layout, which one the user is currently focused on, and what its properties are. If necessary, you can even move their focus to the object they need to be looking at.
Web viewers, and these associated new functions and script steps offer an entirely new jumping off point for FileMaker solutions. Anything you can view in Safari can be viewed in a web viewer, and provided you’re prepared to do a bit of text massage you can automatically pull data off the web and use it directly within your solution.
More than that, thanks to version 8.0’s ability to write text files to disk it’s now possible to create HTML files on the fly and preview the results within the FileMaker layout. So you can expect graphs, charts, and beautifully formatted tables to start making appearances within a FileMaker solution near you.