Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

基幹データベースのサブシステムとしてのFileMaker

ITエンジニアのためのFileMaker講座 第10回(後編)

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2010/03/23 14:00

 本記事では、FileMakerの外部SQLソースとの連係機能(ESS)を使って、基幹システムのデータを利用したサブシステムを開発する方法を紹介します。誰にでも使いやすいFileMakerによって、エンドユーザは自分たちでもある程度の対応ができるようになり、 IT部署もより専門的な領域に専念することができます。

はじめに

 「基幹システムは融通が利かないもの」。基幹システムのユーザの多くが持つ感想のようです。

 筆者もデータベース開発者ですので、「このくらいの追加は簡単でしょ?」といった要望を聞くと心中穏やかではない時もありますが(苦笑)、システムの規模が大きくなり、複雑になるほど、臨機応変な変更が難しくなることは事実です。会社の業務を支える基幹システムともなれば、安定稼働、信頼性を担保する必要があるので、簡単には触れることができなくなります。

 一方、現場では、日々、顧客、取引先から様々な要望が寄せられ、必死になってそれに対応しています。システム的な支援もなく、手作業や目視チェックを繰り返すようなことになると、現場のストレスはかなりのものになります。

 こうしたギャップを埋めるためには、基幹システムのデータを利用したサブシステムを開発することが有効です。誰にでも使いやすいFileMakerでサブシステムを開発すれば、エンドユーザは自分たちでもある程度の対応ができることからストレスから解放され、IT部署もより専門的な領域に専念することができるようになります。

 本記事では、「Webアプリケーションのデータ管理・帳票ツールとしてのFileMaker」で取り上げた「外部SQLデータソース」(以下、「ESS」)を使って、サブシステムを実現する方法を紹介します。

対象読者

  • 基幹システムで現場のニーズに対応しきれないシステム開発者、管理者。
  • IT部署に要望を伝えてもタイムリーな対応をしてもらえずに困っている現場の利用者。

目標

 基幹システム上のマスタとFileMakerテーブルのシームレスな連携をマスターする。

環境設定

基幹システム側

  1. FileMakerに対して公開するマスタテーブル(またはビュー)を定義、目的に合わせたアクセス権限を設定。
  2. ODBC経由のアクセスが可能なように、環境やネットワークを設定。

FileMaker側

  1. 接続先データベースに対応したODBCドライバをインストール。
  2. DSN(データソース名)を設定。

※FileMaker Serverを使えば、すべてのFileMakerユーザがODBC接続を共有することができます。

操作手順

 データ連携の方法を2通り(リレーション、ルックアップ)ご紹介したいと思います。

 FileMakerでは、ESSで取り込んだ外部データソースのテーブルを、FileMakerのテーブルとほぼ同じように取り扱うことができます。

 ここでは、基幹システムの顧客マスタと連携したFileMakerの送付状を作ってみましょう。

外部テーブルとのリレーション設定

 まず、FileMakerで送付状テーブルを作成します。次に、前回の記事と同じ手順で、顧客マスタを外部データソースを登録します。

  1. 顧客マスタのテーブルが存在するデータベースを外部データソースとして登録します。
  2. 顧客マスタ(この例ではテーブル名「customer」)をリレーションシップグラフに追加します。

 次に、外部データソースの顧客マスタと送付状テーブル間にリレーションを設定します。手順は簡単。顧客マスタのプライマリーキーのフィールドから送付状テーブルの外部キーとなるフィールドに向かって、ドラッグするだけで完了です。

 設定したリレーション条件は、リレーション線上にある「=」記号をダブルクリックして確認することができます。

外部テーブルのデータをFileMakerで表示

 このリレーションを使って顧客マスタの情報をレイアウトに表示してみましょう。

 送付状テーブルに関連するレイアウトを表示して、[表示]-[レイアウトモード]メニューを実行してレイアウトモードに切り替えます。

 ステータスツールバーにある「フィールドツール」をレイアウト上にドラッグすると、どのフィールドを配置するのかを指定するダイアログが表示されます。ここでは、リレーション先の顧客マスタの氏名を格納するフィールドを指定します。

 ブラウズモードに切り替えて、顧客IDのフィールドに値を入れると、マスタ上で値の一致する顧客名が表示されます。この状態では、マスタ上のフィールドに直接リンクしているので、(更新権限がある場合)更新を行なえばマスタが変更されることになります。

