初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2017-03-09 17:20:13

qb_dp
Member

【情報】別PCのFileMakerのスクリプトを実行。

(別のトピックにとうこうしたモノですが、面白いので新規トピックで投稿します。)

別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

#2 2017-03-09 17:40:58

qb_dp
Member

Re: 【情報】別PCのFileMakerのスクリプトを実行。

フィールド:Source に

<script>
location.href = "fmp://$/{ファイル名}?script=receive&$argu=012345あいうえお";
</script>

があるままだと、レコード移動やその他のタイミングで実行されるので、

テーブル:Command に フィールド:Code を追加。

送信側実行スクリプトは、

フィールド設定 [Command::Source; Command::Code]
フィールドへ移動 []

こうしておき、

受信側スクリプトでは、以下のようにして フィールド:Source を初期化する。

フィールド設定 [Command::Source; "(´・_・`)"]
フィールドへ移動 []

Offline

#3 2017-03-10 09:25:11

honda
Member

Re: 【情報】別PCのFileMakerのスクリプトを実行。

おお、面白い。これならGoから気軽に、別クライアントでスクリプト動かせますね。

これ原理としては、フィールドの変更ならクライアントで各々再評価されるのを利用して、
ターゲットのWebビューアでdataスキームに渡す値を更新する、というものですよね。

今のところ、私の手元では特に問題はなさそうです。
受信側にWebビューアが必須なのと、仕組み上グローバル格納が使えないこと、
そのため複数台絡んだケースの対応が難しいなど制約はありますが、
Webサーバー要らずなのは素晴らしいです。

潜在的な問題があるとしたら、やはり複数台のケースで、
たとえば数百台ある環境だと、フィールドの変更の検出がバッティングしそうです。
手軽さ優先なので、そんな環境ならWebサーバー立てればいいんですが、
2~3台でもタイミングや遅延次第でバッティングはありそうです。

Offline

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.013 seconds, 9 queries executed - Memory usage: 506.55 KiB (Peak: 517.69 KiB) ]