組織に対してフォームの自動保存を無効にする

このトピックは、Dynamics 365 Customer Engagement (on-premises) に適用されます。 このトピックの Power Apps バージョンについては、以下を参照してください。 モデル駆動型アプリでオートセーブを無効にする

自動保存により、ユーザーはフォームのデータを保存を管理する必要がなく、自分の作業に集中できます。 ほとんどのユーザーはレコードを更新するたびにデータを明示的に保存する必要がないことを評価していますが、組織によっては、明示的な保存を予定して設計されたカスタマイズが行われている場合があります。 これらの組織のために、自動保存の方法を管理するオプションがあります。

自動保存が機能する仕組み

既定で、更新されたエンティティと従来のエンティティ のメイン フォームすべてで自動保存が有効です。 レコードの作成 (最初の保存) の後、フォームに対する変更は変更の 30 秒後に自動的に保存されます。 フォームの変更がない場合は、フォームが開いている間に自動保存は実行されません。 変更が行われると、自動保存の前の 30 秒期間が再度発生します。 ユーザーを現在編集しているフィールドは自動保存には含まれません。 ユーザーがレコードを編集中に別のだれかが同じレコードを更新した場合は、これらの変更は取り込まれて、自動保存が行われるときにフォームに表示されます。

自動保存が有効になっている状態では、保存ボタンはレコードの最初の保存の場合にのみ表示されます。 レコードが作成されると、コマンド バーの保存ボタンは表示されませんが、未保存の変更があるかどうかを示す 自動保存ボタン。 ボタンが右下隅に表示されます。 このコントロールは、自動保存が無効になっている場合も表示されます。

このボタンをクリックして、レコードを保存し、フォームのデータを迅速に更新することができます。 自動保存が有効になっているときは、レコードから離れるとき、またはレコードを表示している個別のウィンドウを閉じるときはいつでも、レコードは保存されます。 更新されないエンティティのフォームに表示される保存して閉じるボタンは必要ありません。

重要

統一インターフェイスでは、自動保存中にエラーが発生した場合、ページの自動保存間隔が長くなります。 また、属性値が変更された場合、または保存が成功した場合、間隔は 30 秒にリセットされます。

自動保存を無効にする必要はありますか

レコードの保存時に実行されるプラグイン、ワークフロー、またはフォーム スクリプトがある場合、それらは自動保存が発生するたびに実行されます。 これにより、これらの拡張機能が自動保存と協調して動作するように設計されていない場合、望ましくない動作が発生する可能性があります。 自動保存が有効になっているかどうかにかかわらず、プラグイン、ワークフロー、フォーム スクリプトは特定の変更を検出するように設計されており、各保存イベントに対して区別なく実行されないようにする必要があります。

エンティティに対して監査が構成されている場合は、各保存は個別の更新と同様に扱われます。 誰れかが変更が保存されていないフォームに 30 秒以上とどまっている場合、自動保存が実行された後に彼らがさらなるデータを追加したときにのみ、追加の入力が表示されます。 監査データによって決まるレポートがあり、各保存をレコードの個別の"接触"として扱う場合、接触の頻度の増加が確認されることがあります。 この方法を使用する場合は、自動保存が有効または無効であるかにかかわらず、個々のユーザーの行動によって信頼性の低い指標となることを考慮する必要があります。

組織に対して自動保存を無効にする

自動保存が現在使用している拡張機能に対して問題を引き起こすと判断した場合は、組織に対する自動保存を無効にすることができます。 個々のエンティティやフォームの自動保存を無効にする設定はありません。

  1. 設定>管理に移動します。

  2. システムの設定を選択します。

  3. すべてのフォームでの自動保存の有効化オプションについては、いいえを選択します。

フォームの自動保存を無効にする

特定のエンティティ フォームの自動保存を無効にする場合は、エンティティの OnSave イベントにコードを追加できます。

Note

フォームの自動保存は無効になりますが、右下隅の 自動保存ボタン。 ボタンをクリックするとデータが保存されます。 フォームから移動するかまたはデータが変更されたフォームを閉じる場合、フォームから移動またはフォームを閉じる前に変更の保存を促すプロンプトが表示されます。

  1. ナビゲーション バーで、Microsoft Dynamics 365>設定 を選択します。

    ナビゲーション バーに設定が表示されます。

  2. 設定>カスタマイズに移動します。

  3. システムのカスタマイズを選択します。

  4. コンポーネントで、エンティティを展開してフォームのエンティティを特定します。

  5. エンティティ ノードを展開し、フォームを選択します。

  6. 編集するフォームを開きます。

  7. JavaScript の Web リソースを作成してフォームに追加します。

    1. フォーム エディターのフォームグループで、フォーム プロパティを選択します。

    2. イベントタブのフォーム ライブラリで、追加を選択します。

    3. レコードの検索ダイアログ ボックスで、新規を選択します。

    4. Web リソース フォームに、以下の情報を入力します。

      価値
      件名 preventAutoSave
      Display Name 自動保存の抑止
      タイプ スクリプト (JScript)
    5. タイプフィールドの隣のテキスト エディターを選択します。

    6. ソースフィールドに、次のコードを貼り付けます。

      function preventAutoSave(econtext) {  
          var eventArgs = econtext.getEventArgs();  
          if (eventArgs.getSaveMode() == 70 || eventArgs.getSaveMode() == 2) {  
              eventArgs.preventDefault();  
          }  
      }  
      
      
    7. OK を選択して、テキスト エディターを閉じます。

    8. 保存を選択して、Web リソースを保存し、次に Web リソース ウィンドウを閉じます。

    9. レコードの検索ダイアログで、作成した新しい Web リソースが選択されます。 追加を選択して、ダイアログを閉じます。

  8. OnSave イベントを構成します。

    1. フォーム プロパティウィンドウのイベント ハンドラーセクションで、イベントOnSave に設定します。

    2. 追加をクリックします。

    3. ハンドラーのプロパティウィンドウで、ライブラリを前の手順で追加した Web リソースに設定します。

    4. 関数フィールドに「preventAutoSave」を入力します。 大文字と小文字は区別されます。 引用符は含めません。

    5. 有効がオンになっていることを確認します。

    6. 実行コンテキストを最初のパラメーターとして渡すをオンにします。

      重要

      これを行わない場合、スクリプトは機能しません。

      ハンドラーのプロパティダイアログはこのようにする必要があります。 カスタマイズの接頭辞: "new_"は、組織の既定の発行者に対して設定されるカスタマイズ接頭辞に基づいて変化する場合があります。

    Dynamics 365 for Customer Engagement で自動保存させないようにする OnSave イベント ハンドラー。

    1. OK をクリックしてハンドラーのプロパティダイアログを閉じます。

    2. OnSave イベントに対する他のイベント ハンドラーが存在する場合は、緑色の矢印を使用して、これを最上位に移動します。

  9. OK をクリックして、フォームのプロパティダイアログを閉じます。

  10. 保存して閉じるをクリックしてフォームを閉じます。

  11. ソリューション エクスプローラーで、すべてのカスタマイズの公開をクリックします。

    OnSave イベントにこのスクリプトを追加した後、他のユーザーがこのフォームを使用してレコードを編集するとき、自動保存が無効になっていた場合と同じように、メッセージ変更が保存されていませんがフォームの右下隅に表示されます。 しかし、このメッセージは、その横の 自動保存ボタン。 ボタンをクリックするまで消えません。

参照

フォームの作成および設計
メイン フォームに関する設計考慮事項
メイン フォームを他のクライアントに表示する方法
フォームのパフォーマンスの最適化