Al migrar a una versión actualizada de Groovy, es posible que se produzcan determinadas incidencias que se deben solucionar. Un programa denominado Validador de script de Groovy permite encontrar las reglas que se deben ajustar y proporciona un informe para que pueda solucionar cualquier problema.
Note:
El Validador de script de Groovy solo está disponible cuando la aplicación contiene reglas de negocio de Groovy creadas por el usuario. Consulte Validación de scripts de Groovy para obtener información sobre cómo ejecutar el Validador de script de Groovy.
Después de ejecutar el Validador de script de Groovy desde la aplicación, utilice la información de este tema para resolver incidencias de validación.
Directrices generales
Utilice tipos de dato explícitos en lugar de def. Por ejemplo, especifique el tipo de dato explícito para las variables, como String, int, List<String> o Map<String,Integer>.
Nota: Si utiliza def y la herramienta de validación no lo marca, puede dejarlo como está.
Si aparece un error al trabajar con números flotantes, utilice el sufijo "d" para asegurarse de que los números flotantes se tratan como "double" en lugar de como "BigDecimal". Por ejemplo, it.data = 1212121212.111d.
Si obtiene un error que no entiende, verifique que la primera línea del script tiene el siguiente aspecto: /*RTPS: */
Incluso si no tiene ninguna petición de datos en tiempo de ejecución (RTP), asegúrese de que esta sea la primera línea.
Si tiene RTP, agréguelos a la primera línea de la siguiente manera: /*RTPS: {selectedDepartment} {hireDate} {newEmployeeName} */.
Note:
A partir de la actualización de octubre (25.10), ya no tendrá que reemplazar las funciones de fecha en desuso por las funciones de calendario correspondientes como parte del proceso de validación. Esto se resolverá y dejará de ser una incidencia. Los métodos Date.format(), Date.getAt(), Date.parse() etc. funcionarán y ya no mostrarán errores de validación.
Errores y correcciones sugeridas
Table 3-2 Errores y correcciones sugeridas
| Error | Código de ejemplo | Causa posible | Posible solución |
|---|---|---|---|
|
No existe esa propiedad: |
N/A |
Esto puede ser el resultado de no utilizar el modelo RTPS, y se hace referencia a las variables mediante corchetes o llaves. Esto provoca que el motor de Groovy intente evaluarlas como expresiones de Groovy. |
Utilice |
|
No se puede asignar el valor de tipo |
|
El error se produce porque los datos de la lista no se escriben explícitamente, por lo que Groovy los trata como |
Para resolver esta incidencia, realice una de las siguientes acciones:
|
|
No se puede asignar el valor de tipo |
|
El error se produce porque el objeto que se asigna no se escribe ni se convierte explícitamente en |
Para resolver esta incidencia, convierta el valor en Utilice la sintaxis Por ejemplo:
|
|
No se puede asignar el valor de tipo |
|
El error se produce porque |
Para resolver esta incidencia, agregue la conversión Por ejemplo:
|
|
No se puede llamar a lo siguiente:
con los argumentos [java.util.List <java.lang.Object>, java.util.List <java.lang.Object>] |
|
El error se produce porque los argumentos |
Para resolver esta incidencia, especifique el tipo de dato de la variable. Por ejemplo:
|
|
No se puede llamar a lo siguiente:
con los argumentos
|
|
El error se produce porque los argumentos |
Para resolver esta incidencia, agregue la conversión Por ejemplo:
|
|
No se puede llamar a lo siguiente:
con los argumentos
|
|
El error se produce porque los argumentos |
Para resolver esta incidencia, agregue la conversión Por ejemplo:
|
|
No se ha encontrado el método de confrontación |
|
El error se produce porque el método |
Para resolver esta incidencia, introduzca lo siguiente:
|
|
No se ha encontrado el método de confrontación |
|
El error se produce porque el método de formato, que estaba disponible previamente en versiones anteriores de Groovy, ya no está disponible. |
Para resolver esta incidencia, introduzca lo siguiente:
|
|
No se ha encontrado el método de confrontación |
List <Cube> cube = operation.application.getCubes() Dimension dimScenario = operation.application.getDimension("Scenario", cube.toArray(new Cube[cube.size()])) |
Se está transfiriendo |
Para resolver esta incidencia, realice una de las siguientes acciones:
|