2013-01-24

FileMaker IWP (インスタントWeb公開) で一覧を表示させる方法

 前回の記事で、インスタントWeb(IWP、Instant Web Publishing)では、一度にリスト表示できるレコード件数が 25 件という制限があるため、リストレイアウトは向いていないというような内容に触れました。

 そこで今回は、FX.php と Web ビューアを使うことによって、IWP 上でリスト表示させる実行方針について紹介します。

 FX.php による検索操作方法は、FX.php のマニュアルをご覧ください。
 以下は、それ以外の部分について簡単に説明します。


1. IWPを使ったページのリロードと印刷方法の情報を流用して、FileMaker Pro レイアウト上に Web ビューアを一つ置き、検索実行用の php ファイルを指定します。

 初期状態は、以下のようにパラメータは無しで指定します。




2. 次に、レイアウト上の“検索”ボタンが実行されたら、指定条件(上記の例では[g氏名fr検])に入力された値をパラメータとして Web ビューアに渡して処理を実行するようにスクリプトを作成します。

 以下は、スクリプト内のWeb ビューアの設定で、URL へ移動するオプションを選択し、検索文字列として $str に格納された検索条件を付加しているところです。


 これにより、“検索”ボタン実行時に、上記の URL に切り替わり、指定された php ファイルの中で検索条件を取り出して FX.php で検索を行い、その結果をリスト形式で展開すれば、その結果リストを照会したり、印刷したりすることができるようになります。


3. ここまで設定し、IWP で表示を確認すると、以下のようになります。。
 ページ上のオレンジ色で示された部分が検索条件指定フィールド、ピンク色で示された部分が Web ビューア(IWP 上ではインラインフレーム)となります。



 [氏名]に「川」を入力して、“検索”ボタンを実行し、「川」を氏名に含む人物を一覧させた場合のイメージは、たとえば以下のようになります。

ご覧のように、氏名の一覧表示が可能となります。

データ作成でズボラをかましてしまいましたので、[氏名]と[ふりがな]に同じものが表示されていますが、これらのフィールドはそれぞれ別フィールドとなっております。




 ピンク色で示したインラインフレームを印刷するようにすれば、一覧をプリンタに出力することができます。


以上

(亀澤)


【IWP関連記事】

【弊社のIWP関連製品・サービス】






2013-01-17

IWP(インスタントWeb)導入の可否

 インスタントWeb(IWP、Instant Web Publishing)とは、FM社公式サイトによると「さまざまなフォームをワンクリックでWebに公開すること」。
 ワンクリックはさすがに言い過ぎと思うが、FileMakerで作成したデータベースのデータを非常に簡単にWeb公開できるのは事実だ。

 同時利用者が数十でデータの照会と検索だけでことたりるシステムであればIWPは有力な選択肢となりうるし、そのような用途であれば海外で多くの導入事例がある(後述)。
 にもかかわらず、FileMaker社(FM社)のIWPに対する立ち位置は微妙な感じ。

 試しにFMの導入事例が紹介されている日米のFM社のWebサイトの「FileMaker カスタマ・ヒストリー(FileMaker Customer Stories)」と銘打ったページを見てみると、iPadやiPhoneの導入事例は数多くあるのに対し、IWPに関する事例が非常に少なく、日本のサイトで1つ、米国のサイトで2つしか見つからなかった。
 これはFM社のIWPに対する立ち位置が微妙なるがため、と思われる。なぜか? 

 上述のように、同時アクセスユーザが数十、かつレコードの検索と照会だけであれば有用なIWPも、いったん、データの入力・更新が要求されると、多くの制約が発生してくる。

IWPの制約

