SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

FileMaker Pro 実践チュートリアル(AD)

基幹システムやERPと連携したFileMaker Proの利用

最終回 RDBMSとの連携運用

  • X ポスト
  • このエントリーをはてなブックマークに追加

この連載では、システム開発において採用が増えつつある「FileMaker」というデータベースソフトウェアについて、最前線で活躍するエンジニアがリレー形式でその魅力を紹介します。最終回は、FileMaker Pro 9から追加された、SQLデータベースとFileMaker Proの連携機能を解説します。

  • X ポスト
  • このエントリーをはてなブックマークに追加

はじめに

 このリレー連載が始まった頃は、「FileMaker Proって、どんなデータベースなんだろうか?」と思っていた読者も多かったかと思いますが、そろそろFileMaker Proの全体像が見えてきたでしょうか。

 最終回では、そんなFileMaker Proにバージョン9から追加された、SQLデータベースとFileMaker Proの連携機能を解説します。一連の連載を通してご覧いただくと、FileMaker Proで可能なシステム開発の幅を理解いただけると思います。

基礎知識

External SQL Source(ESS)とは

 FileMaker Pro 9から、新技術「External SQL Source(ESS)」が追加されました。これは、FileMaker ProからODBCを介してリレーショナルデータベース(RDBMS)のテーブル操作を可能にする機能で、以前のバージョンで実現されていた、ODBCインポートやSQLステートメント実行機能よりも、ODBCを介したRDBMSとの連携という意味で、一歩も二歩も踏み込んだ機能になっています。

必要な環境

RDBMSが必要

 ESSで連携可能なRDBMSとして、FileMaker社が提示しているのは下記の3種類です。

  • Microsoft SQL Server 2000 / 2005
  • MySQL 5.0 コミュニティエディション
  • Oracle 9i、10g

 このように、国内における企業の基幹システムやWebシステムで採用されている主要なRDBMSと連携可能になっています。国内のWebシステムではPostgreSQLも多く利用されていることから、PostgreSQLにも対応すると嬉しいですが、本執筆時点でその様な声がまだ聞こえて来てはいないのは少し残念です。

使用方法

利用者は1行もSQLステートメントを記述する必要がない

 一般的な開発環境で、ODBCを使用してRDBMSと連携を行うような場合、開発者が意図したデータをRDBMSから得るためには、SQLステートメントを記述する必要がありますが、FileMaker ProのESSを使用すると、開発者も利用者もSQLステートメントを一切意識することなく、RDBMSからデータを得ることが可能です。FileMaker Proの利用者はいつも通りのFileMaker Proに対する操作を行うだけで、RDBMSへの検索や、レコードの追加や値の変更を行えます。

どのような仕組みになっているのか

 例えば簡単な例では、RDBMSに検索を行うような場合、次のようなSQLステートメントを記述します。

SELECT emp_id,emp_name,emp_section,emp_mail
  FROM Emp_tbl WHERE emp_active = 1;

 FileMaker ProでESSを使用してRDBMSからレコードを取り出す場合には、上記のようなSQLステートメントを記述することなく、単に「emp_acticve」フィールドに対して値が「1」のレコードを検索すれば、簡単に目的のレコードを取り出せます。

 もちろん、RDBMSがFileMaker Proからの検索要求をそのまま理解することはできませんので、内部的にはFileMaker ProのESSが、RDBMSのテーブルへの処理が発生したときにSQLステートメントを自動生成して、ODBCデータソースに対して実行しています。

ESSがFileMaker Proの命令をSQLステートメントに変換してくれるので、利用者はSQLに関する知識が不要
ESSがFileMaker Proの命令をSQLステートメントに変換してくれるので、利用者はSQLに関する知識が不要

 このような仕組みになっているため、FileMaker Proの利用者は、SQLに関する知識が少なくてもシームレスにRDBMS側のデータを使用できます。

設定:ODBCデータソースの設定

 RDBMSとFileMaker Proを連携させるには、ODBCデータソースの設定が必要になります。このあたりの設定は、FileMaker Pro以外のツールでODBCを使用する場合と同じです。

 ただし、Mac OSをクライアントとして利用することが前提となっている場合には、ODBCドライバが特定のメーカーが開発しているドライバに限定されてしまうことがありますので注意が必要です。

