共用方式為


停用模型導向應用程式中的自動儲存

自動儲存功能可協助應用程式使用者專注於其工作,而不必試著儲存表單上的資料。 大多數人對於每次更新資料列時不必明確儲存資料都讚譽有加,不過,某些組織可能有設計必須明確儲存的自訂。 對於這些組織,有管理如何套用自動儲存的選項。

自動儲存的運作方式

根據預設,更新的表格和傳統表格的所有主要表單會啟用自動儲存。 在列建立 (最初儲存) 後,表單的任何變更會在變更後的 30 秒自動儲存。 如果表單中未有任何變更,則當表單開啟時不會發生自動儲存。 變更後,自動儲存重新開始前會有 30 秒的時間。 當您編輯時,如果其他人也更新了同一資料列,則這些變更將會在自動儲存時擷取並顯示在表單中。

若已啟用自動儲存,則儲存按鈕僅在資料列初始儲存時才會出現。 建立行後,命令列中不會顯示儲存按鈕,但您可以在右下角看到 [自動儲存] 按鈕。 按鈕,顯示是否有任何未儲存的變更。 如果自動儲存已停用,這個控制項也會顯示。

您可以選取這個按鈕,儲存資料列並立即重新整理表單中的資料。 啟用自動儲存後,無論何時您離開某一行或關閉顯示該行的單獨視窗,都會儲存該行。 對於未更新的表格,不需要在表單中出現儲存後關閉按鈕。

您是否應該停用自動儲存?

如果您有在儲存行時執行的外掛程式、工作流程或表單指令碼,則它們會在每次自動儲存時執行。 如果這些擴充功能不是設計用於自動儲存功能,這種模式可能會導致不良行為。 無論自動儲存是否啟用,外掛程式、工作流程和表單指令碼都應該設計為尋找特定變更,且不應該對每個儲存事件無差別執行。

如果您有對資料表設定稽核,每一次儲存被視為個別的更新。 如果有人在未儲存變更的表單上停留超過 30 秒,則只有在執行自動儲存後新增更多資料時,您才會觀察到另一個項目。 如果您有依賴稽核資料並將每次儲存視為資料列個別編輯 ("touch") 的報表,可能會看到記錄編輯頻率的增加。 如果您使用這種方法,不論是否啟用自動儲存,都應該思考個別使用者行為會使其成為不可靠的計量。

停用組織的自動儲存

如果您判斷自動儲存會對使用的任何擴充功能造成問題,Power Platform 管理員可以為您的組織停用此功能。 沒有為個別表格或表單停用自動儲存的設定。

  1. 登入 Power Platform 系統管理中心,前往管理>環境,然後開啟您想要的環境。
  2. 在命令列上選取設定
  3. 展開產品,然後選取行為
  4. 基本行為底下 ,對自動儲存,選取關閉

停用表單的自動儲存

如果您要停用特定表格表單的自動儲存,您可以將程式碼新增至表格中的 OnSave 事件。

注意

透過使用此方法,表單的自動儲存功能將會停用,但當您選擇右下角的 [自動儲存] 按鈕。 按鈕時,資料仍會被儲存。 如果您嘗試離開表單或關閉資料已變更的表單,系統會提示您儲存變更,然後才允許您離開或關閉表單。

使用此處的過程會導致表單上的儲存並關閉按鈕無法正常運作,因為它在 preventDefault 2 上呼叫 saveMode,而後者參考了 儲存並關閉。 您可以刪除 getSaveMode() == 2 檢查以避免這種情況,但是當您嘗試離開表單或關閉資料已變更的表單時,表單會自動儲存。 由於這個原因,儲存並繼續按鈕也無法正常運作。

  1. 登入 Power Apps

  2. 在左導覽窗格選取資料表,選取所需的資料表,然後選取表單區域。 如果此項目不在側邊面板窗格中,請選取 ...其他 ,然後選取您想要的項目。

    您也可以從解決方案中調整資料表。 若要這樣做,請選取左窗格的解決方案,選取該資料表,然後選取表單區域。 如果此項目不在側邊面板窗格中,請選取 ...其他 ,然後選取您想要的項目。

  3. 開啟您要編輯的表單。

  4. 選取切換至傳統,以在傳統表單設計師中編輯表單。

  5. 建立 JavaScript Web 資源並將它加入至表單:

    1. 在表單編輯器中,在表單群組中選擇表單屬性

    2. 事件索引標籤上,在表單程式庫中選擇新增

    3. 查詢資料列對話方塊中,選擇新增

    4. 在 Web 資源表單中輸入下列資訊:

      標題 參考資料
      名稱 preventAutoSave
      顯示名稱 防止自動儲存
      輸入 指令碼 (JScript)
    5. 類型資料行旁,選擇文字編輯器

    6. 來源資料行中,貼上下列程式碼:

      function preventAutoSave(econtext) {  
          var eventArgs = econtext.getEventArgs();  
          if (eventArgs.getSaveMode() == 70 || eventArgs.getSaveMode() == 2) {  
              eventArgs.preventDefault();  
          }  
      }  
      
      
    7. 選擇確定,關閉文字編輯器。

    8. 選擇儲存,儲存 Web 資源,然後關閉 Web 資源視窗。

    9. 尋找資料列對話方塊中,會選取您建立的新 Web 資源。 選擇新增關閉對話方塊。

  6. 設定 OnSave 事件:

    1. 表單屬性視窗中的事件處理常式區段,將事件設定為 OnSave

    2. 選取新增

    3. 處理常式屬性視窗中,將程式庫設定為您在上一個步驟中加入的 Web 資源。

    4. preventAutoSave資料行中,輸入 ''。 這個值區分大小寫。 不要包含引號。

    5. 確定已勾選已啟用

    6. 勾選傳送執行內容做為第一個參數

      重要

      如果不這樣做,指令碼將無法執行。

      處理常式屬性對話方塊如下所示: 自訂前綴:「new_」可能會因為您組織之預設發行者設定的自訂前綴而有所不同。

      OnSave 事件處理常式,防止 Dynamics 365 中自動儲存。

    7. 選取確定關閉處理常式屬性對話方塊。

    8. 如果有 OnSave 事件的其他事件處理常式,請使用綠色箭號將這個事件處理常式移至頂端。

      表單屬性應如下所示。 請注意,在此處顯示的範例中,更新是從解決方案中進行的,因此發行者前綴 (dspin_) 與預設發行者 (new_) 提供的前綴不同。 這是因為該解決方案使用不同的發行者

    進階設定

  7. 選取確定以關閉表單屬性對話方塊。

  8. 選取儲存後關閉以關閉表單。

  9. 在方案總管中,選取發佈所有自訂

在您將此指令碼套用至 OnSave 事件後,當使用者使用此表單編輯資料列時,未儲存的變更訊息會出現在表單的右下角,就像自動儲存未停用一般。 但除非使用者選擇旁邊的 [自動儲存] 按鈕。 按鈕,否則此訊息不會消失。

後續步驟

建立及設計表單