背景工作流程處理的最佳做法
本主題包含建立和管理背景工作流程處理的最佳做法。
避免發生無限迴圈
在背景工作流程中可以建立啟始無限迴圈的邏輯,而這會耗用伺服器資源並影響效能。 可能發生無限循環的典型情況是,如果您將後台工作流程設定在更新列時啟動,然後在工作流邏輯中更新該資料欄。 更新資料列會觸發更新相同的背景工作流程,並重複觸發背景工作流程。
您所建立的工作流程會包含偵測和停止無限迴圈的邏輯。 如果在短時間內背景工作流程程序在特定資料列上執行超過特定次數,程序會因為下列錯誤而失敗:因為啟動此工作流程作業的工作流程包括無限迴圈,所以已取消此工作流程作業。請更正該工作流程邏輯,然後再試一次。限制次數為 16。
使用背景工作流程範本
如果您有類似的工作流程,而且預期建立更多遵循相同模式的工作流程,請將背景工作流程儲存為工作流程範本。 如此一來,下次需要建立類似的工作流程時,可以使用範本建立背景工作流程,避免從頭開始輸入所有條件和動作。
在建立程序對話方塊中,選取從現有範本新增程序 (從清單選取)。
使用子工作流程
如果您在不同的工作流程或條件分支中套用相同的邏輯,請將該邏輯定義為子工作流程,這樣就不必在每個背景工作流程或條件分支中手動複製該邏輯。 這可以讓您的工作流程更容易維護。 您可以只更新一個工作流程,而不檢查可能套用相同邏輯的許多工作流程。
自動刪除完成的背景工作流程作業
對於背景 (非同步) 工作流程,我們建議在背景工作流程定義中選取自動刪除完成的工作流程作業 (節省磁碟空間) 選項。 選取此核取方塊允許系統為成功的執行刪除背景工作流程記錄,以節省空間。 請注意,失敗背景工作流程執行產生的記錄一律都會儲存,以作疑難排解之用。
限制更新相同資料表的工作流程數目
執行多個更新相同資料表的背景工作流程,可能會造成資源鎖定問題。 試想數個正在執行的工作流程,其中每個商機更新都會觸發對相關聯帳戶的更新。 這些工作流程的多個執行個體正在執行並且同時嘗試更新同一筆客戶資料列,可能會導致資源鎖定問題。 發生背景工作流程失敗,並且已記錄錯誤訊息,例如 SQL 逾時:無法取得資源 資源名稱 上的鎖定。
使用附註記錄變更
當您編輯工作流程時,您應該使用 [附註] 索引標籤並輸入執行的動作及其原因。 這可讓其他人了解所做的變更。