Modification de paramètre applicatif

Bonjour,

Nous avons des paramètres techniques qui sont modifiables par le client.

Cependant, leur prise en compte nécéssite un clearcache.

Est-ce qu’on peut forcer le clearcache à la modification d’un de ces paramètres ou bien mettre à disposition un bouton permettant à l’utilisateur de l’effectuer ?

Bonjour,

C’est déjà prévu au niveau du Grant system et de la session courante si vous appelez bien les methodes parentes surchargée (super de extends SystemParam).

Mais tout dépend de la portée du paramètre :

  • Si ce sont des paramètres pour le front/UI, il est impossible de l’envoyer à tous les navigateurs, il faut nécessairement un refresh/F5 ou un logout pour recharger chaque navigateur (call ajax getgrant qui remonte les paramètres non privés en front). Il faudrait passer par un websocket pour notifier tous les navigateurs.

  • Si c’est un paramètre global en back, il suffit de le forcer dans le postSave, ou le retirer dans le postDelete, du style :

Grant sys = Grant.getSystemAdmin();
sys.setParameter(getFieldValue("sys_code"), getFieldValue("sys_value"));

ou sys_value2 s’il est valorisé/surchargeable.

Et de bien s’en servir partout dans le code via le singleton Grant.getSystemAdmin().getParameter()
et non pas ceux de la session montés en mémoire de chaque getGrant() = là il faudrait boucler sur toutes les sessions pour mettre à jour jour le paramètre (faisable mais lourd).

  • Si c’est juste dans la session de celui qui fait la modification, on peut juste utiliser getGrant()

Sinon un dernier moyen en back lorsqu’il faut utiliser ce paramètre est d’aller le chercher en base, et pas dans la session : en faisant des getSystemParam à la place des getParameter.

Mais ce sera beaucoup moins performent que de le lire en mémoire de System s’il est global.
A réserver pour les cas intermédiaires.

Sinon on parle de paramètres métiers ou ceux de Simplicité ?
car là encore, si ce sont des paramètres System, il faudra faire attention certains sont très sensibles et nécessite un clear-cache global, voir des mises à jour complexes en base.

@JeanMichelC
Un retour à nous faire sur votre besoin et la solution adoptée ?

Pas de retour pour le moment. On y travaille, nous avons eu un retour hier comme quoi le clearcache n’est pas forcement suffisant pour appliquer les modifications et un redémarrage du container est nécéssaire. Nous investiguons d’avantage.