AnsweredAssumed Answered

「サーバー上のスクリプト実行」で「終了するまで待つ」にチェックをし...

Question asked by hide2good on Nov 17, 2014
Latest reply on Dec 9, 2014 by FMJ_Support

概要

「サーバー上のスクリプト実行」で「終了するまで待つ」にチェックをしても未完了で処理が継続される

製品

FileMaker Server

バージョン

13v4

オペレーティングシステムのバージョン

WndowsServer2010

問題の内容

FMS13v4にFMP Advanced v3にて接続。

サーバで公開しているファイル内のスクリプトで、サーバスクリプトを含む処理で
サーバの終了を待つにチェックを入れているにもかかわらず、
サーバの処理が完了していない状態で次のスクリプトが実行されてしまう。

問題の再現方法

特にネットワークが遅い場合や件数が多い場合に発生する。

以下のスクリプトを実行すると、Excelから取り込んだデータは、まずテーブルXのフィールド1にセットされ、
スクリプトBでフィールド2にコピーされ、最終的にテーブルYのフィールド3にセットされる。

しかし実際には、テーブルXのフィールド1と2にはExcelの値がセットされるが、テーブルYはフィールド3が
空っぽでテーブルXと同じ件数のレコードが作られる作成されることがある。

しかし、これをデバックモードで実行したり、全置換でダイアログありにすると再現しなくなる。

----------------------------------------------------------------------------------------------------------------
スクリプトA
レコードのインポート(Excel -> テーブルXのフィールド1)
サーバ上のスクリプトを実行(終了するまで待つ)スクリプトB
レコードのインポート(FileMakerのテーブルXのフィールド2 -> FileMakerのテーブルYのフィールド3)
----------------------------------------------------------------------------------------------------------------
スクリプトB
レイアウト切り替え(テーブルX)
フィールド内容の全置換(ダイアログなし)フィールド2にフィールド1の値をセット
----------------------------------------------------------------------------------------------------------------

予想された結果

上記のスクリプトを実行すると、Excelから取り込んだデータは、まずテーブルXのフィールド1にセットされ、
スクリプトBでフィールド2にコピーされ、最終的にテーブルYのフィールド3にセットされる。

実際の結果

テーブルXのフィールド1と2にはExcelの値がセットされるが、テーブルYはフィールド3が空でテーブルXと
同じ件数のレコードが作られる。

表示されたエラーメッセージの正確な内容

-

設定情報

-

対処方法

サーバ上のスクリプトを実行の後に「スクリプトの一時停止/続行(1秒)」を追加する。

Outcomes