みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
(別のトピックにとうこうしたモノですが、面白いので新規トピックで投稿します。)
別PCのFileMakerのスクリプトを実行。
動作検証は、少なめです。何か予期しない不具合があるかも?
テーブルを一つ作成し、
テーブル:Command
フィールド:Target
フィールド:Source
ターゲットのテーブルと
デカルト積[X]のリレーションを設定します。
ターゲットのテーブルがあるレイアウトのヘッダーに
WEBビューアを設置
式:
If ( FilterValues ( Get ( システム IP アドレス ) ; Command::Target ) ; "Data:text/html," & Command::Source ; "" )
iPad(FileMaker Go)で、
フィールド:Target
値:操作したいPCのIPアドレス
フィールド:Source
値:
<script>
location.href = "fmp://$/{ファイル名}?script=receive&$argu=012345あいうえお";
</script>
上記のようにすると、
フィールド:Target
または、
フィールド:Source
を書き換えるたびに、ターゲットのPCで「"fmp://$/{ファイル名}?script=receive&$argu=012345あいうえお"」が実行されます。
Offline
フィールド:Source に
<script>
location.href = "fmp://$/{ファイル名}?script=receive&$argu=012345あいうえお";
</script>
があるままだと、レコード移動やその他のタイミングで実行されるので、
テーブル:Command に フィールド:Code を追加。
送信側実行スクリプトは、
フィールド設定 [Command::Source; Command::Code]
フィールドへ移動 []
こうしておき、
受信側スクリプトでは、以下のようにして フィールド:Source を初期化する。
フィールド設定 [Command::Source; "(´・_・`)"]
フィールドへ移動 []
Offline
おお、面白い。これならGoから気軽に、別クライアントでスクリプト動かせますね。
これ原理としては、フィールドの変更ならクライアントで各々再評価されるのを利用して、
ターゲットのWebビューアでdataスキームに渡す値を更新する、というものですよね。
今のところ、私の手元では特に問題はなさそうです。
受信側にWebビューアが必須なのと、仕組み上グローバル格納が使えないこと、
そのため複数台絡んだケースの対応が難しいなど制約はありますが、
Webサーバー要らずなのは素晴らしいです。
潜在的な問題があるとしたら、やはり複数台のケースで、
たとえば数百台ある環境だと、フィールドの変更の検出がバッティングしそうです。
手軽さ優先なので、そんな環境ならWebサーバー立てればいいんですが、
2~3台でもタイミングや遅延次第でバッティングはありそうです。
Offline
Pages: 1
[ Generated in 0.013 seconds, 9 queries executed - Memory usage: 506.55 KiB (Peak: 517.69 KiB) ]