Tag: filemaker
February 10, 2010

Introduction

So here's an edge case for you. How do you use JDBC to connect to an instance of Filemaker Pro or Filemaker Server?

Note: These instructions are for Mac users, not Windows users.

First, you're probably wondering who on earth would want to do this? While Filemaker does exist in the Windows world, Filemaker is the de facto equivalent of Microsoft Access for Mac users. It's pervasive, and it's quite good. By enabling JDBC connectivity to Filemaker, you can now use some more powerful tools, such as Pentaho Data Integration to pull in data from all sorts of data sources. Now I wouldn't recommend using Filemaker as a data warehouse, but you can definitely use Pentaho to pull in data from any REST API enabled service you might subscribe to, such as Freshbooks, Basecamp, etc.

Sidebar: For me, the concept of a JDBC driver for Filemaker is quite bizarre, since I haven't really used Filemaker since the early nineties, before it became a quasi-relational database. Filemaker is a nice little database. For some things, like creating a data-driven front end, it's significantly better than Access. For those who yearn for the simpler days of Filemaker, however, Filemaker does offer a nice little database app called Bento.

Before trying to connect to your Filemaker database(s), make sure you turn on sharing from within Filemaker.

Installing the Driver

When you get Filemaker, you should find a folder called xDBC on the installation media (whether it's a CD or DMG disk image). Within that folder is an installation folder for the JDBC drivers. In that folder is a file called

sljcInstaller.jar.

screenshot

Just run it by double clicking it. Jump through the wizard until you get to this screen.

screenshot

Click on the "..." button and navigate to a folder where you want to install the drivers. The installer will work its magic.

Within the destination folder, you'll find a folder called "drivers". Within that folder, you'll find another subfolder called "lib". In this folder, you'll find the driver you need: sljc.jar.

screenshot

OK, so now you have the driver, what can you do with it? I've provided samples for DBVisualizer and Pentaho Data Integration.

DBVisualizer

  1. Launch DBVisualizer.
  2. Go to Tools > Driver Manager.
  3. Create a new driver and call it "Filemaker Pro".
  4. In the URL format, enter: "jdbc:sequelink://localhost:2399" (without the quotes). That's the default URL for Filemaker.
  5. In the Driver File Paths section, click "User Specified".
  6. Click on the open icon (the folder).
  7. Browse to the sljc.jar file you just installed. This should populate the drop down list for the Driver Class field in the Driver Setting section above.
  8. Select "com.ddtek.jdbc.sequelink.SequeLinkDriver".
  9. Close out the dialog. You're done. You should be able to create a connection without the wizard. Make sure your Database Type is Generic. The default User Id is "Admin" with a blank password.

Pentaho Data Integration (Kettle)

  1. Open the Kettle application package by right clicking the icon and selecting "Show Package Contents". Navigate to Contents.
  2. In a text editor, edit the file info.plist. Add an entry as shown below:

    $JAVAROOT/libext/JDBC/sljc.jar 

    screenshot

  3. Next, copy the sljc.jar file from your installation folder into Contents/Java/libext/JDBC/

  4. Launch Kettle. You can create a connection using the parameters shown below.

    screenshot

keyword pentaho  keyword jdbc  keyword filemaker  keyword dbvisualizer