みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
受付番号の呼出システムを作成しています。
環境はServer12+Pro13(Mac)+iPadです。
Serverに格納したメインファイルをMacのPro13で開き、番号操作をiPadで行うというものです。
Macにて呼出音声を再生したく、オブジェクトフィールドにwmaを格納しています。
流れとしては・・・
iPadにて表示番号指示⇒Macにて番号表示+音声再生
ですが、iPadにて指示を出すとiPad上で音声が再生され、Mac側では反応しません。
イメージとしてはiPadがリモコン、Macがテレビのように使用したいのですが、可能でしょうか?
初心者のため、質問内容もわかりにくいと思いますが、アドバイスいただければと思います。
Offline
あるクライアントが別のクライアントを操作できてしまうのは、FileMakerのようなシステムでは通常目的としていません。
似たような動作は、精々サーバーからの通知程度でしょうか。
そのためそもそもFileMakerに向かない用途ですが、FileMakerで実現する場合を。
-
各クライアントは個々に動作しており、これらに別のクライアントから、
任意の動作を実行させるような機構はありません。
その代わりに、全てのクライアントはデータを共有しているため、これを使った工夫が必要です。
たとえば、"呼び出し音再生タスク"のようなテーブルを用意します。
このテーブルはその名の通り、実行すべき呼び出し音再生のタスクを保持します。
iPadのクライアントから呼び出しボタンが押されたら、
このテーブルに対象の番号と日時などを持ったレコードを作成します。
そしてMac側はこのテーブルを監視します。
こういったデータ監視の場合、OnTimerによるスクリプトの実行が一般的です。
ただし間隔の指定はバランスが難しいです。
あまり間隔が長いと、iPadでボタンを押してからのラグが大きいです。
かといって短いと、Mac側の負荷が大きくなりすぎます。
受付番号呼び出しの目的と、Macの他の用途などによって、適した間隔は変わってきます。
Mac側でOnTimerによるスクリプトでタスクレコードを検出したら、
Mac側でスクリプトによる音声の再生と番号の表示を行います。
そして完了したタスクレコードは、削除するか、完了フラグなどで処理対象から除外します。
考慮すべき点は他にも色々ありそうですが、概ねこういった構成で実現できます。
Last edited by honda (2017-03-09 12:30:15)
Offline
あ、よく考えたら、fmpプロトコルで一発ですね。
■ URL を使用してリモートから共有データベースを開く
http://www.filemaker.com/help/12/fmp/jp … .16.7.html
先ほどの内容は、旧来のFileMakerの場合です。
fmpプロトコルは、実際RPCとして使えるので、今回の目的はあっさり実現できそう。
しかもポーリングも不要なので、こちらの方がはるかに良い実装です。
Offline
fmpプロトコルで呼び出しても実行されるのは呼出元(FileMaker Go)だと思いますが
呼出先の FileMaker Pro を操作する方法があるのでしょうか?
Last edited by Moz (2017-03-09 14:22:16)
Offline
MacにWEBサーバーをたて、
「FileMaker Go] → [WEBサーバー] → [(fmpプロトコル)FileMaker Pro]
という感じにすれば、実行出来るのでは。
Offline
なるほど。
間に何も挟まずに実現できる方法があるのかなと期待しています。
Offline
一発という表現が誤解させてしまいました。qb_dpさんの仰る構成です。
プリントの処理に、レコードによるタスクキューから、
fmpプロトコル叩く方式に変えた案件あったので、端折って書いてしまいました。
実際にはRPC振り分け用のWebサーバー立ててます。
Offline
以前から試してみようかと思っていたことをやってみました。
この方法なら[WEBサーバー]なしで、別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
私の技術不足により、Webサーバー・qb_dp様どちらのやり方も実現させることができませんでした。
たくさんのアドバイスありがとうございました。
Offline
Pages: 1
[ Generated in 0.010 seconds, 9 queries executed - Memory usage: 524.08 KiB (Peak: 528.98 KiB) ]