外部データソースとしてFileMaker Proデータベースに登録する

 FileMaker ProからODBCを介してRDBMSを使用する場合、「外部データソース」としてFileMaker ProにODBCデータソースを登録します。ここでは、事前に作成登録しておいたRDBMSへアクセスするためのODBCデータソースを選択します。

作成ボタンをクリックして、外部データソースの管理にあらかじめ作成しておいたデータソース(DNS)を登録する
作成ボタンをクリックして、外部データソースの管理にあらかじめ作成しておいたデータソース(DNS)を登録する
指定ボタンをクリックして、マシンに登録されているODBCデータソース(DNS)のリストを表示
指定ボタンをクリックして、マシンに登録されているODBCデータソース(DNS)のリストを表示
ODBCデータソース(DNS)のリストから、目的のODBCデータソース(DNS)を選択する
ODBCデータソース(DNS)のリストから、目的のODBCデータソース(DNS)を選択する
「DSN:」欄に目的のODBCデータソース(DNS)名が表示されていることを確認して、[OK]ボタンをクリックする
「DSN:」欄に目的のODBCデータソース(DNS)名が表示されていることを確認して、[OK]ボタンをクリックする
外部データソースとして、RDBMSへアクセスするためのODBCデータソースの登録が完了
外部データソースとして、RDBMSへアクセスするためのODBCデータソースの登録が完了

 ここまではFileMaker ProにODBCデータソースを認識させたに過ぎません。FileMaker Proのスクリプトやレイアウトで使用するためには、リレーションシップグラフにテーブルオカレンスの形で、外部データソースで参照できるRDBMS側のテーブルを配置する必要があります。

 この方法もFileMaker Proユーザーとしては特別の設定を行うわけではなく、外部のFileMaker Proデータベースを外部データソースとして登録する手順となんら変わらないところがFileMaker Proの良いところでしょう。

テーブルオカレンス追加ボタンをクリックして、テーブルを追加する
テーブルオカレンス追加ボタンをクリックして、テーブルを追加する

 リレーションシップグラフから[テーブルオカレンス追加]ボタンをクリックし、登録したデータソースを選択すれば、リレーションシップグラフにテーブルオカレンスとしてRDBMSのテーブルをFileMaker Proから利用する準備が整います。

データソースから、先ほど追加した外部データソースを選択
データソースから、先ほど追加した外部データソースを選択
外部データソースで選択可能なテーブルが表示されるので、選択して[OK]ボタンをクリック
外部データソースで選択可能なテーブルが表示されるので、選択して[OK]ボタンをクリック
プライマリキーとなるフィールドが存在しない場合には、設定するためのダイアログが表示される
プライマリキーとなるフィールドが存在しない場合には、設定するためのダイアログが表示される
リレーションシップグラフに外部のRDBMSに存在する「Cost」テーブルが追加される
リレーションシップグラフに外部のRDBMSに存在する「Cost」テーブルが追加される

FileMaker Proから外部データソース側のレコードを操作する

 FileMaker Proにテーブルオカレンスとして登録されると、FileMaker Proは自動的にデータの入出力用にレイアウトを作成してくれます。複雑な操作ではない場合は、FileMaker Proからはこのレイアウトを使用して、直接RDBMS側のレコードを操作できます。例えば「レコードメニュー」から「新規レコード」を選択すれば、それだけの操作で新しいレコードをRDBMS側に作成することができます。

 また、既存のレコードに対する変更は、FileMaker Proのレイアウトに表示されているRDBMS側のレコードの値を書き換えて、[Enter]キーでレコードを確定させるだけです。

 もちろん、FileMaker Pro側に作成してある通常のテーブルと、テーブルオカレンスに登録されているRDBMS側のテーブル間でリレーションシップを定義することも可能です。

外部データソースとして参照しているRDBMS側のテーブルとFileMaker Proのテーブル間でリレーションシップを定義する
外部データソースとして参照しているRDBMS側のテーブルとFileMaker Proのテーブル間でリレーションシップを定義する

 このようにRDBMS側のテーブルに対して簡単に操作が行えてしまうというのも、少々危険な気もしますが、RDBMS側に対する権限とアクセスのルールを定めておくことで、多くの心配要因を回避することができます。

 そもそも、ESSを使用してRDBMS側のテーブルを操作する場合、レコードの作成とフィールドデータの変更や、レコードの削除といった基本的な操作のみが許可された機能になりますので、RDBMS側のデータベース構造に変更を加えるような処理をFileMaker Pro側から行うことはできません。

 このようにFileMaker ProとRDBMSは簡単に連携することが可能ですが、企業で稼働中の基幹システムや部門システムのRDBMSとFileMaker Proを連携させる場合には、やはりそれなりのルールを策定してからでなければ、基幹システムや部門システム側とFileMaker Pro側の双方で、データの信頼性に問題が生じてしまう可能性があることも忘れてはいけません。

