3 返信 最新の回答 日時: Feb 26, 2010 11:48 AM ユーザー:mune

    FileMakerはダイアログメッセージでエラーを表示しているのに対し、エラーコードが0を返すため、エラーの処理をスクリプトで解決出来ない。

    mune

      タイトル

      FileMakerはダイアログメッセージでエラーを表示しているのに対し、エラーコードが0を返すため、エラーの処理をスクリプトで解決出来ない。

      フォーラムに投稿

      スクリプトステップ "ファイルを挿入" を実行するとき、当該ファイルが開いていると次のようなダイアログメッセージがでます。

      "このファイルはロックされているか、または使用中です。"

      このような場合、"全スクリプト終了" 処理をさせたいのですが、 

      Get(最終エラー)は0を返してしまい、エラー処理の手立てが思い浮かびません。

      良い方法の御教授お願いいたします。

       

       

        • 1. Re: FileMakerはダイアログメッセージでエラーを表示しているのに対し、エラーコードが0を返すため、エラーの処理をスクリプトで解決出来ない。
          d.o
            

          こんにちは

           

          Get(最終エラー)は0を返してしまい

          実験していないので外しているかもしれませんが... 

          これって、ダイアログが表示されたことで、最終エラー0になるんじゃ無いでしょうか?

          ダイアログを表示しなくては!→ダイアログを表示!→正確に表示出来た!→最終エラー=0

          って感じで

           

          ダイアログを出さない用に、

           スクリプトステップの「エラー処理[オン]」を事前に入れておくとどうでしょうか?

           

          • 2. Re: FileMakerはダイアログメッセージでエラーを表示しているのに対し、エラーコードが0を返すため、エラーの処理をスクリプトで解決出来ない。
            Hiro
              

            ファイル挿入のスクリプト側では操作できないので、

            メインの方のスクリプトに以下を追加されてエラー制御されてみては如何でしょう。

             

            ・ メインのスクリプトステップs 前半

             // ▽追加

            ・ フィールド設定 [テーブル::オブジェクト; "エラーのため挿入に失敗しました。"]
            ・ スクリプト実行 [サブスクリプト「ファイル(実体)挿入スクリプト」] 
            ・If [PatternCount(GetAsText(テーブル::オブジェクト);"エラー")] 
            ・ 全スクリプト終了

            ・End If

             // △追加 ここまで

            ・ メインのスクリプトステップs 後半

             

            取得エラーの場合、オブジェクトフィールドに「エラーのため挿入に失敗しました。」と表示されます。

             

             

            【=補足=】

            このエラーはファイル実体データ挿入のときだけなので、参照パスにすれは挿入可能です。つまりエラー分岐で参照パス挿入にすれば、スクリプトの継続も可能です。

            その場合は、

             

            ・ フィールド設定 [テーブル::オブジェクト; "エラーのため挿入に失敗しました。"]
            ・ スクリプト実行 [サブスクリプト「ファイル(実体)挿入スクリプト」] 
            ・If [PatternCount(GetAsText(テーブル::オブジェクト);"エラー")] 
            ・ スクリプト実行 [サブスクリプト「ファイル(参照パス)挿入スクリプト」] 

            ・End If

             

            として、

            あとで、データ内容をチェック、参照パスで挿入のレコードを抽出して、再度本挿入スクリプトを再試行することが出来ます。

            にHiroにより編集されたメッセージ

            • 3. Re: FileMakerはダイアログメッセージでエラーを表示しているのに対し、エラーコードが0を返すため、エラーの処理をスクリプトで解決出来ない。
              mune
                

              有意義なsuggestion有難う御座いました。

              ご指導を参考に次のようにしてスクリプトを制御することが出来ました。

               

              本来ファイル挿入をしたいフィールドの他にスクリプト制御用に新たにオブジェクトフィールドを別レイアウトに設けました。

              そのフィールドには”エラー”と先行スクリプトステップで入れて置きます。

              スクリプトステップ "ファイルを挿入" の実行段で双方のフィールドに同じファイルを挿入させるようにしました。

              当該ファイルが開いているときには、新たに設けたオブジェクトフィ-ルドの値は”エラー”のままです。

              当該ファイルが閉じていれば、この新フィールドにもファイルが挿入されます。 

              この値を参照してスクリプトの制御が出来るようになりました。

               

              FMのオブジェクトフィールドにファイルを格納させておいて、必要なときにこのファイルを「フィールド内容のエクスポート」や

              「Eventを送信」で開き、更新後に再度当該フィールドに「ファイルを挿入」を実行するシステムを構築している最中のことでした。