Outdated deprecated method, call stack: com.simplicite.util.AppLog.deprecation[520]

Bonjour,

J’ai l’erreur suivante :

ERROR|system|com.simplicite.objects.EmplFront.EmplFrontBoEmployers|[] syntax in expressions|Evénement: Outdated deprecated method, call stack: com.simplicite.util.AppLog.deprecation[520]
com.simplicite.util.ObjectCore.prepareExpression[3857]
com.simplicite.util.Constraint.generateResource[968]
com.simplicite.util.tools.JSONTool.objectMetaDataToJson[1167]
com.simplicite.util.tools.JSONTool.metadata[2229]
com.simplicite.util.tools.JSONTool.metadata[2224]
com.simplicite.webapp.ObjectJson.metadata[78]
com.simplicite.webapp.tools.JSONServletTool.businessObjectService[514]
com.simplicite.webapp.servlets.AbstractJSONServlet.service[68]
com.simplicite.webapp.filters.AuthMethodFilter.doFilter[115]
com.simplicite.webapp.filters.AbstractFilter.doFilter[37]
com.simplicite.webapp.filters.RewriteFilter.doFilter[77]
com.simplicite.webapp.filters.AbstractFilter.doFilter[37]
com.simplicite.tomcat.valves.APISessionValve.invoke[-1]

J’ai pense que c’était peut-être mes noms de colonnes, mais elles sont toutes du style

emplfront_no_society

j’ai regardé un peu toute ma config, mais je ne trouve rien. Avez-vous des suggestions?

Merci d’avance.

Ces messages “deprecation” uindiquent l’usage d’API Java ou de syntaxes de paramétrage qui sont en déprécation, i.e. qui ne seront plus supportés dans des versions ultérieures.

Le 1er stade de déprecation génère un WARNING => il est temps de refactore son code, l’API continue malgré tout de fonctionner en mode compatibilité à minima.

Le 2ème stade de déprécation génère une ERROR => il est désormais impératif de refactorer son code car le bon fonctionnement de l’API n’est plus garanti, mais le code compile toujours

Le 3ème stade est la suppression de l’API en question, votre code ne compilera plus.

Vu le message vous devez utiliser des expression avec des syntaxes du type [myField] au lieu de [VALUE:myField] cette syntaxe est deprecated depuis la 3.0.

Dans mes expressions j’ai soit :

obj.getFieldValue(“myfield”)

soit

[VALUE:myField]

c’est le 1er qui pose problème?

Non l’une et l’autre syntaxes sont correctes (la 1ère uniquement dans un contexte d’expression d’objet métier: valeur par défaut, valeur calculée, contrainte).

Vérifiez à nouveau si vous n’avez pas une contrainte (y compris une contrainte issue d’un héritage) qui utiliserait une syntaxe en [myField] sur votre objet EmplFrontBoEmployers car l’erreur est remontée dans la méthode qui compile les contraintes (Constraint.generateResource).

Ou alors peut être avez vous écrit une expression complexe incluant des variables de type array (et donc des syntaxes en [...] qui ne correspondent pas à des tags de substitutions).

effectivement j’ai deux contraintes du style:

![EmplFrontBoEmployersRecallDate2].equals(“”) || (![EmplFrontBoEmployersRecallDate1].equals(“”) && [EmplFrontBoEmployersBackDate].equals(“”))

Ok c’est ça qu’il faut corriger en [VALUE:...]

Quand [field] avait été codé, le javascript en back n’existait pas…

Donc la raison du deprecated de cette ancienne syntaxe est que [field] est une expression javascript valide de tableau (en Rhino), alors que [VALUE:field] n’existe pas et ne peut pas se confondre au niveau pre-processing fait par Simplicité.

Il se peut que notre documentation ou nos supports utilisent encore l’ancienne syntaxe, il faudra nous demander de corriger si vous en voyez.

Et sinon on peut aussi trouver les substitutions de champ dans le paramétrage du “Titre complémentaire” d’un objet.

Merci beaucoup. J’ai modifié mes contraintes et je n’ai plus l’erreur.