当您迁移到 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: */
即使您没有 RTP,也请确保这是第一行。
如果您有 RTP,请将其添加到第一行,如下所示:/*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 错误和建议的修复
| 错误 | 示例代码 | 可能的原因 | 可能的解决方案 |
|---|---|---|---|
|
没有此属性: |
不适用 |
这可能是未使用 RTPS 模型的结果,并且变量通过方括号或大括号进行引用。这导致 Groovy 引擎尝试将其作为 Groovy 表达式进行评估。 |
使用 |
|
无法将 |
|
出现该错误的原因是未显式键入列表数据,因此 Groovy 将其视为 |
要解决此问题,请执行以下操作之一:
|
|
无法将 |
|
出现该错误的原因是未显式键入要分配的对象或未将其强制转换为 |
要解决此问题,请将该值强制转换为 使用 as 例如:
|
|
无法将 |
|
出现该错误的原因是 |
要解决此问题,请添加 例如:
|
|
无法调用以下项:
使用的参数为 [java.util.List <java.lang.Object>, java.util.List <java.lang.Object>] |
|
出现该错误的原因是 |
要解决此问题,请指定变量的数据类型。 例如:
|
|
无法调用以下项:
使用的参数为
|
|
出现该错误的原因是 |
要解决此问题,请添加 例如:
|
|
无法调用以下项:
使用的参数为
|
|
出现该错误的原因是 |
要解决此问题,请添加 例如:
|
|
找不到匹配的方法 |
|
出现该错误的原因是以前在早期版本的 Groovy 中可用的 |
要解决此问题,请输入以下内容:
|
|
找不到匹配的方法 |
|
出现该错误的原因是以前在早期版本的 Groovy 中可用的格式方法不再可用。 |
要解决此问题,请输入以下内容:
|
|
找不到匹配的方法 |
List <Cube> cube = operation.application.getCubes() Dimension dimScenario = operation.application.getDimension("Scenario", cube.toArray(new Cube[cube.size()])) |
|
要解决此问题,请执行以下操作之一:
|