自訂最佳做法
請遵循下列最佳做法,以避免 Dynamics 365 Field Service 發生效能、可用性和可支援性問題。
盡量減少表單的自訂欄位
系統自訂員會將自訂欄位新增至實體表單,以擷取專屬於其行業與業務的相關資訊、執行商務程序,以及收集要據以報告的資訊。 不過,表單的自訂欄位過多會造成效能問題。
若要避免效能問題:
- 盡量減少所有表單上的自訂欄位數目。 如果工單表單是您在 Field Service 應用程式中用得最多的表單,最好先從該表單開始著手。
- 盡量減少自訂欄位當中查詢類型欄位與子格的數量。
- 將自訂欄位 (特別是查詢和子格) 從表單的第一個索引標籤移到表單的其他索引標籤。
- 預設隱藏表單中較少使用的欄位。
不要變更現成可用的 Web 資源、選項組、資訊安全角色或工作流程
不要變更或自訂現成可用的 Web 資源、選項組、資訊安全角色或工作流程。 否則,可能會導致非預期的系統行為。
自訂這些元件的組織可能不會立即在其環境中遇到問題。 但是,Microsoft 對自訂現成元件發佈的變更不會套用至這些元件的最上層。 反而是,特定自訂層會覆寫所有將來的變更,而這些覆寫卻最終導致無法預測的錯誤和行為。
不要修改、編輯或刪除日期欄位或系統狀態
修改、編輯或刪除日期欄位及狀態可能會影響商務規則,並且可能會導致解決方案更新的問題。 工單日期欄位的範例包括承諾發出時間和承諾兌現時間。 狀態欄位的範例包括工單系統狀態和合約系統狀態。
不要編輯現成可用的欄位,也不要從表單中移除這些欄位
客戶會編輯現成可用的欄位來滿足其業務需求。 不過,編輯現成可用欄位可能會造成錯誤,尤其是在程序相依於這些欄位的值時。
若要避免錯誤:
- 隱藏表單中不需要的欄位。
- 將不需要的欄位移到其他表單索引標籤。
例如,Field Service 程序計算可預約資源預約記錄的估計抵達時間欄位值,以顯示第一線工作人員預計何時到達現場。 如果您的組織不需要此欄位,請在表單上加以隱藏,而不是將其移除。
不要編輯選項組 (選擇) 值
編輯現成可用欄位的選項組可能會導致錯誤,尤其是在程序相依於這些欄位值時或是在進行升級時。
若要避免錯誤:
- 僅編輯現成可用欄位的選項組標籤。 切勿編輯這些欄位的選項組值。
- 不要移除任何選項組選項。
- 不要新增任何選項組選項。
例如,Field Service 工單預設包含系統狀態欄位。 此欄位是選項組 (類型為選擇),並且有未排程、已排程、進行中、已完成和已取消等選項。 每個選項都有標籤及相關數值。 系統管理員可以編輯選項組的標籤 (例如未排程),但是絕不能編輯與標籤相關聯的數值。
少用自訂指令碼,請遵循最佳做法
系統自訂員會撰寫指令碼 (通常為 JavaScript Web 資源) 來執行商務規則。 不過,自訂指令碼可能會在升級期間導致效能問題、錯誤和混亂。
若要避免這些問題:
- 盡量減少載入時執行的指令碼數量。
- 不要撰寫呼叫大量資料的指令碼,也不要撰寫多個呼叫同樣資料的指令碼。
以下各小節說明最佳做法。 此外,請遵循使用 Dynamics 365 Customer Engagement 進行開發的最佳做法中的表單指令碼最佳做法。
將網路要求數目和 OnLoad 事件中所需的資料量降到最低
表單載入期間中發出的網路要求越多,從這些要求下載的資料越多,載入表單所花費的時間就越長。 僅要求所需的最小資料量。 此外,也請考慮盡可能將資料暫存於快取,以避免未來載入頁面時要求不必要的資料。
避免使用同步網路要求
同步網路要求可能會導致頁面載入緩慢和表單沒有回應。 改為使用非同步要求。 下列部落格文章提供了更多範例:轉換擺脫同步要求,以加快模型導向應用程式速度。 此外,還要在任何需要對同一個實體或記錄進行多次網路呼叫記錄的案例中考慮使用「非同步和等待」。 深入了解非同步和等待。
避免包含不必要的 JavaScript Web 資源程式庫
越多指令碼加入至表單,下載這些表單就需要越多時間。 指令碼通常會在初次載入後暫存於瀏覽器快取中。 不過,第一次檢視表單時的效能通常會給人留下深刻印象。
避免在 Onload 事件中載入所有指令碼
如果您的程式碼僅支援資料行的 OnChange
事件,或是僅支援 OnSave
事件,請務必設定指令碼程式庫,使其中包含這些事件的事件處理常式,而不是包含 OnLoad
事件的事件處理常式。 如此一來,就可以延遲載入這些程式庫,並在載入表單時提升效能。
使用摺疊的索引標籤來延遲 Web 資源載入
如果可摺疊索引標籤已摺疊,此索引標籤就不會載入其中區段所包含的 Web 資源或 iFrame 元件。 只有在索引標籤展開時才會載入。 索引標籤狀態變更時,會發生 TabStateChange
事件。 所有支援已摺疊索引標籤中 Web 資源或 iFrame 所需的程式碼都可以使用 TabStateChange
事件的事件處理常式,並減少 OnLoad
事件可能必須產生的程式碼。
避免在用戶端程式碼中出現重複的網路要求
多個或重複的網路要求會造成網頁瀏覽器懸置並影響表單載入時間。 減少要求數目可以改善效能。 替代方法是合併網路要求,並快取這些要求的值。 此外,如前所述,請考慮非同步網路要求。
如果 XRM API 中有提供相關資訊,請避免使用角色和系統使用者特定呼叫
使用 XRM API 來避免網路要求取得使用者權限資訊。 深入了解如何轉換擺脫同步要求。 此外,如果 XRM API 的資訊符合您的需求,也請避免系統使用者呼叫。
設定預設可視性選項
在 OnLoad
事件中,避免使用隱藏表單元素的表單指令碼。 相反地,要為可能隱藏的表單元素設定預設可見度選項,讓這些元素預設會在載入表單時隱藏。 然後,在 OnLoad
事件中使用指令碼來顯示您要顯示的表單元素。
在下列資源中了解更多資訊:
對指令碼執行解決方案檢查工具
Power Apps 解決方案檢查工具是 Microsoft 的實用公用程式,可檢查 Power Apps 解決方案是否有問題並建議最佳做法。 這些問題包括 JavaScript、HTML、外掛程式及自訂工作流程活動的問題。
在下列資源中了解更多資訊:
使用非同步工作流程,而不使用同步工作流程
系統自訂員經常撰寫同步工作流程,以即時執行會在 Field Service 變更資料時執行的商務規則。 不過,以同步方式執行工作流程會降低效能。 若要避免效能問題,請改以非同步方式執行工作流程。
啟動 Field Service 和資源排程的現成可用程序
Field Service 和資源排程包含許多執行必要商務規則的程序。 停用的程序可能會導致錯誤。 為避免出現問題,請確定所有 Field Service 和資源排程程序都處於使用中狀態。 為了確定程序是否處於停用狀態,請定期執行 Field Service 解決方案健康情況中心。
執行解決方案健康情況中心以偵測問題
解決方案健康情況中心可幫助您更清楚了解環境的狀態,以及偵測 Dynamics 365 環境的問題。 環境組態設定可能會在平常的系統運作過程中,隨時間改變。 解決方案健康情況中心在執行個體中執行規則,以驗證環境的組態設定。 有些規則是專為 Field Service 擬訂,您可以在遇到問題時,視需要執行這些規則。 安裝或更新 Field Service 時,系統會自動觸發一些規則。
為了監視環境的健康情況,請定期執行解決方案健康情況中心規則集。
行動應用程式效能考量
自訂行動應用程式可能會影響效能。 在自訂行動應用程式時的效能考量中了解詳細資訊。