| 第34回 サードパーティ便利ツール徹底活用 |
| ・開催日時:2008/04/19 18:00-19:30 |
・開催場所:Apple Store Ginza 3F シアタールーム
|
概要:
FileMakerのためだけに存在する、便利なツールがいくつかあります。これらは、外部のツールならではの便利な点も多く、知らなくて損しているということもあり得ます。開発効率を上げるもの、トラブル解析に役立つもの、運用パフォーマンスを変えるものなどなど。まずは「使ってみる」を体験!
|
レポート:
このところ、個人的にFileMaker PHP APIのお勉強に励んでいた。XSLTより記述量が少なくて済み、世の中的に実績のあるPHPであるから、きっとPHPの方が主流になるに違いないとの判断からだけど、ほとんど馴染みがなかったので苦しい日々だった。ゼロから書くほど習熟しなくても、構文を剥がして使える自分流の素材集を作ってしまえば、後は慣れの問題になってくる。てなことで、何とか素材集をモノにしたところで今回のFun Night!開催日を迎えた。こんなことをやっていたので頭の中はweb一色になっていて、フツーにFileMakerについて考えるのが妙に新鮮なような気がしていた。時間ギリギリにApple Store着。今日のテーマは、ここんとこ数回の中では何となくゆったり楽しめそうに思えた(ホントか?)。さて。
第34回 FileMaker Fun Night!「サードパーティ便利ツール徹底活用」 お題は... ・しっかり覚えるFileMaker 〜FileMakerからメールを送ろう〜 ・【特集:サードパーティ便利ツール徹底活用】 ・恒例Tips対決! ・FMスーパーテクニック 〜関連レコードをEvaluateする〜
●しっかり覚えるFileMaker 〜FileMakerからメールを送ろう〜 (竹内さん) FileMakerには「メールを送信」スクリプトステップがあり、フィールド値を参照して動的に宛先やタイトル、本文の内容などを臨機応変に制御しつつメールを送信する事ができます。 例えば本文としてテキストを結果として返す計算フィールドを参照すれば、「○○さん、ご機嫌は如何?」の○○を簡単に切替えられますね。ところでスクリプト以外にもFileMakerには幾つかのメール送信の方法があるのですが。知ってました?
- FileMakerの機能を使う方法(↑コレですな)
- プラグインを利用する方法
- Unix的な処理による送信(○indowsではムリですが)
- web機能で送信(XSLTとかPHPとか)
1. FileMakerの機能を使う方法
FileMakerの機能を使う場合は、メニューから指示する方法と、スクリプトを利用する方法があります。 To、Cc、Bcc、本文、添付ファイルといった要素をフィールド参照や計算値で制御できます。 一方では制限も...
・Fromの指定はできない ・メールクライアント経由の送信になる ・添付ファイルは固定の名前になる
添付ファイルはファイル選択ダイアログによる指定になるので、動的な添付ファイルの切替はできません。 でも、送信直前に書き出しとか他所からの移動といった何らかの手段で、「固定されたファイル名」が付けられた対象ファイルをターゲット階層にセットすれば目的を遂げることは可能です。オブジェクトフィールドに格納されているファイルを書き出して添付する、といった技もアリとのこと。 工夫次第でいろいろできそうですね。
似た方法に、「フィールド内容のエクスポート」スクリプトステップに含まれている「ファイルを添付」オプションを使うものがあります。 これは書き出したファイルを添付したメールを作成するものですが、宛先など他のメール要素の設定はできません。実行後は白紙の新規メールに添付ファイルがセットされた状態、つまり使用者による入力・送信待ち状態になります。
送信実行のタイミングですが、マウス操作で「メールを送信...」をメニューから指示した場合は、直ちに送信されるので注意が必要です。 スクリプトから実行の場合は、すぐ送信するか、または作成のみで止めておくかを選択できます。実データが入ったDBでのテストは特に慎重に。 私の場合は過去お詫びの電話をかける羽目になった経験から、メールクライアントの方を手送信に設定してあります。
2. プラグインを利用する方法 定評のあるプラグイン
・SMTPit http://smtpit.com/ 昔からあります ・Mailit http://www.dacons.net/ こういったプラグインを利用する際は、日本語が通るかよく確認してからにしましょう。
3. Unix的な処理による送信(Mac限定)
敷居はちと高くなりますが、パフォーマンスが良く、ヘッダ項目の操作が自由自在になるというメリットがあります。 具体的には、mailやsendmailコマンドを使います。 「AppleScriptを実行」スクリプトステップの中、具体的なAppleScriptを記述するところに「do shell script...」のように書く訳です。そのMac自体をSMTP(メール送信サーバ)として動作させるわけです。
4. web機能で送信 ・XSLT web公開エンジンに登録したSMTPを使って送信します。 ・PHP 初期状態では、そのMac自身がSMTPとして送信しますが、拡張ライブラリを利用すれば外部のSMTPを使った送信もできるようになります。
次に、送信目的別とか...
・1レコードを1人に送る スクリプトステップの設定で「現在のレコードからの...」オプションにチェックを入れておく。 オプションの設定次第では、対象レコードすべてに送信されてしまうので注意が必要です。 ・同じ内容を多数へ送る 昔はループを使う他なかったのですが、v8 以降はオプション指定だけでこれができるようになりました。 ・「ダイアログなし」オプション ここのチェックの有無で便利さと危険性が大きく変わってくるので、よく考えてチェックしましょう。
大勢に対し一括送信する場合とか...
・シンプルにやるなら、1レコードだけ使ってBccに宛先を併記する。 ・より高度にやるなら、1内容=1レコード=タイトル+本文とし、別テーブルに宛先と送信日時を持たせる。こうすると無駄なデータの重複が無くなります。 送信済フラグなども用意すれば、何かトラブった時の対応も簡単になりそうです。
注意すべきポイント ・対象レコードを良く確認してから。(やらかすと、ホント心臓に悪いので。) ・文字化け回避 webなど、より高度な手法を使う場合は気をつけて、開発中は自分宛に送信してヘッダを確かめましょう。 「Content-Type: text/plain; charset="iso-2022-jp"」←ここがキモです。
最後にデモ。 sevensdoorにおけるイベント告知メールの実例が紹介されました。
●【特集:サードパーティ便利ツール徹底活用】(Shinさん)
この場合、サードパーティーとはFileMaker社以外でFileMakerのために使用するソフトウェアを開発供給する会社のこと。 国内、海外、有償、無償と、いろいろあります。 ちなみに国内では、ジーネクスト社やファクトリー社など。聞いたことありますよね。この辺りなら日本語もOK。 海外ものは何やるにも英語の壁がありますが、そもそもが無償ならダメモトでおひとつ如何?
さて、紹介が始まりまっせ。
・BackMagic:レイアウト移動の「戻る」ボタンを実現する。(SeedCode John) ・Base36 UID System:異なるソリューション間においてもユニークとなる主キー(リレーションの...だよ)を生成する。(NightWing) ・Script Master:Javaコードを実行可能にする。(360Works) ・Super Container:IWPを使って画像管理サーバを簡単に構築する。
有償のものもありますが、どれもとて強力な機能を持っています。
ここでのデモ。 ・BackMagic これはカスタム関数ですな。...って、関数でこんなことできるんですね。 レイアウト切替、タブ切替やステータスエリアの有無を記憶し、自由に戻ることができます。 カスタム関数ということは、自由にコピペして組み込めるということなので、これは便利かも。
・ScriptMaster フィールドにあるJavaコードを実行できるという優れもの。 ただし、Javaの実行環境を整備しておく必要があるのは言うまでもないですが。(MacはOK) Javaの開発力をお持ちの方は、こういった助っ人がいれば更に開発パワーが上がりますね。
・SuperContainer 登場回数多しです。Shin師匠は相当お気に入りのよう。 プラグインではなくwebアプリケーションです。オブジェクトフィールド(英語版ではContainer Field)を代替、というか大幅に拡張する機能です。 画像サーバとして動作し、FileMakerからはwebビューアでアクセスします。 FileMakerで画像を扱う際の、あの「重さ」をほとんど感じないところが凄いです。ついでにサムネールまで生成するところが賢い。 これ、似たようなのを自分で作ろうとしたら相当大変ですよ。 インストールも簡単で評価用DBが付属しているので、触っているうちにFileMaker側の作り方も理解できるという。 ちなみにデモ版は「連続稼働2時間まで」使えるとのこと。
IWP(インスタントウェブパブリッシング)でもサクサク機能するとか。有用な機能もたくさんあるようです。 純正機能として組み込んでくれるとありがたいんですけどねー。でも、どうしても必要なら使うべきでしょうね。それなりのサポートもあるはずだし。
さいごに、Shinさんからお知らせがありました。 スプラッシュは「有限会社」スプラッシュ→「株式会社」スプラッシュに商号変更です。株式化おめでとうございます。 これからも、がんばってくださいまし。
●恒例 Tips対決! ・茂田さん コマンド+D のショートカットは、レイアウトモードではオブジェクトの複製。その直後に対象を動かしてから更に コマンド+D で連続複製(きちんと並んだ状態で)も可能。 スクリプトダイアログでは、スクリプトの複製もできる。
・イトゥーさん(ジーネクスト) Windows環境では、一方のファイルのスクリプト内から他方のファイルのスクリプトを呼ぶとき、デバッガから実行すると参照先のファイルが開いてしまう。 ちなみにMacでは再現せず。Tips(えっ?)
・Shinさん スクリプトの「エラー時に一時停止」チェックボックスは、デバッガのサブメニューからON/OFFすると便利。
●FMスーパーテクニック 〜関連レコードをEvaluateする〜 (今泉さん) ポータルに置いた関連レコードの集計。 「ポータルの値を更新してもレコード確定するまで合計金額が変わらない」これが問題です。 眠たい反応に喝を入れる試みとして、「関連レコードをEvaluate」してみようということで。
いきなりデモ。 見積書にポータルが2つ。 ポータル、つまり関連フィールドの合計を計算するためのフィールドが複数置かれてます。 フツーのSum関数によるものと、Evaluateによるもの2種類を比較する試みです。
合計A:非保存, = Sum (リレーション名::小計フィールド名);普通のSumです。 合計B:非保存, = Evaluate (リレーション名::小計フィールド名; [リレーション名::小計フィールド名]);関連の小計が変化したら小計を更新せよ。 合計C:非保存, = Evaluate (リレーション名::小計フィールド名; [リレーション名::小計の計算根拠となるフィールド1; リレーション名::小計の計算根拠となるフィールド2...]);関連の小計の根拠が変化したら小計を更新せよ。
さて、関連テーブルはざっくりと「単価」「数量」「小計」です。小計の集計=合計とします。
合計A:ポータルレコードが確定するまで合計値は更新されない。 合計B:あれ?Evaluateしているのにいちばんレスポンスが悪い。そのフィールドにカーソルが入らないと更新されない。 合計C:ポータルレコード上で、監視中のいずれかのフィールド値が変更・確定すると、合計が即座に更新される。
ここで、フィールド値が変更・確定...というのは、「単価」「数量」のどちらかを変更して別のフィールドにカーソルを移すということ。別のレコードへ移動しなくても合計は更新されるようです。 「C」のレスポンスがいいのは、ポータル上の小計の根拠となるフィールドの変化をきっかけにして動作するので、必ず計算結果に反映されるということでしょうか。 一方、小計そのものの変化をきっかけにした「B」の場合は、普通のSum () よりレスポンス悪くなってしまうんですね。 これは結構な効果ですね。関連レコードの変化をきっかけにしたEvaluate () は、必ずしも安定動作しないというネガティブがあるのですが、開発者の責任においてきちんと動作を確認して利用するぶんには威力を発揮するかもしれません。ただ、バージョンアップなど考えると、微妙に不安でもあります。
アンケートのご協力、どうもありがとうこざいました! ご意見、ご要望やご感想はこらちからお寄せください。 >> ご意見箱
Special Links: ・ファイルメーカー Web パブリッシング FileMaker API for PHP コンプリートガイド(アスキー) ・FileMaker Pro 大全(ラトルズ) ・「関連レコードをEvaluateする」のサンプルファイル(今泉さん) Special Thanks to: FileMakerまんが:たまみそさん(今回のまんがはこちら) イベントレポート:金丸康明さん 会場ヘルプ:新妻利恵さん 書籍ご提供:有賀啓之さん
|
|
来場のみなさんのご感想:>> Topへ
| 男性 | これからFMを勉強しています。作りたいものは個人向けの顧客管理とかです。やはりAdvancedとか必要ですか?よろしくお願いします。 |
| 男性 | 今泉さんのサンプルファイル待ってます。 |
| 男性 | ありがとうございました |
| HPで見る竹内さんはクリス・ペプラーそっくりですが、実物はそうでもなかったです。イベントの内容としては、いつも駆け足気味なので、もう少し余裕のある構成だといいと思います。 |
| 男性 | 今泉さんのお役に立ててよかったです。 |
| 男性 | 内容が具体的でとても参考になります。 |
| 男性 | 上司からのオーダーに関係していそうな内容でした!帰って、反すうしなければよくわかりませんでしたが... |
| 男性 | サードパーティーのツール紹介がとても面白かったです。FMGateway.jp楽しみにしています。 |
| 男性 | いつもマンガ楽しみにしてます。今日のも最高でした!! |
| 男性 | 久しぶりの参加でしたが、高い水準でこれだけの回数を続けていらっしゃるのはすばらしいと思います。 |
| 男性 | 「メール送信」は良かったです。 |
|
|