Mise à jour vers la version 3.20.2
Bibliothèques ajoutées au serveur ICF
Le programme d'installation vide désormais [Répertoire d'installation]/ICF/server/lib à chaque mise à jour, afin que les bibliothèques d'une version antérieure ne restent pas à côté des nouvelles. Une bibliothèque que vous avez ajoutée vous-même dans ce répertoire, comme un pilote JDBC (jt400.jar pour une base de données AS400, par exemple) ou les bibliothèques PeopleSoft psjoa.jar et psft.jar, est supprimée elle aussi.
Tâches préalables à la mise à jour
(Si vous avez ajouté des bibliothèques dans
ICF/server/lib) Les copier hors de[Répertoire d'installation]/ICF/server/libavant d'exécuter le programme d'installation.Obligatoire
Laissée en place, la bibliothèque est supprimée par la mise à jour et les connecteurs qui en ont besoin échouent avec une
ClassNotFoundException.
Tâches pré-démarrage
(Si vous avez ajouté des bibliothèques dans
ICF/server/lib) Redéposer les bibliothèques copiées dans[Répertoire d'installation]/ICF/server/lib.Cette opération est à refaire après chaque mise à jour vers une version de 3.20.2 à 3.21.0. À partir de la version 3.21.1, déposez plutôt ces bibliothèques dans
ICF/server/ext_lib, que la mise à jour ne touche pas : voir Mise à jour vers la version 3.21.1.
Gabarits de notification
Les valeurs que rend un gabarit de courriel sont désormais échappées avant d'atteindre le corps du message, afin qu'un nom, une justification ou tout autre texte stocké ne puisse pas y porter de balises ni de code.
La résolution des expressions des gabarits est également plus stricte. Un attribut qui n'existe pas sur l'objet d'où il est lu — identity.invalidAttribute, par exemple — se rendait auparavant comme si sa valeur était vide ; le rendu échoue désormais. Chaque attribut nommé par un gabarit doit être valide.
Les gabarits livrés avec RAC/M sont mis à jour. Les tâches ci-dessous ne s'appliquent que si vous avez déployé votre propre copie d'un gabarit de notification, que la mise à jour ne réécrit pas.
Tâches post-démarrage
(Si vous avez personnalisé les gabarits de notification) Remplacer la comparaison
== truedes rôles retirés dansremove_accesses_request/<langue>/task.html:Obligatoire
Laissée telle quelle, la notification de tâche d'une demande de retrait d'accès n'est plus envoyée du tout : la comparaison échoue pendant le rendu du corps et la notification est abandonnée.
Avant :
@if{request.?rolesToRemoveLi == true}Après :
@if{request.?rolesToRemoveLi != ''}Si vous avez personnalisé d'autres gabarits, assurez-vous que les attributs suivants n'utilisent pas
== true:accountsToActivateLigroupsToAddLigroupsToRemoveLirolesToAddLirolesToRemoveLitoAddLitoRemoveLiwrittenRequestListLiwrittenRequestsLi
(Si vous avez personnalisé les gabarits de notification) Corriger ou retirer tout attribut nommé par vos gabarits qui n'existe pas sur l'objet d'où il est lu, comme
identity.invalidAttribute:Obligatoire
Laissé tel quel, un attribut inconnu fait échouer le rendu du corps et la notification n'est plus envoyée du tout.
Un attribut mal orthographié, ou qui n'existe plus dans le modèle, passait auparavant inaperçu puisqu'il se rendait comme une valeur vide. Il interrompt maintenant le rendu : révisez donc les attributs de chaque gabarit que vous avez déployé par rapport à ceux que l'objet expose réellement.
La forme protégée contre le nul
@{identity.?department}n'aide en rien ici : elle protège contre une valeur nulle, pas contre un attribut qui n'existe pas.
