モデル駆動型でオートセーブを無効にする

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

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

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

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

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

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

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

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

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

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

  1. モデル駆動型アプリを開いて、次にコマンドバーで設定設定 > 詳細設定

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

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

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

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

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

注意

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

以下の手順を使用すると、フォームの「保存して閉じる」ボタンが機能しなくなります。これは、保存して閉じるを参照している saveMode 2 で preventDefault が呼び出されているためです。 以下の getSaveMode() == 2 のチェックを削除できますが、そうすると、データが変更されたフォームから移動したり、フォームを閉じたりしようとすると、フォームは自動保存されます。

  1. Power Apps にログインします。

  2. 左のナビゲーション ウィンドウからテーブルを選択して、希望のテーブルを選択し、フォーム領域を選択します。 項目がサイド パネル ウィンドウに表示されない場合は、…さらに表示 を選択して、目的の項目を選択します。

    また、ソリューションの中からテーブルを調整することもできます。 そのためには、左側のウィンドウでソリューションを選択し、テーブルを選択して、フォーム領域を選択します。 項目がサイド パネル ウィンドウに表示されない場合は、…さらに表示 を選択して、目的の項目を選択します。

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

  4. クラシックに切り替える を選択して、クラシック フォーム デザイナーでフォームを編集します。

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

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

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

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

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

      肩書き 信用照会
      Name preventAutoSave
      表示名 自動保存の抑止
      タイプ スクリプト (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 リソースが選択されます。 追加を選択して、ダイアログを閉じます。

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

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

    2. 追加を選択します。

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

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

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

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

      重要

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

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

      Dynamics 365 で自動保存させない OnSave イベント ハンドラー

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

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

      フォームのプロパティが次のように表示されます。 以下の例では、ソリューション内で更新が行われたため、発行者の接頭辞 (dspin_) が、既定の発行者 (new_) とは異なることに注意してください。 これは、ソリューションに別の発行者が使用されているためです。

    詳細設定

  7. OK を選択して フォームのプロパティ ダイアログを閉じます。

  8. 保存して閉じる を選択してフォームを閉じます。

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

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

次の手順

フォームの作成および設計

注意

ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)

この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。