Lors de la migration vers une version mise à niveau de Groovy, vous risquez de rencontrer certains problèmes qui devront être résolus. Un programme appelé Valideur de script Groovy vous aide à rechercher les règles à ajuster et fournit un rapport afin que vous puissiez résoudre les éventuels problèmes.
Note:
Le valideur de script Groovy n'est disponible que lorsque votre application contient des règles métier Groovy créées par l'utilisateur. Reportez-vous à la section Vérification des scripts Groovy pour plus d'informations sur l'exécution du valideur de script Groovy.
Après avoir exécuté le valideur de script Groovy à partir de votre application, utilisez les informations de cette rubrique pour résoudre les problèmes de validation.
Instructions générales
Utilisez des types de données explicites au lieu de def. Par exemple, indiquez le type de données explicite pour les variables, comme String, int, List<String> ou Map<String,Integer>.
Remarque : si vous utilisez def et qu'il n'est pas identifié par l'outil de validation, vous pouvez le laisser tel quel.
Si vous obtenez une erreur lors de l'utilisation de nombres flottants, utilisez le suffixe "d" pour vous assurer qu'ils sont traités comme des valeurs "double" au lieu de "BigDecimal". Par exemple, it.data = 1212121212.111d.
Si vous obtenez une erreur que vous ne comprenez pas, vérifiez que la première ligne du script se présente comme suit : /*RTPS: */
Même si vous ne disposez pas d'invites d'exécution, assurez-vous qu'il s'agit de la première ligne.
Si vous disposez d'invites d'exécution, ajoutez-les à la première ligne comme suit : /*RTPS: {selectedDepartment} {hireDate} {newEmployeeName} */.
Note:
A partir de la mise à jour d'octobre (25.10), vous n'aurez plus besoin de remplacer les fonctions de date obsolètes par les fonctions de calendrier correspondantes dans le cadre du processus de validation. Cette situation sera résolue et ne sera plus un problème. Les méthodes Date.format(), Date.getAt(), Date.parse(), etc., fonctionneront et n'afficheront plus d'erreurs de validation.
Erreurs et corrections suggérées
Table 3-2 Erreurs et corrections suggérées
| Erreur | Exemple de code | Cause possible | Solution possible |
|---|---|---|---|
|
Propriété inexistante : |
S/O |
Cette erreur peut être due au fait que le modèle RTPS n'est pas utilisé, et que les variables sont référencées avec des crochets ou des accolades. Ainsi, le moteur Groovy essaie d'évaluer ces dernières en tant qu'expressions Groovy. |
Utilisez |
|
Impossible d'affecter une valeur de type |
|
L'erreur survient car les données de liste n'ont pas de type explicite. Groovy les traite donc en tant que type |
Pour résoudre ce problème, effectuez l'une des opérations suivantes :
|
|
Impossible d'affecter une valeur de type |
|
L'erreur survient car l'objet qui est affecté n'a pas de type explicite ou n'est pas converti en valeur |
Pour résoudre ce problème, convertissez la valeur en valeur Utilisez la syntaxe Par exemple :
|
|
Impossible d'affecter une valeur de type |
|
L'erreur survient car |
Pour résoudre ce problème, ajoutez la conversion Par exemple :
|
|
Impossible d'appeler :
avec les arguments [java.util.List <java.lang.Object>, java.util.List <java.lang.Object>] |
|
L'erreur survient car les arguments |
Pour résoudre ce problème, indiquez le type de données de la variable. Par exemple :
|
|
Impossible d'appeler :
avec les arguments
|
|
L'erreur survient car les arguments |
Pour résoudre ce problème, ajoutez la conversion Par exemple :
|
|
Impossible d'appeler :
avec les arguments
|
|
L'erreur survient car les arguments |
Pour résoudre ce problème, ajoutez la conversion Par exemple :
|
|
Méthode de mise en correspondance |
|
L'erreur survient car la méthode |
Pour résoudre ce problème, saisissez ce qui suit :
|
|
Méthode de mise en correspondance |
|
L'erreur survient car la méthode de format, qui était auparavant disponible dans les versions antérieures de Groovy, ne l'est plus. |
Pour résoudre ce problème, saisissez ce qui suit :
|
|
Méthode de mise en correspondance |
List <Cube> cube = operation.application.getCubes() Dimension dimScenario = operation.application.getDimension("Scenario", cube.toArray(new Cube[cube.size()])) |
Un élément |
Pour résoudre ce problème, effectuez l'une des opérations suivantes :
|