Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

Webアプリケーションのデータ管理・帳票ツールとしてのFileMaker

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

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

 本記事では、Webアプリケーションの管理ツールとしてFileMakerを使うことで、エンドユーザでもカスタマイズが可能なシステムを実現する手順を紹介します。

はじめに

 今日、ECサイト、CMS、ブログ、SNSなど、様々なWebアプリケーションが公開、あるいは販売されています。そうしたWebアプリケーションでは、利用者向けの機能だけではなく、管理機能もWebアプリケーションとして実装されているものが大半です。

 既成の機能ですべての業務フローがカバーされていれば問題ありませんが、開発言語やそのシステムの仕様に精通していなければカスタマイズを行なうことは困難なため、現場のニーズに柔軟に対応する必要がある用途では難がありました。

 本記事では、Webアプリケーションの管理ツールとしてFileMakerを使うことで、エンドユーザでもカスタマイズが可能なシステムを実現する手順を紹介したいと思います。

対象読者

  • Webアプリケーションの利用者、開発者(FileMakerの使用経験は必要ありません)

目標

 Webアプリケーションの中でも、登録情報のメンテナンスや帳票の出力を求められる局面の多いECサイトのシステムに、FileMakerで商品マスタ画面、注文書の印刷機能を追加してみましょう。

 ECサイトの題材としては、日本発のECオープンソース・システム「EC-CUBE」を選びました。EC-CUBEは、データベースとして、オープンソース界の雄であり、FileMakerからの接続が可能なMySQLを利用することができます。日本語の情報が充実していて、データベース定義資料が公開されていることも、今回のような試みには好都合です。

 FileMakerがどのような形でWebアプリケーションが不得手とする機能をカバーすることができるのかを見ていきましょう。

環境設定

 まずは、EC-CUBEをインストールします。

 開発元のインストール手順通りになりますが、筆者のMySQL 5.0.19-log環境では、データベースのエンコーディングをUTF-8にしても日本語が文字化けするため、/data/class/SC_DbConn.phpファイルの66~68行目のコメントアウトを削除して下記のようにすることで問題を回避しました。

66:        if (DB_TYPE == 'mysql') {
67:            $objDbConn->query('SET NAMES utf8');
68:        }

 FileMakerは30日間全機能を試すことができる無料評価版が公開されています。この記事で紹介している内容は評価版でも試すことができるので、ダウンロードして実際に試してみてください。インストールは、ウィザート形式の指示に従うだけで完了します。

 FileMakerからMySQLに接続するためには、「外部SQLデータソース」(以下、「ESS」)の機能を使用します。ESSはODBC経由でアクセスするため、MySQLのODBCドライバをインストールして、DSN(データソース名)の設定を済ませておきます。

 ESSの対応するデータベース、ODBCドライバの条件については、FileMaker社のページをご参照ください。

操作手順

外部のデータソースとの連携

  1. [ファイル]-[管理]-[外部データソース]メニューを実行して、[外部データソースの管理]ウィンドウを開く。
  2. 図1
    図1
  3. [作成]ボタンをクリックして、タイプに[ODBC]を指定し[DSN:]行にある[指定]ボタンをクリック。
  4. EC-CUBEに接続するためのDSNを選択します。
  5. データソース名(FileMaker内で識別のために使う名前)、ユーザ名、パスワードなどを指定して、[OK]ボタンをクリック。
  6. 図2
    図2
  7. [ファイル]-[データベース]メニューを実行して、[データベースの管理]ウィンドウを開き、[リレーションシップ]タブを選択。
  8. リレーションシップグラフ画面の左下にある「テーブル追加」ボタンをクリック。
  9. [データソース]プルダウンから先ほど作成したデータソース名を選択。
  10. データソース内のテーブル一覧が表示されるので、ここでは商品マスタの「dtb_products」テーブルを選択。
  11. 図3
    図3

 これで、EC-CUBE内の「dtb_products」テーブルをFileMaker内にあるテーブルと同じように扱うことができるようになりました。

レイアウトの作成

 次に、このテーブルを使ったレイアウトを作ってみましょう。

  1. [表示]-[レイアウトモード]メニューを実行。
  2. [レイアウト]-[新規レイアウト/レポート]メニューを実行して、新規レイアウト/レポートアシスタントを起動。
  3. [レコードを表示]プルダウンから「dtb_products」を選択して、レイアウトタイプは「標準」を選択。

 以降はウィザードの指示に従って、表示するフィールド、レイアウトスタイル(デザイン)を選択すれば、新しいレイアウトが作成されます。

