FileMakerで外部システムとデータ連携する方式をまとめてみました

こんにちは、スタッフの高木です。ふと気が付けば、前回投稿した記事はもう半年も前。時間が経つのは早いというか、ずいぶん更新をサボってしまったというか・・・。

さて、今回は久しぶりに FileMaker に関する記事となります。

ありとあらゆる業務が IT システムされている昨今、アプリケーション開発に伴って、異なるシステム間でのデータ連携が求められることは、もはや当たり前のようにあることです。

比較的小規模な案件での単体アプリケーションとして使われるイメージがある FileMaker ですが、やはり外部とのデータ連携が要件として挙がることは多々あります。

例えば、弊社で手がけることが多い医療分野などを例に出しますと、ある病院でメインシステムとして電子カルテが動いている環境がある場合、それをマスタデータとして患者情報を取り出し、そのデータを FileMaker で作ったサブシステムに同期して別機能を運用する、といった使い方がよくあるパターンです。

電子カルテのように手軽にカスタマイズができないシステムと、小回りが効く FileMaker を組み合わせて使うことにより、機能拡張に柔軟に対応できるようにする良い例ですね。

そのような、FileMaker で外部システムとのデータ連携を実現する場合どういう方式があるのか、代表的なものをいくつかまとめてみたいと思います。

インポート・エクスポート 方式

FileMaker

FileMaker 標準のインポート・エクスポート機能を使って、CSV(カンマ区切り)や XML 形式のファイル経由でデータをやり取りする方法です。

メリット

  • FileMaker 標準機能で対応が可能。
  • CSV、XML 形式は対応プラットホームが多い。

デメリット

2014年6月11日訂正

  • インポート・エクスポート作業を手動で行う必要がある。
  • データ連携が頻繁に発生するようだと手間がかかる。
  • テーブル単位の処理なので複雑なデータ構成の出し入れになると難しい。

インポート、エクスポート処理はスクリプトで実行することができますので訂正いたします。また FileMaker Pro 13 Advanced の場合、複数テーブルのインポートも行えるようです。

感想

2014年6月11日訂正

コストや環境面でのメリットはとても大きい反面、インポート・エクスポート処理は手動で操作する必要があるので、ヒューマンエラーのリスクや作業コストが高くなるというのがネックでもある方法です。

利用者がシステム担当者である、データの連携頻度が低いといった条件付きでの導入を検討したい方式でしょうか。

汎用的なファイル形式を扱えること、またスクリプトからもインポート・エクスポート処理は実行できるので、かなり使えるケースが多い方式かと思います。

ただし、ビジネスロジックを考慮してデータ加工する必要がある場合は、スクリプトの処理が大きくなりそうなので注意です。

カスタムWeb公開 with PHP 方式

FileMaker

「FileMaker API for PHP」という FileMaker から提供されている API を使って、PHP プログラムから FileMaker のデータを操作する方法です。

なお、「カスタムWeb公開 with PHP」を利用するには、FileMaker Server を利用することが前提となります。

メリット

  • Web ブラウザベースのアプリを開発しやすい。
  • 開発者が多い PHP で作成できる。

デメリット

  • FileMaker Server が必要になる。
  • データ連携プログラムを別途作成する必要がある。

感想

PHP が得意な方がさっと簡単な処理を作るには向いていそうです。ただし、少し規模が大きくなるような場合は、後述の「カスタムWeb公開 with XML」の方が多機能なライブラリが揃っていて良いかもしれません。

カスタムWeb公開 with XML 方式

FileMaker

FileMaker Server に XML 形式の HTTP リクエストを送信してデータの操作を行う方法です。プログラムから利用する場合、基本的には独自の文法(fmresultset、FMPXMLRESULT、FMPXMLLAYOUT)を使う必要がありますが、実はその部分の処理を抽象化してくれるオープンソースのライブラリも多く出ていたりするので、うまく活用できれば開発効率が上げられることでしょう。

なお、「カスタムWeb公開 with XML」を利用するには、FileMaker Server を利用することが前提となります。

メリット

  • Web ブラウザベースのアプリを開発しやすい。
  • オープンソースのライブラリが色々公開されている。
    • デメリット

      • FileMaker Server が必須である。
      • 素で使う場合は、独自の文法を覚える必要がある。
      • データ連携プログラムを別途作成する必要がある。

      感想

      PHP、Ruby、Python といった言語に対応するライブラリも出ているので、Web 系開発に慣れた方なら入りやすい環境が整っています。例えば、FMCakeMix だと PHP フレームワーク CakePHP のドライバとしてできていますので、中規模で多機能な開発にも対応しやすそうです。

      ODBC 方式

      FileMaker

      ODBC ドライバを介してデータの操作を行う方法です。大まかに、下記二通りのパターンでの利用が考えられます。

      FileMaker から外部 DB を操作するパターン

      FileMaker から、外部DBの ODBC クライアント経由で 外部 DB のデータを操作する方法です。

      これを使うと、FileMaker 内で FileMaker のテーブルと同様に外部 DB のテーブルを扱えるようになります。FileMaker だけで、全ての機能を実装することができるようになります。

      外部アプリケーションから FileMaker を操作するパターン

      外部アプリケーションから、FileMaker ODBC(JDBC) クライアント経由で FileMaker のデータを操作する方法です。

      独自にプログラムを組む方法はもちろん、ODBC に対応した DB 管理ツールなど既存のソフトウェアも沢山存在しており、様々なやり方で FileMaker のデータを操作することができるようになります。

      メリット

      • FileMaker → 外部 DB のパターンだと FileMaker だけで処理を完結できる。
      • 既存の ODBC 対応ソフトウェアを利用できる。

      デメリット

      • FileMaker から扱える外部データソースには制限がある(FileMaker13 の場合、Oracle 11g、SQL Server 2008 R2、SQL Server 2012、MySQL 5.5 のみ)
      • データ連携プログラムを別途作成する必要がある。(外部→FileMakerの場合)

      感想

      ODBC(JDBC)が使えることで、フリーソフトウェアの DB 管理ツールを使ってデータメンテナンスするといったことが簡単に行えます。また、.NET や Java での開発がしやすいため、業務系システムでよく求められる印刷や外部接続機器との連携といった機能にも容易に対応できるようになります。そういったケースでとても有力な選択肢となるでしょう。

      まとめ

      以上、ざっとまとめてみましたがいかがでしたでしょうか。

      あくまで概要を説明した程度に過ぎませんが、こういった仕組みが使えるのであれば色々な要件に対応できることが、イメージして頂けるのではないかと思います。

      弊社では、FileMaker のアプリケーション開発はもちろん、お客様のシステム要件に応じた最適なシステム設計もご提案いたしております。

      ご興味のある方は、ぜひお気軽にお問い合わせください!