共用方式為


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

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

自動儲存的運作方式

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

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

您可以選取這個按鈕,儲存資料列並立即重新整理表單中的資料。 若已啟用自動儲存,則每當您離開資料列或關閉顯示列的另一個視窗,資料列都會被儲存。 對於未更新的表格,不需要在表單中出現儲存後關閉按鈕。

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

如果您在資料列儲存時,有執行中的外掛程式、工作流程或表單指令碼,則它們會在每次發生自動儲存時執行。 如果這些擴充功能未設計成配合自動儲存使用,則可能會造成非預期的行為。 無論自動儲存是否啟用,外掛程式、工作流程和表單指令碼都應該設計為尋找特定變更,且不應該對每個儲存事件無差別執行。

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

停用組織的自動儲存

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

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

停用表單的自動儲存

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

注意

透過使用使方法,表單將會停用自動儲存功能,但當您選取 自動儲存按鈕時,仍可儲存資料。 仍然會儲存資料。 如果您嘗試離開或關閉已變更資料的表單,系統會提示您儲存完變更後才能離開或關閉表單。

使用以下程序會造成表單上的儲存後關閉按鈕無法運作,因為它呼叫 saveMode 2 上的 preventDefault,而這會引用儲存後關閉 。 您可以移除以下的 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 事件後,當使用者使用此表單編輯資料列時,未儲存的變更訊息會出現在表單的右下角,就像自動儲存未停用一般。 但是除非有人選取自動儲存按鈕,否則此訊息不會消失 此訊息不會消失。

後續步驟

建立及設計表單

注意

是否能請您告知您偏好的慣用文件語言? 請填寫問卷。 (請注意,本問卷為英文版)

完成問卷大約需要七分鐘。 本問卷將不會收集個人資料 (隱私權聲明)。