當您移轉至已升級版本的 Groovy 時,可能會遇到某些需要解決的問題。稱為 Groovy 指令碼驗證程式的程式會協助尋找需要調整的規則並提供報表,以便修正任何問題。
Note:
只有當應用程式包含使用者建立的 Groovy 商業規則時,才可使用 Groovy 指令碼驗證程式。如需如何執行 Groovy 指令碼驗證程式的相關資訊,請參閱驗證 Groovy 指令碼。
您從應用程式執行 Groovy 指令碼驗證程式後,請使用此主題中的資訊來解決驗證問題。
一般指導方針
請使用「明確」資料類型,而非使用 def。例如,為變數指定明確資料類型,例如String、int、List<String>,或 Map<String,Integer>。
備註: 如果您正在使用 def,而其未經驗證工具進行標示,則可以保留原樣。
如果您在使用浮點數時發生錯誤,請使用 "d" 後綴來確保浮點數被視為 "double",而不是 "BigDecimal"。例如,it.data = 1212121212.111d。
如果您遇到無法理解的錯誤,請確認指令碼第一行顯示如下:/*RTPS: */
即使您沒有 RTPS,請確定這是第一行。
如果您有 RTPS,請將它們新增至第一行如下:/*RTPS: {selectedDepartment} {hireDate} {newEmployeeName} */。
如果您收到「未預期輸入」的錯誤,請確認您所有的 List 宣告和轉換都沒有空的類型,例如 List<>。
範例:
將 List<> 變更為 List 或 List<Object>。
將 targetGrid.addRow((List< String>) listRow[0] , (List<>) listRow[1]) 變更為 targetGrid.addRow((List< String>) listRow[0] , (List) listRow[1])
Note:
從 10 月更新 (25.10) 開始,您在驗證程序中,將不再需要以對應的「工作曆」函式取代已棄用的「日期」函式。此問題將被解決,且不再發生。將會使用 Date.format()、Date.getAt()、Date.parse() 等方法,且不再顯示驗證錯誤。
Note:
如果您遇到因不打算從 Planning 啟動的範本或規則所導致的驗證錯誤,請前往 Calculation Manager 中的「部署檢視」以移除這些項目。在「待部署」節點下,取消勾選相關規則與範本。然後,於應用程式節點上按右鍵並選取「部署」,以重新部署所有項目。
錯誤與建議的修正
Table 3-2 錯誤與建議的修正
| 錯誤 | 範例代碼 | 可能原因 | 可能的解決方案 |
|---|---|---|---|
|
沒有此類特性: |
N/A |
這可能是因為未使用 RTPS 模型,且參考變數時是使用方括號或大括號。這會導致 Groovy 引擎嘗試將它們評估為 Groovy 表示式。 |
請使用 |
|
無法將 |
|
發生此錯誤的原因是未明確輸入「清單」資料,所以 Groovy 會將它視為 |
若要解決此問題,請執行下列其中一個動作:
|
|
無法將 |
|
發生此錯誤的原因是未明確輸入指派的物件,或該物件轉換成 |
若要解決此問題,請將值轉換成 使用 as 例如:
|
|
無法將 |
|
發生錯誤,因為 |
若要解決此問題,請新增 例如:
|
|
無法呼叫下列項目:
包含引數 [java.util.List <java.lang.Object>, java.util.List <java.lang.Object>] |
|
發生錯誤的原因是 |
若要解決此問題,請指定變數的資料類型。 例如:
|
|
無法呼叫下列項目:
包含引數
|
|
發生錯誤的原因是 |
若要解決此問題,請新增 例如:
|
|
無法呼叫下列項目:
包含引數
|
|
發生錯誤的原因是 |
若要解決此問題,請新增 例如:
|
|
找不到相符的方法 |
|
發生此錯誤的原因是先前舊版 Groovy 中提供的 |
若要解決此問題,請輸入下列項目:
|
|
找不到相符的方法 |
|
發生此錯誤的原因是因為先前舊版 Groovy 中提供的格式方法已無法使用。 |
若要解決此問題,請輸入下列項目:
|
|
找不到相符的方法 o |
List <Cube> cube = operation.application.getCubes() Dimension dimScenario = operation.application.getDimension("Scenario", cube.toArray(new Cube[cube.size()])) |
|
若要解決此問題,請執行下列其中一項作業:
|