Ruby
Sinatra
FileMaker
FileMakerServer
FileMakerDay 23

FileMaker Server 内の「データベース名」、「レイアウト名」、「フィールド名」を表示できるウェブアプリケーションを作った

FileMaker Server 内の各種情報

FileMaker では以下のような階層構造でデータベースとしての情報が存在しています。

  • データベース名
    • レイアウト名
      • フィールド名

これらを一覧するための方法としては「デザインレポート」を用いるなどの方法があります。ただ、その方法ですと何か変更がある度に「デザインレポート」の出力のし直しが必要です。

データベースがある程度の規模になると出力に結構な時間がかかってしまうため、リアルタイムで現在のデータベースの情報を見られるような仕組みがあると良いなと思いました。

Inspect FM

そこで Inspect FM というウェブアプリケーションを作りました。以下の場所に公開しています。

corselia/inspect-fm: the list of Database name, Layout name and Field name in FileMaker is shown

起動方法

Inspect FM の起動方法を説明します。

1. git clone する

まずは公開しているファイル群を持ってこなくてはいけません。git clone しましょう。zip をダウンロードして展開しても構いません。

$ git clone https://github.com/corselia/inspect-fm.git

2. config/filemaker.yml に FileMaker Server への接続情報を書く

config/filemaker.yml に以下のような書式で FileMaker Server への接続情報を書きましょう。

filemaker.yml
host: 10.10.10.10
account_name: my_account_name
password: my_password

3. 必要な gem をインストールする

bundle install をして必要な gem をインストールします。

$ bundle install --path vendor/bundle

4. Inspect FM を起動する

Inspect FM を実行するためにサーバを起動しましょう。以下のコマンドでは、ポート番号を 4567 と指定して起動しています。また -D オプションを付けてバックグラウンドで起動しています。

$ bundle exec unicorn -c unicorn.conf -p 4567 -D

5. ウェブブラウザでアプリにアクセスする

「4.」のコマンドを実行することでアプリが起ち上がったら、ウェブブラウザでアプリにアクセスしましょう。http://localhost:4567 でアクセスできます。

アクセスして以下のようなトップページが表示されれば正しく起動されています。

inspect_fm.png

使い方

Inspect FM の使い方をスクリーンショットともに説明します。

  • 画面上部のメニューから InspectStart とたどると「データベース名」の一覧が表示されます
    inspect_fm_02.png

  • 「データベース名」の一覧から個々のデータベース名をクリックすると、そのデータベースが持っている「レイアウト名」の一覧が表示されます
    inspect_fm_03.png

  • 「レイアウト名」の一覧から個々のレイアウト名をクリックすると、そのレイアウトが持っている「フィールド名」の一覧が表示されます
    inspect_fm_04.png

  • 表示権限がない情報にアクセスしようとするとエラーになります

    • config/filemaker.yml で指定したアカウントの表示権限に基づき、表示することができない情報にアクセスしようとするとエラー画面が出ます

inspect_fm_05.png

  • 表示される情報はリアルタイムです
    • ページを遷移する度に FileMaker Server にアクセスしているため、表示される情報はリアルタイムな情報になります

上記のようにリンクをたどることで、FileMaker Server に格納されている「データベース名」、「レイアウト名」、「フィールド名」を横断的、探索的に表示することができます。

Inspect FM の中身

Inspect FMSinatra で作られたウェブアプリケーションです。FileMaker のデータを扱うために 以前紹介しました filemaker-ruby を用いています1

中身としては特別なことは行っておらず、ごくごく普通のウェブアプリになっています2。次のライブラリを使っています。

  • sinatra
  • filemaker-ruby
  • unicorn
  • Honoka

View の部分のコード が一部 DRY でないのは見逃して下さい。

ダメなところ

  • 検索機能がない

これに尽きます。時間があれば付けたいです。

いいところ

FileMaker 本体だけでは扱いにくい情報がリアルタイムで取得できる、というのはいいところだと思っています。これは以前書いた FileMaker の API (Web API) の使いどころ を踏まえてのことですね。


  1. 大感謝です 

  2. ソースコードがそれを雄弁に物語っています