FileMaker Proだと何が便利なのか?

特別な専門技術が不要

 前述しましたが、ODBCドライバとODBCデータソースのセットアップ以外は、基本的にFileMaker Proの操作のみで、RDBMSをFileMaker Proから外部データソースとして利用することができます。

 同じようなことができるソフトウェアにMicrosoft Office Access(以下、Access)がありますが、Accessの場合は、複雑な処理を行うソリューションを作成したい場合に、プログラミングの知識が必要になります。一方、FileMaker Proはデータベースの構築やレイアウトの作成、各種自動処理などを直感的な操作で行うことが可能です。もちろん、FileMaker Proではできないような細かい処理などはAccessの方が優位ではありますが、そこまで必要のないソリューション開発の場合には、FileMaker Proの実力が大いに発揮されるでしょう。

クロスプラットホームなので、WindowsとMacintosh環境のどちらでもOK

 FileMaker ProはWindows、MacintoshのどちらのOSでも動作するクロスプラットホームのデータベースですので、クライアントマシンのOSを選びません。従って、企業内や大学などの学内で、これらのOSが混在するような環境であっても問題なくFileMaker Proを利用することが可能です。

 なお、共通のRDBMSに、FileMaker ProのESSを利用して接続する場合は、クライアントOSで利用可能なODBCドライバが必要になりますので、事前に調達しておくと良いでしょう。

Macintosh、Windowsのどちらとも、ODBCというインターフェイスを使用可能なため、OSの違いを気にせず運用が可能
Macintosh、Windowsのどちらとも、ODBCというインターフェイスを使用可能なため、OSの違いを気にせず運用が可能

ESSはどのような場面で使用するのか?

企業内の基幹システムのサブシステムとして使用する

 一般的に基幹システムと呼ばれる部類のシステムが存在しますが、FileMaker Proの機能だけで基幹システムに取って代わるシステムを構築するのはとても大変なことですし、開発者である筆者もあまりお奨めはしません。しかし、基幹システムのサブシステムとしてのFileMaker Proの利用は大いに推奨します。

 企業内の業務に変化があり、基幹システムに機能を追加しなくてはならなくなったという話は、日常茶飯事でよく耳にします。基幹システムに対して機能追加を行う場合、自社開発にしても、開発ベンダーが行うにしても、計画開始から本番稼働までには多くの時間を要します。システム開発の流れとしては、FileMaker Proも要件定義から始まって、設計、開発、単体テスト、組み込み、連携テスト……本番稼働といった一般的な流れになりますが、要件定義以降の作業においてFileMaker Proは短期間で各作業を進めることが可能になります。

 例えば、帳票印刷の処理を追加するような場合、一般的なプログラミング手法を用いると、帳票作成ツールを使ったとしても、それなりの開発工数がかかってしまいます。一方、FileMaker Proの場合は、PowerPointやワープロソフトのように画面上で帳票のイメージを作成するだけです。この作業は、ESSを使用してRDBMSに保存されているレコードを検索して帳票にするような場合でも、通常のFileMaker Proにおける帳票設計作業と何ら変わりはありません。

 その他の機能の開発に関しても、基本的にはFileMaker Proに初めから用意されている各種機能を組み合わせて処理を作成しますので、一般的なプログラミング手法でシステム開発を行う場合よりも開発時間を短縮することができるところが、FileMaker Proの強みの一つです。