ルックアップで特定時点でのデータを参照

 常に最新の情報を参照したい場合にはリレーションを使いますが、送付状は、送付ごとに送付時の住所を記録しておく必要があります。こういう場合には「ルックアップ」を使います。

  1. [ファイル]-[データベース]メニューを実行して、[データベースの管理]ウィンドウを開き、[フィールド]タブを選択。
  2. [テーブル]プルダウンから送付状テーブルを選択。
  3. 「住所」フィールド(テキストタイプ)を追加。
  4. [オプション]ボタンをクリックして、フィールドオプション画面上で[入力値の自動化]タブを選択。
  5. [ルックアップ値]チェックボックスをオンに設定。
  6. [開始するテーブル]に現在のテーブル、[関連テーブルからルックアップする]に外部データソースの顧客マスタを指定。
  7. [値のコピー元のフィールド]で顧客マスタ上の住所フィールドを選択。
  8. 開いたダイアログを閉じて、送付状テーブルのレイアウトで、作成した住所フィールドを配置。

 以上で設定完了です。

 再び、顧客IDに値を入れると、住所フィールドにマスタからデータが転記されることが確認できるはずです。

 この住所フィールドの値は、マスタに直接リンクしているのではなく、キーが入力された時点の値を転記しています。転記後、マスタの情報が更新されても、影響を受けません(キーを更新すると、その時点の最新情報が転記されます)。

 常に最新情報を参照したい用途にはリレーション、転記時点の情報を保存したい用途にはルックアップ、という使い分けになります。この両方を使いこなして基幹システムとのデータ連携が実現できるようになれば、あとはFileMakerの機能を存分に生かしたシステムを開発することができます。

基幹システムのデータの補足情報をFileMaker側で保持

 次は、基幹システムにフィールド項目を追加したくても、すぐに対応できない時の対処方法です。

 例えば、非定型のメモ情報として顧客に対する「備考」欄が必要なのに、基幹システムに追加するには時間がかかり、対応のピーク時には間に合わないといったケースを想定してみましょう。

 こういう時は、基幹システムの顧客テーブルに対して、FileMakerに備考用のテーブルを追加して、リレーションを経由してFileMakerテーブルに情報を保管するようにします。

 ポイントは、リレーション条件で、FileMakerテーブル側の[このリレーションシップを使用して、このテーブルでのレコードの作成を許可]、[他のテーブルでレコードが削除された時、このテーブルの関連レコードを削除]オプションをオンにすることです。この設定で、備考欄を記入するとFileMakerテーブルに自動的にレコードが作成され、FileMaker上で親レコードが削除されると関連する備考レコードも削除されるようになります。

 追加したFileMakerテーブルをレイアウトに配置します。サンプル画面では分かりやすいようブロック分けをしましたが、普通に配置すれば、エンドユーザがどこのデータベースに格納されているかを意識することはありません。

 新しいフィールド項目や機能を基幹システムに反映するためには、格納される情報の内容や業務フローなどを詰めておく必要があります。一旦、FileMakerで運用することで緊急対応ができるだけでなく、基幹システムに機能を盛り込む際の仕様確認を兼ねることもできます。

FileMaker外部のデータベースと連係するポイント

 ESSはSQLを書かずに使えるというメリットがある反面、SQLの記述によるチューニングを行なうことができないというデメリットもあります。速度やネットワークトラフィック面でシビアな要件がある場合は、事前にテストなどを通じて検証を行なう方が良いでしょう。

 FileMakerの外部とのデータ交換方法としては、ESS以外に、テキストのインポート/エクスポート、ODBCインポート/[SQLを実行]スクリプト、ODBC/JDBCアクセス、XMLやPHPを経由したWeb APIといった他の手段もあります。ESSで満たせない要件がある場合には、それらを検討すると良いでしょう。

 運用上の注意としては、基幹システムとFileMakerの役割分担を明確にしておくことです。IT部署に頼まなくてもできるからと、何でもFileMakerで実装して、無管理状態になることは決して良いことではありません。エンドユーザがシステム作りにのめり込んでしまっては、本業がおろそかになりますし、作成者個人の主観や好みが強く出過ぎてしまう弊害もあります。

 また、FileMakerが扱いやすいからといって、管理者権限でファイルを公開して、誰でも変更ができるようにはしないことです。FileMakerはアカウントごとに詳細なセキュティ設定が可能ですので、部署や個人によって、何を任せて、何を制限するのかを決めておくようにしてください。データベースを共有するには、道具に関係なく、ある程度の運用ルールは必要です。

まとめ

 2回にわたって紹介した記事は、Webアプリケーション、基幹システムの不得手とする部分を、帳票作成や柔軟性で優位性のあるFileMakerと連携させることで解決を試みたものです。

 今でも、技術のトレンドや製品ブランドでシステム環境の採否を判断する傾向が残っていますが、技術やブランドそのものがビジネスの生産性を高めてくれるわけではありません。自分たちの必要とするニーズを理解して、ソフトウェアも適材適所に用いることが重要です。

 経済状況の展望が不透明な現在、現場で柔軟に対応することができるシステムを持つ組織は、そうでない組織に比べて大きな優位性を持つことができるでしょう。

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 木下 雄一朗(キノシタ ユウイチロウ)

    株式会社キー・プランニング 代表取締役。 コンサルティング会社勤務を経て、ソフトウェア開発会社キー・プランニングを設立。もと尺八演奏家という異色の開発者。クライアントの本当のニーズを見極めたコンサルティング、システム開発を提供することをポリシーに日々奮戦中。FileMaker 9 Certifie...

All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5