「filemaker IWP」でググると、Top 10 Instant Web Publishing No-No’sなるページリンクが表示される。
 このページは「IWPの禁忌TOP10リスト」とも訳すべきページで、FileMakerではできるのにIWPでは互換性がないまたは実用に適さない機能のTOP10をリストしている。 

 以下意訳、つか編訳。
  1. 新規ウインドウは開けない
  2. 動的値一覧は使うな ― 動作しないことは無いが遅いので使わないが吉
  3. リストレイアウトは使うな ― 使えるが25行しか表示されない、なんでポータルを使おう
  4. 角が丸いオブジェクトは表示不可 - 角丸ボタンは四角で表示される
  5. 条件付書式は機能しない
  6. スクリプトトリガも機能しない
  7. ダイアログ表示のスクリプトも不可 - なんでグローバルフィールドにメッセージ表示するとか
  8. 自動保存オプションも不可
  9. Excel/Word/PDF等のファイルの挿入も不可(fx.phpを使って無理矢理サーバへファイルアップしたり
  10. レコードのインポート/エキスポートも不可
※IWPの制約については、以下のリンクも見てね
FileMaker Instant Web Publishing, Part I: Is IWP Right For You? (英語)


日本はともかく、外国はどうなん?


 上記の制約をみると、IWPの採用に二の足を踏む開発者やWeb担当者は多いと思う。
 減点法ベースの日本人は家電でもAV機器でも、機能がテンコ盛りのモノを好む。目的指向ではなく、減点指向。

 ただ、HTML、JavaScriptやPHPを1行も書かずにWebアプリを作成できる可能性を端から排除してしまうのは、開発コスト、FMクライアントライセンス費を考えるとあまりに惜しい、状況もある。
 では目的指向的、合理主義的な米国ではどうか。

 下図は「FileMaker インスタントWeb」(青)と「FileMaker Instant Web」(赤)の検索件数の比較である。
 青線が100%日本で実行されていてこれが1であるのに対して、赤線は100%米国で実行されていてこちらは23、つまり日本と米国ではIWPへの関心に極端に差があることになる。





 では実際の導入状況はどうか、ググって見た。
 URLに「"fmi/iwp"」を含むサイトを言語別/地域別で検索してみると以下のような結果となる(2013/1/22現在)。

言語別IWP導入状況
サイト言語 サイト数
日本語 220
英語 4,040
全言語 5,180
地域別IWP導入状況
地域 サイト数
日本 448
米国 2,190
全地域 5,180
注:図にはイントラネットや検索エンジン忌避対策を施しているサイトは含まれない。


 対英語比では約18倍、対米国比で約5倍(人口を考慮すると約2倍)、導入状況に差がある。

で、どういうときに使うん?

実際問題、IWPはどういうときに使えるのか。
 「アプリの性能よりも開発工数を抑え、コストを抑えることが第一」、「Webアプリを社内開発したいが、PHPやASPXの技術者を養成または雇用するのは厳しい」という方、以下を参考にしてみてはいかが。
  1. 高速なアプリを求めない
  2. IWPはFileMakerのスクリプト(実行可能スクリプトステップに上記の制限あり)でしか制御できないのため、実行速度を上げるたの作り込みができない。IWPに関する経験値が不足している場合、プロトタイプを作成して最低限の実行速度が出るかテストを行うことも必要。

  3. 高度な可用性を求めない
  4. 24時間/365日稼動みたいなシステムには使用しない。何かあったら、関連サービスを再起動できるような余裕がないと…

  5. 大規模なシステムにならない
  6. レコード数が数百万を超えるようなものは…、避けよう。

  7. Coolなユーザインタフェイスを求めない
  8. 上述のような制約があり、またJavaScriptをページに埋め込みブラウザを制御するようなこともできない(WebViewerを使うという抜け道がないこともないが…)。GoogleのようなCoolなインタフェイスを求めても無理。
 上記条件に合致し、IT責任者が今回はIWPの導入が適切と判断しても、「黙って俺について来い!」といえないような環境では、本開発の前にプロトタイプを作成して、関連部署のコンセンサスをとることも必要となるのだろう。


世界の大学や公共機関で使われるIWP

 ということで、目的合理性を解する大学、研究機関や政府・公共機関でIWPが使われていたりする。



以上

(土屋)



参考サイト:
全国90拠点、グループ社員5,000名が利用するWeb社内販売システム(日本のIWP導入事例)
Coach Source — A Fountain of Wisdom(米のIWP導入事例)
FileMaker Instant Web Publishing, Part I: Is IWP Right For You?
FileMaker Instant Web Publishing, Part II: Five Top Tips for Success



【IWP関連記事】

【弊社のIWP関連製品・サービス】

2013-01-16

FileMaker IWP (インスタントWeb公開) 上で JavaScript を使い、ページのリロードと印刷を行う方法

 FileMaker Pro/FileMaker Pro Advanced, FileMaker Server Advanced で インスタントWeb公開(Instant Web Publishing, 本記事では IWP で統一)を行うと、FileMaker Pro で開発したレイアウトをそのまま Web に公開してデータベースの更新や照会ができるようになります。

 現行で最新バージョンとなっている FileMaker 12 では、FileMaker Pro/FileMaker Pro Advanced の場合は、最大 5 ユーザまで Web での同時使用が可能となっており、これに対し、FileMaker Server Advanced の場合は最大 100 ユーザまで Web での同時使用が可能です。


 ただし、FileMaker Pro 本体に比べると、IWP には仕様上の制限があるため、開発時にそれらの制限を十分に考慮する必要があります。

 IWP でできないことは以下のとおりです。
  1. オブジェクトフィールドへのファイルのアップロード
  2. データのインポート/エクスポート
  3. FileMaker Pro のデータから PDF ファイルや Excel ファイルを作成
  4. FileMaker Pro のレポート閲覧
  5. レイアウト、レポート、スクリプト作成
  6. 警告音、メッセージポップアップ表示
  7. 印刷コマンド実行
 また、この他にもスクリプトトリガ、スクリプトステップ、条件付き書式などでも IWP に対応していない動作がありますので、FileMaker Pro 本体と IWP を併用する形でデータベースを運用する場合は、FileMaker Pro 側と Web 側での動作の違いに気を付けながら開発を進める必要があります。


 さて、今回は、上記に示した IWP の仕様制限のうち、1. オブジェクトフィールドへのファイルのアップロード、および 7. 印刷コマンド実行について対応方針を考えてみることにします。


【オブジェクトフィールドへのファイルのアップロード】

 オブジェクトフィールドそのものへファイルをアップロードする代わりに、php を使って Web サーバ上にファイルをアップロードし、そのファイルへのリンクを FX.php を使って FileMaker Pro データベースに書き込みます。

 FileMaker Pro 側の設定は、レイアウト上に以下のような Web ビューアを配置し、アップロード処理および FX.php 書込み操作を記述した php ファイルを指定します。



 php ファイルは Web サーバ上に配置してください。また、[Web ビューア内容とのインタラクションを許可] チェックボックスには必ずチェックを入れておきます。

 そのあと、IWP でデータベースを開くと、たとえば以下のようなページが表示されます。


 イメージとしては、ファイルアップロード後は、矢印が示すフィールド [FileURL] にそのファイルへのリンクを表示させるようにしたいわけですが、FX,php はバックグランドで操作されますので、ここは動的には変化しません。

 これを、JavaScript コマンドをページアップロード後に呼び出されるように組むことで、ページをリロードさせて反映させようというわけです。

 画面上に、「この部分が Parent」と表記しておりますが、Web ビューア(ピンク色)を自分自身とした場合、外のエリア(紫)が親 (parent) となりますので、JavaScript では parent に向けて処理をするようにします。



 parent.location.reload();


リロード後のイメージ



 FX.php を使った FileMaker Pro データベースへのデータ書込の話題は、以下の記事群をご覧ください。

【印刷コマンド実行】

 FileMaker Pro の印刷コマンドは、IWP では実行できません。
これでは、顧客一覧、見積書、請求書などの帳票を IWP で印刷したいときに不具合があります。

 この対策として、上記のファイルアップロード例と同じ要領で Web ビューアを配置し、印刷ボタンを配置したページを指定します。





 ファイルには、フォームの 印刷ボタンをクリックすると、JavaScript で以下のような関数を呼び出し、 parent ページを印刷するようにします。



function reportprint()
{
parent.focus();
parent.print();

}



 これにより、Web ブラウザの印刷ダイアログが表示されます。



 上図のように、印刷ボタンの部分もページとして印刷されてしまいますので、Web ビューアを配置する場所は 2 ページ目の先頭あたりにくるようにし、印刷時は 1 ページ目を選択するようにすると都合が良いでしょう。

以上

(亀澤)



【IWP関連記事】

【弊社のIWP関連製品・サービス】