ERPとの連携

 ERPの場合も同様で、バックグラウンドで動作しているRDBMSの種類やバージョンにも左右されますが、FileMaker ProのESSが対応しているRDBMSを採用している場合、ERPのサブシステムとしてFileMaker Proを役立てることができます。

 一般的にERPの導入を考えた場合、基本的なパッケージで用意されている機能の他に、導入する企業独自の機能が盛り込まれることがあります。通常このような機能追加を行う様な場合、ERPメーカーやERPに詳しいベンダーが機能追加を行うのが一般的です。

 しかし、機能追加の費用が思いのほか高額だったり、開発期間が長かったりなど、システムのライフサイクルに対する投資効果や導入効果を考えると機能追加を断念せざるを得なくなるようなケースが存在します。その様な場合にFileMaker Proを使用して、ERPと連携するサブシステムを構築すると次のような効果が期待できます。

  • 短期間で開発可能な場合が多い
  • エンドユーザー視点で設計から始められる
  • 短期間で開発可能なので、開発コストも抑えられることが多い
  • 導入後のカスタマイズが容易

 もちろん、FileMaker Proの機能で実現可能な範囲でのシステム開発になりますので、FileMaker Proではできないこともあると思います。その様なケースを見極めて、ERPのメーカーや開発ベンダーに依頼する機能追加と、FileMaker Proで可能な機能追加を仕分けする必要があるでしょう。

ERPに追加する独自機能のうち、FileMaker Proで開発可能な機能を切り出してFileMaker Proで開発する
ERPに追加する独自機能のうち、FileMaker Proで開発可能な機能を切り出してFileMaker Proで開発する

 追加機能の構築にFileMaker Proを使用する場合、FileMaker Proの開発ベンダーの力だけで開発を成功させることは不可能です。FileMaker ProのESSでRDBMSへアクセスするためには、RDBMS側のテーブルの構造を知らなくてはなりません。また、新たなテーブルやビューを作成する必要もあるかも知れません。その様な場合には、ERPメーカーや開発ベンダーの力を借りなくてはなりませんので、データのやりとりをするための手順や依頼ルールをERPとFileMaker Proの開発者双方で、あらかじめ取り決めておくとよいでしょう。

 ERPのサブシステムをFileMaker Proで開発した場合のメリットとして挙げている「導入後のカスタマイズが容易」という部分についても、ルールあってのことになりますので、明確なルールを設けずにFileMaker Proによるシステム開発を行ってしまうと、後々のトラブルのタネを残すことになってしまうかもしれませんので注意が必要です。

Webデータベースとの連携

 具体的な例として通販を行うWebデータベースとの連携に関して解説しておきましょう。

 例えば、MySQLとPHPによる通販サイトの構築を想像してみましょう。通販サイトに必要な商品検索、ショッピングカート機能、カード決済に関する一連の機能といったものは、MySQLとPHPの組み合わせが得意な分野になりますが、注文を受けた後のピッキングリストや納品書、各種集計表などの帳票類の作成、宅配伝票の印刷、商品マスタの管理や在庫状況の把握などといった機能はFileMaker Proが得意とする分野です。MySQLとFileMaker Proを連携させることで、これらの機能をFileMaker Proで受け持つことができ、かつWeb系システムとは切り離して運用できることも利点です。例えば、Web側システムが何らかの障害でストップしてしまったときに、出荷処理まで行えなくなってしまうのでは、ビジネスに打撃を与えてしまうかも知れません。

Webデータベースで使用しているMySQLと連携して、Webデータベースが不得手な部分をFileMaker Proで行う
Webデータベースで使用しているMySQLと連携して、Webデータベースが不得手な部分をFileMaker Proで行う

 また、商品マスタや在庫数などの管理もFileMaker Pro側で行い、ESSを使用してMySQL側の情報をFileMaker Pro側から更新するようにしておけば、CSVやExcelなどの中間アプリケーションソフトを介すことなく、直接FileMaker Proで各種処理を完結させることが可能となり、利用者の手間(間接的なコスト)も省くことが可能です。

完全なフロントエンドとしてFileMaker Proの採用は間違い

 FileMaker Proを使用すると、短期間で高機能なシステムを開発することは可能ですが、不可能なことも少なからず存在します。時々「FileMaker Proであれば何でもできてしまう」と錯覚してしまうこともありますし、現実的にそう言ったシステム開発の依頼も存在します。たとえば、バックエンドのRDBMSにOracleを採用して、ユーザが利用する機能の全てをFileMaker Proで開発するといった要望なのですが、決して不可能なことではないと思いますが、ユーザの利便性や、システム全体を俯瞰して見たときの完成度などを考えると、本当にそのような開発をしてしまっても良いのかは疑問が残ります。

 どのような開発ツールでも言えることですが、システムのエンドユーザーの業種などは選ばず開発が可能です。しかし、FileMaker Proの場合は次のような要件を求められる業務に関係するシステム開発は得意ではありません。

  • システムに高い堅牢性が求められる業務
  • データに冗長性が求められる業務
  • 高速な処理スピードが求められる業務
  • 命を預かるような業務

 このような要件は得意ではないだけで、ある程度実現することは可能ですが、FileMaker Proで開発をするメリットとリスクをよく分析をしてからFileMaker Proで開発するか、他のツールで開発をするかを判断すると良いでしょう。

