2 返信 最新の回答 日時: Nov 30, 2015 7:00 PM ユーザー:sshio

    WebDirectでレコード編集中にブラウザを閉じると入力値の自動化設定された修正タイムスタンプがクリアされる

    sshio

      製品名とバージョン

      FileMaker Server 14.0.4

       

      OSとバージョン

      Windows Server 2008 R2

      (Windows Server 2012 R2 でも発生したと報告を受けています)

       

      ブラウザとバージョン

      • Chrome 46.0.2490.86 m (Windows 7 Pro 64bit, Windows 10 Home 64bit)
      • IE 10.0.9200.17556 (Windows 7 Pro 64bit)
      • Safari 9.0.1 (Max OS X El Capitan 10.11.1)

       

      説明

      WebDirectでレコードを編集中に、ブラウザを閉じる(またはタブを閉じる)と、編集中のレコードが保存されます。

      このとき、値の自動化設定で、修正タイムスタンプが自動的に入力されるように設定されたフィールドの値がクリアされます。

      レコードが保存されるのに、修正タイムスタンプがクリアされるのは不具合ではないかと考えています。

       

      • 新規レコード追加中の場合も、ブラウザを閉じると、修正タイムスタンプが空のままで保存されます。
      • 「作成者」「作成タイムスタンプ」「修正者」の自動入力はクリアされません。
      • レイアウトの設定で、「レコードの変更を自動的に保存する」ON・OFFどちらでも、ブラウザを閉じるとレコードは保存され、現象が再現します。

       

      再現の方法

      • テスト用のFileMakerファイルを作成する
      • テーブル「テスト」を作成
      • フィールド「更新日時」をタイムスタンプ型で作成し、入力値の自動化タブにある「修正情報」のチェックをONにする
      • FileMakerファイルをFileMaker Server にアップロードし、WebDirectで利用可能にする
      • ブラウザからFileMaker Serverのテスト用ファイルを開く
      • レイアウト「テスト」で新規レコードを追加する
      • この時点で「更新日時」フィールドにはタイムスタンプが自動設定される
      • ブラウザを閉じる
      • 再度レイアウト「テスト」を開くと「更新日時」が空のレコードが保存されている

       

      上記の方法は、新規作成時の再現方法ですが、「更新日時」が設定されている既存レコードの編集中に、ブラウザを閉じても「更新日時」がクリアされます。

       

      一時的解決法

      現時点で回避方法は見つけていません。

        • 1. Re: WebDirectでレコード編集中にブラウザを閉じると入力値の自動化設定された修正タイムスタンプがクリアされる
          user14047

          同じように、Mac OS X 10.11.1 + FileMaker Server 14.0.4/ Safari 9.0.1 で確認したところ、複数フィールドをタブ移動で入力し、フィールド以外の場所をクリックする等レコード確定しない状態で Web ブラウザのウインドウを閉じると、最後に編集したフィールドが途中の状態(ファイルメーカーと入力しようとしたら fair みたいローマ字変換の途中の状態)が反映され、一連の入力の最後のフィールド以外は反映されてしまっている中途半端な状態になっていました。この時、修正タイムスタンプは同じように空になりました(修正者の値は WebDirect の名前に変更されています)。

          きちんとレコード確定した状態であれば大丈夫なようですので OnWindowClose でレコードを確定させたいところですが、残念ながら WebDirect では OnWindowClose がアクティブになる前にセッション離れてしまうので使えないですし...

          利用者が限定されているような環境なら利用者に教育するという解決方法になりそうですね。

          • 2. Re: WebDirectでレコード編集中にブラウザを閉じると入力値の自動化設定された修正タイムスタンプがクリアされる
            sshio

            ご確認ありがとうございます。

            気になったので確認してみましたが、レコードの編集中にブラウザを放置してタイムアウトした場合も、レコードは保存されました。

             

            入力値の制限を設定して、ユーザによる上書きが禁止されているフィールドで、バリデーションエラーがある場合は、ブラウザを閉じてもレコードは保存されませんでしたので、修正タイムスタンプが空になる以外は、おかしなレコードができてしまうことはなさそうです。

             

            ただ、スクリプトステップで何らかの入力チェックを行っている場合は、この処理がスルーされてしまうので、想定外のレコードが作成されてしまう可能性はあります。

            ブラウザを閉じた場合やタイムアウト時に、確定または元に戻すといった振る舞いを指定する設定があったら良いのではないかと思いました。

             

            利用者が限定されているような環境なら利用者に教育するという解決方法になりそうですね。

            現時点ではこのような対応で回避するしかありませんね。ありがとうございます。