図4
図4
  1. [表示]-[ブラウズモード]メニューを実行。

 この段階では、指定したフィールドが上下に並んだだけのレイアウトになるので、好みに合わせてレイアウトを編集します。FileMakerではドローソフトのような操作感で簡単にレイアウト編集ができます。

 EC-CUBEに登録されている商品画像は、マスタにはファイル名だけが保存されています。ファイル名だけでは見づらいので、画像も表示してみましょう。FileMakerには、レイアウトの一部にWebコンテンツを表示する「Webビューア」機能があるので、これを使います。

  1. [表示]-[レイアウトモード]メニューを実行。
  2. ステータスツールバーにある「Webビューアツール」をクリック後、レイアウト上で画像を表示させたいエリアを指定。
  3. [Webアドレス]欄に、アドレス、パス情報とファイル名を連結してURLを生成する計算式を指定(「dtb_products::main_list_image」はdtb_productsテーブルのmain_list_imageフィールドの値を参照する意味になります)。
  4. 図5
    図5
  5. [表示]-[ブラウズモード]メニューを実行。

 レコードを移動すると、URLが動的に生成されて、画像が切り替わることが確認できるはずです。

 こうして画像表示の追加とレイアウト調整を行ったのが、下記のサンプル画面です。

図6
図6

 FileMakerはひとつのレイアウト上で、検索、閲覧、更新、印刷などの操作を実行することができます。Webアプリケーションのように専用の検索画面や編集画面などに移動することなく、シームレスな操作が可能です。

 商品価格を一律で割り引くなど、複数のレコードを編集したい時にも、ブラウザで商品価格を一個ずつ編集するのとは異なり、関数を使った一括編集もできるなど、FileMakerの機能をそのまま利用できるのも大きなメリットです。

注文書の作成

 次に、EC-CUBEの注文書をFileMakerで再現してみましょう。

 外部データソースの登録は済んでいるので、リレーションシップグラフ内のテーブル追加以下のステップだけを行ないます。

  1. 注文情報の「dtb_order」テーブルを追加。
  2. 注文明細情報の「dtb_order_detail」テーブルを追加。

 「dtb_order_detail」にはプライマリーキーが定義されていないため、FileMakerがプライマリーキーを確認してきます。EC-CUBEでは、注文番号と商品コードによって明細行がユニークになるようなので、ここでは注文番号と商品コードの複合キーという指定をしました。

図7
図7
  1. 注文情報のプライマリーキー(「dtb_order」テーブルの「order_id」フィールド)と注文明細情報の外部キー(「dtb_order_detail」テーブルの「order_id」フィールド)の一致条件でリレーションを設定。
  2. 図8
    図8
  3. 「dtb_order」テーブルに対するレイアウトを追加。
  4. レイアウトモードでステータスツールバーにある「ポータルツール」をクリックして、明細行の表示エリアを指定。
  5. 5で指定したポータルエリア内に「dtb_order_detail」テーブル内のフィールドを配置。
  6. 図9
    図9

 印刷を意識して、レイアウトモードで調整を加えたものが下記のサンプル画面です。

図10
図10

 Webアプリケーションでは、印刷帳票は、PDF出力で実装される例が多く、エンドユーザが帳票を作ったり、変更することはできません。また、CSVダウンロード後に別アプリで印刷という形だと、操作ステップが多く、頻度が高い処理では担当者の負担が重くなります。FileMakerによる帳票印刷を併用することで、迅速で、柔軟な対応が可能になります。

まとめ

 言うまでもなく、Webテクノロジーは素晴らしいものですが、開発者が作ったシステムをユーザは使うだけという役割は分離、固定化されてしまいます。業務システムでは、現場でないと分からない事情、ニーズもあり、可能なものは現場で対応する方が良いことが多々あります。

 「Webアプリケーションだから」だからといってブラウザに固執せず、適材適所なソフトの組み合わせで生産性アップにつながるという参考になれば幸いです。

 次回は、基幹データベースのサブシステムとしてFileMakerを活用する例を紹介する予定です。

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

著者プロフィール

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

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

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