特集 ニュース コラム Plug-in・カスタム関数 関連製品・サービス 書籍
活用事例 コミュニティ 求人情報
 

Troi Activator Plug-in

FileMakerのプラグイン開発社のなかでも最大手であり、多数の有用なプラグインを販売しているTroi社の製品から、リモートでスクリプト実行ができる便利なプラグインを紹介します。



発売元:Troi Automatisering
URL:http://www.troi.com/software/activatorplugin.html

インストール方法

サイトからファイルをダウンロードして解凍します。フォルダを開くと、「Mac Plug-in」「Windows Plug-in」といったプラグインが入ったフォルダがあるので、中身をFileMakerフォルダ内の「Extensions」フォルダに入れます。(ver6は「ファイルメーカー機能拡張(Mac)」「System(Windows)」フォルダにそれぞれ入れます)

使ってみました

サンプルファイルが大量についてくるので、まず動かしてみましょう。
All Activator Exampleというファイルを開いてみましょう。
・スケジュールイベント
・リモートイベント
・フィールド内容の評価
・(Macのみ)スリープ

Activator Plug-inの操作は以下のような書式で実行することができます。
※詳細な引数や例はOverviewというファイルに格納されています。

例:スケジュールイベントの実行
(スクリプトに以下のようなスクリプトステップを追加します)

フィールド設定[ 結果フィールド、
「 External("Actr-ScheduleEvent",
"スイッチ|日付|時刻|ファイル名|スクリプト名|ID|任意のテキスト" )」

スケジュールイベント(Actr-ScheduleEvent)

日時指定やまたはx分後にスクリプトを実行するといった指定ができます。指定時間ごとのバッチ処理など、
「日付」「時刻」などの引数はグローバルフィールドに入れておくなどすると便利でしょう。
定時のスクリプト実行というだけであれば、oAzium Eventsのほうが設定方法が豊富であり、使い勝手がよいとも
いえます。が、Activatorにはリモートイベントの実行という機能があるので、「定時にリモートマシンのスクリ
プトを実行」というニーズがある場合はActivatorが便利でしょう。

リモートイベント(Actr-SendRemoteEvent)
ネットワークで共有されたファイル上のスクリプトをリモートマシンで実行します。
プラグインをインストールしてある、ネットワーク上のマシンを探して、"Actr-SendRemoteEvent"という外部関数
を使ってスクリプトを送信します。

External("Actr-SendRemoteEvent", "-unused|" &
IPアドレス & "|" &
暗証ID & "|" &
ファイル名 & "|" &
スクリプト名 & "|" &
ID & "|" &
任意のテキスト)

これで、指定したIPアドレスのマシンにあるスクリプトを実行することができます。

図1 共有ファイルにアクセスしているユーザのリストが表示されている(Macからみたところ)


図2 図1上段の「win」クライアントにメッセージを送るとこうなる。



イベント監視用のファイルを常に開いておけば、監視用ファイルのスクリプトを経由して、開かれていない
ファイルのスクリプトを実行することができます。
例:マシンAで開かれている監視ファイルから、マシンBで共有ファイルとして開いた監視ファイル経由で
  マシンBのローカルファイルCを開く など


フィールド内容の制限
フィールドからカーソルが離れた瞬間にデータ内容を評価しスクリプトを実行することができます。
これはスケジュールイベントと同じ外部関数「Actr-ScheduleEvent」を使います。
制限したいフィールドの「入力値の制限」オプションを「計算して求める」として、以下のような計算式を
入れておきます。

External("Actr-ScheduleEvent",
" -addSingleEvent|" & Get(日付) & "|" & Get(時刻) & "|" & Get(ファイル名)
& "|判定用スクリプト" & Rec ID & "|任意のテキスト")

判定用スクリプトには、

If[条件に反していたら]
カスタムダイアログを表示「このデータは入力条件にあっていません」
End if

といった、カーソルが離れたときに実行したい内容を記述しておきます。




(MacOS8-9のみ)スリープ
ファイルメーカーで日時指定をしてコンピュータをスリープさせることができます。
以下のスクリプトステップを実行すると、指定した日時までコンピュータをスリープさせることができます。

フィールド設定「任意のグローバルフィールド」「External("Actr-Sleep", "-tilldatetime|" & 起動日 &"|" & 起動時刻)」

 

日本語対応について

ファイル名、スクリプト名ともに日本語でもOKです。ただし、サンプルファイルはフォントの関係で文字化けしますので、修正してください。


ver7対応について

完全対応していますが、サンプルコードについては、TextToNum関数をGetAsNumber関数に置き換えるようにしてく
ださい。詳細はFMP7ConversionNote.htmに記載されているので、必ず読んで修正してみてください。
(部分的にStatus関数の記述が残ってしまっていますが、ver7ではすべてGet関数になりますのでご注意!)




[2004/12/3]
[有限会社ジェネコム 村上ゆりか]

 

FMPro.jpについて |  利用規約 |  ポリシー |  お問い合わせ