このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

FileMaker Pro 5 のプログラムリンク

発言者:田中求之
( Date Tuesday, May 23, 2000 01:49:18 )


以前に別の発言の中で述べたことがありますが、今、ある学会の大会参加申込
のオンライン受付のサイトの構築を行っています。

フォームで入力してもらったデータを確認ページで確認してもらい、確認後は、
本人にメールで発送するとともに、テキストファイルと scriptBase (Scripter
に付属のオブジェクト保存ツール)のオブジェクトとして保存する、という流
れで処理を行っています。

そして、運用者が適当なときを見計らって、ScriptBase に記録しておいたデー
タをファイルメーカーに取り込むという処理を行うようにしてあります。リア
ルタイムでファイルメーカに送り込もうとすると全体の処理が重くなるので、
ScriptBase にオブジェクトとして記録しておき(ちょうど FaceSpan の
storage item と同じように、リスト型でもスクリプトオブジェクトでも、何
でもそのまま放り込んでおけるんです)、非同期で取込みを行う仕様にしたわ
けです。

こんな感じです

  Web Server ---> CGI ----+----> UVJ Mailer --+--> 本人に確認用メール
                          |                   |
                          |                   +--> Bcc で管理用アドレスへ
                          +----> Text に保存
                          |
                          +----> ScriptBase に保存
                                      ||
                                 ScriptBase ----> FMP 5 に取込み

で、ここからが本題なのですが、ScriptBase から FileMaker Pro 5 にデータ
を転送する際に、できるだけサーバ上のマシンでは Filemaker を動かしたく
ないということで、別のマシンで FMP を動かして、プログラムリンクを使っ
てデータを送り込むスクリプトを書こうとしたのですが、AppleTalk 経由でリ
ンクすることができなかったのです。

Choose Application のダイアログにも FileMaker Pro 5 が現われなかったん
ですよね。

FileMaker Pro 5 を使っていない(4.1 でアップグレードは打ち止めにすると
決めたんで)ので、詳しいことがわかっていないのですが、FMP 5 ではプログ
ラムリンクできるようにするために何か特別な設定が必要になったんでしょう
か?

構築中のサイトの方は、今週から本運用に入ることもあって、結局、運用者に、
サーバを止めてファイルメーカーを動かしてもらうことにした(サーバ上で
FMP を動かしてデータ取込みを行うにした)のですが、今後のために、何かご
存知の方がいらしたら、教えてください。

Tanny! さんからのコメント
( Tuesday, May 23, 2000 15:56:14 )

Mac OS 9とファイルメーカーPro 5の環境で確認してみたが、プログラムリン
クはできないようですね。
Mac OS 9からからなのかは確認していないのですが、プログラムリンクを使
用する場合は、アプリケーション単位で共有設定をする必要があります。
(ファインダーの情報を見るの共有...で設定します)
OSのファイル共有のプログラムリンクとアプリケーションのプログラムリン
クの二段階の設定が必要です。(たぶんセキュリティを考慮したものだと思います。)
ファイルメーカーPro 5の共有の情報を見るとプログラムリンクが選択できな
いようになっています。そのため、プログラムリンクは使えません。
Unlimitedでも同様でした。

木下@キー・プランニング さんからのコメント
( Tuesday, May 23, 2000 16:41:56 )

私のところでも、設定的には、OS、アプリともにプログラムリンクの設定
はできましたが、Choose Applicationダイヤログでも表示されませんし、
直接スクリプト上でマシンを指定して書いてもエラーになってしまいます。

利用できない理由はわかりませんが、ファイルメーカーPro 5からはWebコ
ンパニオンを含めたあらゆるミドルウェア経由で、12時間ごとに10ゲスト
以内に限定されるとのライセンス条項になっているので、田中さんのお考
えの利用法だとUnlimited版を購入する必要があります。

5を購入して、4.xにダウングレードして利用することはできるので、5であ
る必要がなければその方が良いかもしれません。

→  ファイルメーカー社のライセンスQ&A

木下@キー・プランニング さんからのコメント
( Tuesday, May 23, 2000 16:48:28 )

あ、ごめんなさい。

よく読まなかったのですが、定期的にデータを送り込むだけだとど
うなるでしょうかね?
ライセンス条項の趣旨からすると、12時間以内に10ユーザを越えて
データベースにデータを送り込めると問題になりそうですが、突き
詰めると判断が難しそうですね。
興味のある人は、窓口に確認すると良いかも。(^_^)

田中求之 さんからのコメント
( Tuesday, May 23, 2000 22:05:40 )

Tanny さん、木下さん、さっそくの情報をありがとうございます。

どうやら FMP 5 のデータベースにプログラムリンクの AppleScript でデータ
を送り込むというのは無理な(あるいはライセンスがらみの問題がある?)よ
うですね。

ファイルメーカー社の製品戦略などの問題があるのはわかりますし、現行のファ
イルメーカーが強力な製品になっているのは認めるんですが、なんていうか、
バージョン3あたりのままの自由度が高い(これはある意味ではライセンスの
グレーゾーンがあるということにはなるんでしょうが)使い方のできるバージョ
ンが残っていれば、意外と使えるんじゃないかと思うんですがねぇ。

MARo さんからのコメント
( Tuesday, May 30, 2000 19:55:34 )

ネットワークごしにFMP5に対してASからリンクできないのであれば、
FMP5の載っているマシンに間接的にメッセージを送るなどの方法で
で幾らでも回避できます。

(1)ブリッジ・アプリケーションを作成する
FMP5に対して値をストアする専用のアプリをAppleScriptで作成し、
そのブリッジ・アプリに対してプログラムリンク。

実際に組んで試してみました。オーバーヘッドは発生しますが、問題ないです。

(2)データの受け渡しにAppleEventを用いない
テキスト書き出し、メール、FTPなどAppleEvent以外の方法でデータを渡す。
# 「なんとかバトラー」シリーズで実績があります(^-^;;

(1)はスピードの低下が、(2)はデータ取り込み間隔をあまり短く設定でき
ないというマイナス面を持っていますが・・・確実に仕事をこなせるため
さほどデメリットにはならないのではないでしょうか?

MARo さんからのコメント
( Tuesday, May 30, 2000 20:01:04 )

こんな感じで・・・

■データ送信元スクリプト(PowerBook G3上で動作)
tell application "bridge.app" of machine "iMacDV SE"
 repeat 100 times
  bridge("テスト", 12)
 end repeat
end tell

■ブリッジスクリプト(iMac DV SE上で動作)
on bridge(rcvMessage, rcvNum)
 tell application "ファイルメーカー Pro"--FMP5です
  tell database 1
   create new record with data {rcvMessage, rcvNum as number}
  end tell
 end tell
end bridge