開發商業規則的除錯方法

  • 一律根據您知道來源資料和預期結果的小型資料集,以對商業規則進行單元測試,而且可以手動追蹤計算。
  • Calculation Manager 中執行商業規則,以及複查日誌訊息。規則完成而且可以進行匯出或儲存之後,會在新頁籤中顯示日誌訊息。分析日誌檔可協助您識別花費計算時間的位置。
  • Calculation Manager 中個別執行規則集內的每個規則,以及複查日誌訊息。
  • 在開發期間,以除錯模式使用 Calculation Manager 來除錯規則。
  • 如果商業規則使用 CALCPARALLELFIXPARALLEL,特別是使用配置函數之一 (@ALLOCATE@MDALLOCATE),則移除平行計算來進行測試,瞭解規則是否執行、效能是否有所提升。
  • 確定所有必要資料 (例如,配置的總計) 都存在,並且視需要先預先計算,再進行計算。
  • 針對冗長的指令碼,從頂端開始除錯,然後往下除錯。指令碼開頭的問題可能會建立更深入的問題。逐區段偵錯,確定已正確地建立所有資料。確認指令碼中較後面的區段未覆寫較早的區段。

    進行指令碼偵錯時,請考量每個計算階段內的語法長度。如果您不確定是哪個計算部分發生失敗,請從底部開始,將區段設為註解 (一次一個區段),然後重新執行計算,直到它執行並產生正確結果為止。此時,請從計算的頂端開始,自區段移除註解 (一次一個區段),隨著您的進展測試每項變更。

  • 使用除錯模式,確定循序計算指令碼的每個區段 (需要時)。
  • 若要確定已順利建立所有區塊,請手動清除資料,並重新載入。請不要使用清除指令碼,因為這不足以測試區塊建立。
  • 一律進行測試,方法是重新執行指令碼,確定語法建立正確的結果來作為輸入和填入的資料。
  • 一律使用多個資料集來測試所有資料結果。在開發中,一律進行測試,方法是將輸入資料從某個值變更為另一個值,然後變更為 #missing,並從 #missing 變更為某個值,然後變更為另一個值。針對每個變更重新執行規則,然後驗證結果。
  • 如果使用者輸入可能會變更資料集 (例如,針對配置),則請測試從 #missing 變更為某個值以及從某個值變更為 #missing 的資料。這確定已在重新執行期間移除先前的計算結果 (如有必要)。例如,如果您在第一次執行時輸入 Product A、B 和 C 的資料,而在第二次執行時輸入 Product B、C 和 D (但非 A) 的資料,則在第二次執行之前將值變更為 #missing,可確保在第二次執行時正確地移除 Product A 的配置結果。