FileMaker Pro導入が企業にもたらすメリットとは

 基幹システムやERPなどと連携してFileMaker Proを使用する場合、次のようなメリットが期待できます。

迅速導入によって得られるメリット

 FileMaker Proでシステム開発を行った場合、他のツールで行うシステム開発よりも短期間でシステム開発が可能であることは前述しました。

 いち早くシステムを使用できるということは、単に業務が便利になるという面だけではなく、開発したシステムが業務に対してフィットしているのかどうかも早い段階で検証することが可能です。一般的にERPなどを導入した場合、本番稼働から3ヶ月程度は安定稼働のために業務とシステムの調整に費やしますが、FileMaker Proで開発を行った機能については、容易に改修が可能ですので、業務とのズレを早急に修正でき、システムの安定稼働へ向けた取り組みにも向いていると言えます。

 また、基幹システムへの機能追加や、ERP導入時における追加機能の開発コストの上昇など、当初の予算を超えてしまうようこともあります。コストが合わないという理由で機能追加を断念してしまうケースなど、実際の現場では耳にすることもあると思います。そのような場合においても、FileMaker Proで追加機能の開発を検討することで、問題をクリアできる可能性も広がってくるでしょう。

ビジネスのスピードにシステムを連動させことが可能

 システムが安定稼働をした後も、企業のビジネスはとても速いスピードで変化していきます。その変化にシステムがついて行けず、ビジネスの変化に後付でシステムを合わせていかざるを得ないケースが存在します。基幹システムは時間をかけて改修ができたとしても、エンドユーザーが利用する機能だけでもビジネスの形態に合わせていかなければ、結果としてシステムがビジネスの足かせとなってしまいます。

 FileMaker Proという柔軟にシステム開発が行えるツールが、基幹システムと連動していれば、ビジネスの変化に対してシステムも追随、あるいはビジネスの変化と共にシステムも変化してゆけるのではないでしょうか。

FileMaker Pro 開発ベンダーとの協業

経験が豊富、あるいは教育を受けたFileMaker Proの開発ベンダーを見つける

 FileMaker Proは、システム開発を直感的に行うことができ、FileMaker Proに関する専門教育を受けていなくても比較的容易にある程度のシステムを開発してしまうことは可能です。しかし、いかにシステム開発が容易に行えてしまうFileMaker Proでも、開発時に知らなくてはならない作法や制限などが存在するのも事実です。これらを知っているか知らないかで、完成するシステムの完成度は大きく変わってきてしまいます。

 これから、自社のシステム開発にFileMaker Proを採用しようと計画していたり、ERPや基幹システムと組み合わせてFileMaker Proを使用したいと考えているような場合は、一度FileMaker Proによるシステム開発に精通したコンサルタントに相談することをお勧めします。

 基幹システムの開発者や情報システム部、ERPメーカーのコンサルタントとFileMaker Proに精通したコンサルタントがタッグを組むことで、エンドユーザーに対してより良いシステムを提供できると考えています。

参考

まとめ

 全12回にわたりFileMaker Proのエキスパート達による連載を続けて参りましたが、FileMaker Proをあまりご存じではなかった読者の皆様には、FileMaker Proの開発効率の良さと適応力の広さ・奥行きから、ビジネスへの優位性を何となくでもご理解いただけたのではないかと思います。また既にFileMaker Proをご利用になっている読者の皆様にとっては、FileMaker Proの良さを再確認していただけたのではないでしょうか。

 FileMaker Proは「口コミ」で広がるソフトウェアであると言われています。FileMaker Proに触れて業務で使用してみた人が、FileMaker Proの良さが分かると他の人に勧めたくなってしまうのでしょう。この連載の読者の皆さんが、FileMaker Proに触れてみたときに、「良いソフトだな」とお感じになりましたら、遠慮はいりません。どうぞ隣の席の人に「FileMaker Proでビジネスの効率を上げてみよう」と教えてあげて下さい。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/2599 2008/09/05 11:24

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング