FileMaker Addict Has Moved!

FileMaker Addict can now be found here: http://www.filemakeraddict.com




Saturday, August 11, 2007

FileMaker 9 Products Added to the FileMaker Addict Store

I've finally added all of the FileMaker 9-related books and software to the FileMaker Addict Store. You'll now find all of the latest FileMaker 9 books, as well as software and upgrades.

Thursday, August 09, 2007

2007 DevCon / Day Three...

My last day at DevCon 2007. Here are some of the sessions that I was able to squeeze in before heading home this afternoon...

  • Integrating With SQL-Based Applications -- I was lucky enough to take quite a few ESS-related sessions during DevCon. As many of you know, this is my favorite new feature of FileMaker 9. I do a lot of work with SQL Server, and it has long been a dream of mine to be able to really integrate FileMaker seamlessly with some of the SQL-based databases that I'm involved with. So this session, by Soliant Consulting's Steve Lane, was one that I had really been looking forward to...

    And I wasn't disappointed! Steve did a great job of explaining how we can use ESS to integrate FileMaker with SQL-based applications. His example involved integrating a custom FileMaker solution with a MySQL-based bug tracking system called Mantis. All of the ESS work that I've done thus far has been with SQL Server, so it was interesting to see how well the function works with MySQL. Steve explained very well some of the things to look out for when integrating FileMaker with SQL databases, and stressed the importance of being careful with what we allow our FileMaker users to do when it comes to manipulating the data in those databases.

    Having taken a number of ESS sessions now, here's my take on it: It's an amazingly powerful, amazingly simple function. It has a lot of potential. And the extent to which a FileMaker developer should use it should depend on his or her SQL skill level. If you are new to SQL, take it slowly, and be careful. It you are an advanced SQL developer, you should still be careful, but go ahead and explore and experiment.

  • Using the FileMaker PHP Site Assistant to Develop Custom Web Site Workflows -- Wow, this session's title is a mouthful. But it was a very informative session just the same. FileMaker's Eric Jacobson demonstrated how to build more complex, robust PHP-based Web apps using the new PHP Site Assistance (PHPSA). The idea is this: Map out the workflow of what you want your application to do. Identify blocks of functionality that can be built easily using PHPSA. Build each block as a separate application, each in its own subdirectory. Then make minor changes to the PHP code to tie the blocks together into a single, robust application.

    The example that Eric used involved a NetFlix-like business called FileMaker Flix. In less than an hour, Eric built the application. It was amazing to see.

    I'm finding myself more and more impressed by the PHP Site Assistant. It generates really nice looking applications quickly. The code is clean and easy to read, so it is easy to modify and extend, too. And while I already know quite a bit of PHP and a lot about the PHP API, I think there is probably a lot to learn by studying the PHP code that the PHPSA generates. If you are new to PHP and are interested in using it, this might be a good way to get started.

  • Practical Database Integration Using FileMaker Pro -- My final session of DevCon 2007 was this very informative one offered by FileMaker's Bill Heizer. Bill explained FileMaker's philosophy behind the ESS function, when to use it, when not to use it, and what we can expect from it. He explained some of the things that I had been wondering about -- such as why we cannot use data from ESS as value lists. Bill also showed us some tricks that I hadn't see before, and pointed out some things about ESS that aren't necessarily apparent at first glance. Perhaps best of all, he also showed us one very cool trick involving the new SASE (Server Activated Script Execution) and how you can simulate importing records to and from ESS tables. (True record importing isn't supported as a script step for use with SASE -- so Bill's trick is a great work-around. And it's fast!)


So there you have it. I learned so much from the sessions and workshops at DevCon 2007, and I'm excited to both apply what I've learned and share some of that information with you in future posts to FileMaker Addict.

DevCon 2007 was an amazing conference. I learned a lot, met a lot of really nice people, and left feeling even more upbeat about FileMaker Pro. Who could ask for anything more?

My only regret was missing the closing session ("Under The Hood"). If you were there and would like to share your thoughts on it, or on any part of DevCon 2007, please post a reply. I'd love to hear about your experiences!

2007 DevCon / Day Two: Continued...

Here's a summary of some of the sessions that I was lucky to attend on Day 2:

  • Database Transactions / Transactionize It! -- I started DevCon 2007 Day 2 by taking back-to-back offerings from Todd Geist of geist interactive. Todd is the expert when it comes to implementing transactions in FileMaker. The Database Transactions session explained in a little more than an hour an elegant method for building transactional support into our solutions. In the workshop, Todd was kind enough to actually give us the code that he uses to begin and close transactions. Honestly, in this short amount of time I was able to resolve a problem that I've been struggling with for a few weeks now -- which involves adding support for transactions in an inventory application that I'm developing. With what I learned in the session and workshop, I'm "good to go" now.

  • Get A Grip on Charting -- In this session, Richard Carlton reviewed several methods for adding charting functionality to our solutions, including third-party plug-ins and methods that make use of the Web Viewer. Stay tuned to FileMaker Addict, as I'm hoping to experiment with some of the methods that Richard described and tell you waht I've discovered. And if you ever get a chance to attend one of Richard's DevCon sessions in the future, by all means, do so. He's a very informative and entertaining speaker. You won't be disappointed!

  • Inside External SQL Sources -- FileMaker's own Galt Johnson did a fantastic job covering the ins and outs of the new "ESS" feature in FileMaker 9. This was a very technical session, and I walked away from it with a much better understanding of what FileMaker is really doing behind the scenes when we use ESS. This is most certainly something that I'll cover here on FileMaker Addict in the future.

  • Under The Hood: Recovery and File Maintenance -- Jon Thatcher of FileMaker gave this in-depth session on "what to do when databases go bad." Lots of good advice on what to do to prevent disaster, and what to do when disaster strikes. Good stuff!


So that's a recap of Day 2. I'll cover Day 3 soon...

Note: I must have been half-asleep when I first posted this, as I had incorrectly listed Ray Cologon -- not Todd Geist -- as the presenter of the session and workshop on transactions. Thanks go out to one of my readers for pointing this out. (That's what I get for trying to write and post to the blog between sessions!)

Wednesday, August 08, 2007

2007 DevCon / Days One and Two: Awesome Sessions

The sessions and workshops here at DevCon 2007 have been amazing. I went to 3 sessions and 1 workshop on Monday, and 4 sessions and 1 workshop on Tuesday -- and got valuable information from each and every one. Sure, it's a lot of information to take in, but it's valuable information that I'll more than likely use as soon as I get back to work.

Here's a quick re-cap of some of the sessions and workshops that I took on Day 1:

  • Riding Along the Audit Trail... This session by John Howell of DataExperience Inc reviewed a number of different ways to implement an audit trail in FileMaker solutions. If you've ever tried to do this yourself, you probably know how frustrating it can be. Each method for implementing audit trails has its pros and cons, but one of the methods that John demonstrated stood out. It involves using fmDataGuard by WorldSync, and it allows for rollback of a field, rollback of deleted records, restore from a catastrophic failure, and even roll forward. I'm hoping to write more about this method in the future, so stay tuned.

  • Estimating and Storyboarding Project... Debbie Asquith of The Moyer Group did a great job of explaining what can be a very difficult and frustrating thing to do: estimating a project. Her approach to this was very interesting, and her advice on estimating is sure to be valuable to me in the future as I need to give estimates on both internal projects and projects for clients.

  • FileMaker Server Environment Part 2... FileMaker's own Rick Colcock gave this session on how to properly a configure a Mac-based server for use with FileMaker Server. This session made me want to rush back to the office and reconfigure our two XServes! Great information!

  • Maximizing FileMaker Performance: Leveraging Late Night Automation... Richard Carlton of Richard Carlton Consulting explained some of the ways that we can make use of FileMaker Server 9's ability to run scripts. He calls this "SASE" for "Server Activated Script Execution." He covered a lot of ground in this session, and it really helped me to understand what SASE can (and perhaps more importantly) cannot do. This is another topic that I hope to cover in the future, as I think that a lot of FileMaker users out there will benefit from what I learned in this session.



I'll review some of the "Day 2" sessions soon. I'm off for "Day 3" sessions now...

-- Tim

Monday, August 06, 2007

2007 DevCon / Day One: The Keynote

The "official" first day of DevCon started with the Keynote -- and it was a great way to get started. There's a lot of enthusiasm here about the new FileMaker 9 product line, from both the 1300+ DevCon attendees and the FileMaker staff itself.

And it is little wonder that everyone is so enthusiastic. The "new stuff" in FileMaker 9 opens up worlds of possibilities for us. The ability to use external SQL statements is, for me anyway, the most exciting new feature. We can finally connect FileMaker to other data sources in ways that we've dreamed of, and integrate data from FileMaker with the data that previously seemed "locked up" in the SQL databases.

Some of the things that struck me about the keynote include:


  • TechNet is very popular and is growing quickly.There are 4500+ TechNet members at this point, and 40% of the 1300+ DevCon attendees are TechNet members. If you haven't joined, I encourage you to check it out. It is a great resource, and more than pays for itself.

  • The MySQL Partnership isn't just "fluff." When the partnership was first announced, I thought FileMaker was simply doing a "me too" by joining the MySQL alliance. That's not the case. Integrating MySQL with FileMaker is a natural thing to do, combining the "best of both worlds." So keep an eye on this relationship.

  • The "data protocol" support in the Web Viewer is really, really cool. They demonstrated something that NightWing Enterprises has done with it -- really nice looking progress bars -- and it was very impressive. So this is another new feature that is worth learning more about.

  • The enhancements to the Scribt Debugger and Data Viewer are very powerful new tools for us. I'm going to have to explore some of this more.

  • Conditional formatting is amazing. I thought I had fully understood all that this new feature can do for us, but I was wrong. The demo was very cool. One example of how it is being used has to do with displaying the labels of empty fields in the fields themselves, which helps to free up screen real estate. Can't wait to try this one out!

  • The PHP Site Assistant is also much more powerful than I had originally thought. It is not only powerful, but extremely flexible, and really helps you to create a PHP front end to a FileMaker database very quickly. The resulting application looks very professional. And perhaps best of all, I hear that the PHP code that it generates is quite good -- easy to read, easy to maintain, easy to modify and customize. It's a great way to jump start development of a PHP-based site.

  • FileMaker Mobile is (for the most part, anyway) dead, but FileMaker is still mobile! This is something that we've known for awhile -- that while "FileMaker Mobile" is still being consider a part of the product line, new development seems to have stopped. For those of us who need to provide access to FileMaker databases to our mobile users, we're in luck. Instead of running a real FileMaker application on those mobile devices, we can simply create mobile-device-friendly PHP applications instead. And they're working on a iPhone "theme" for the PHP Site Assistant -- so creating iPhone-friendly PHP sites should be a breeze.



There's a lot more going on here and a lot that people are talking about. PHP and ESS are probably the two biggest.

More later... So stay tuned!

Saturday, August 04, 2007

FileMaker Developer Conference 2007

Tick... tick... tick... DevCon 2007 is only a day away. I've been using FileMaker since 1992, and this is my first DevCon. How insane is that?

In any case, to say that I am excited is a massive understatement. I'm looking forward to learning more about FileMaker 9, seeing how other FileMaker Addicts are using it, and hopefully getting some insight into the future of FileMaker.

I'll be blogging about the big event throughout the week, so stay tuned. And fellow DevCon attendees, please feel free to post your DevCon comments and experiences here.

Updated: Here are some early pix from DevCon. The first is a view from the JW Marriott. The second is a view of the conference check-in booth. (Very, very nice backpacks are being distributed this year.)



Wednesday, August 01, 2007

"Go To Related Record" (GTRR): Use With Care!

FIleMaker's "Go To Related Record" (GTRR) script step is a very convenient, very powerful step. With GTRR, you can navigate to one or more related records in a table that is related to the current record. So, for example, you could easily jump from an order header to that order's lineitems in one easy step. Very cool.

However, GTRR can get you in a world of trouble depending on how it is being used. For example, suppose that for some reason you wanted to delete an order's lineitems without deleting the order itself. The script might do something like this: Go to Related Records (to isolate the lineitems of the order), Delete All Records (to delete the lineitems), and then Go To Layout (to return to the order itself). Seems pretty straightforward, right? Here's a screenshot of the script...



The script works perfectly -- but only if the order has lineitems. What isn't immediately apparent about GTRR is what it does if there are no related records to go to... which is, well, nothing. Nothing as in nothing at all. You might think that it would go to the destination layout with no records in the found set. Nope. It doesn't do that. Instead, it remains on the current layout. It's as if the GTRR step wasn't even called.

This can be very dangerous, depending on what you are using GTRR for. Let's continue with the example that I started above, where we wanted to delete the lineitems of an order. For an order with no lineitems, the script will do this: Go to Related Records (which results in the Orders layout remaining active, because there are no related records to go to), Delete All Records (which would delete the found set of orders!!!), and then Go To Layout (even though we'd already be on that layout). And so, instead of deleting the (non-existant) lineitems of the order, you might end up deleting the order itself. And worse, depending on your found set in the Orders table, you might end up deleting other orders (possibly all of the orders) instead.

The good news is that you can use error handling to easily determine when the GTRR script step "fails." GTRR throws a FileMaker 101 error ("Record is missing") if there are no related records to go to. You can catch the error and respond accordingly. For example, here's a modified version of the script displayed above. This one includes error handling...



So in this version of the script, if there are no lineitems for the order, a message is displayed, and we prevent the user from accidentally deleting orders instead of lineitems. Otherwise, we go ahead and delete the lineitems.

It would be nice if the GTRR script step gave us the option of going to the layout regardless of whether there are related records or not. But, unfortunately, that isn't the case.

To summarize: Use GTRR with care. Never assume that it will result in the user being taken to a certain layout.