Avanteam Process Studio v23.5
Objet
Installation et contenu du pack v23.5.
Domaines d’application
La migration exige que les applications AVANTEAM soient en version .Net :
- v21.22
- v23.4
Procédure d'installation
Lancer AutoUpgradeTool.exe v2.1 en tant qu’administrateur et appliquer la mise à jour.
Correctifs
ImportDocs
APS-4797 Logs des workflows dans ImportDocs
Depuis la mise en place en v23.0 de la séparation des programmes par framework, l’exécutable ImportDocs ne pouvait pas accéder au fichier de configuration des logs depuis certaines classes. D’autre part, la montée de version de la librairie de gestion des logs ne gérait pas par défaut l’accès concurrentiel au fichier de log. Un des effets était le non remonté en console et dans les fichiers de logs de problèmes de workflow rencontrés lors de l’import de documents. Ces problématiques sont corrigées et les logs d’erreurs sont de nouveau opérationnels dans l’ensemble des étapes de vérification d’import.
APS-4857 Variable renommée dans ImportDocs
En v23.1, un travail a été réalisé pour faciliter la compréhension de l’outil.
Un des effets de bords a été le renommage d’une variable utilisée dans le code C# généré par l’outil : currentFormular --> currentForm.
Ce ticket a pour but de reprendre les configurations d’ImportDocs déjà enregistrées avant la v23.1 et d’y appliquer le changement de nom de variable.
Scheduler
APS-3644 Mails de relance d'agent pour délégataires
Lors de l’exécution de l’agent d’envoie de relances (ReminderAgent), les mails étaient correctement envoyés aux personnes identifiées. Dorénavant, il prend aussi en compte les délégations en place si cela concerne un utilisateur de la liste de diffusion et que la délégation prévoie un transfert de mails.
OfficeFS
APS-4810 Enregistrement PJ avec des caractères non ASCII
Cette version de la solution embarque une nouvelle version du module OfficeFS permettant la gestion des pièces jointes des formulaires : la version v2.16. Cette version corrige une anomalie introduite par la version v2.15 qui empêche la création de pièces jointes dont le nom contient des caractères non ASCII. Cette version d’OfficeFS est retro compatible avec les versions v21.20 et v23.3 de la solution.
Process Studio
APS-4609 Modèle bureautique Excel non supporté
Depuis la v23.0, un message d’erreur apparaissait lorsque l’administrateur cherchait à associer un modèle bureautique au format *.xlsx.
La montée de version des librairies utilisées a introduit cette régression qui avait aussi des effets de bords au moment de générer un document lié à un module bureautique ayant cette extension.
Un correctif a pu être apporté pour que le format *.xlsx soit de nouveau supporté.
-1b3db005b9cdbcf306096045d1b4bd6a.png)
Interface Web
APS-4762 Échec du calcul de la référence d’un doc
Une régression est apparue en v23.0 avec l’implémentation de la corbeille de documents.
L’anomalie initiale observée est qu’une erreur était générée lors du calcul de référence d’un document sous un environnement Oracle.
Une investigation plus complète a mis en évidence un changement de comportement de la fonction SchemaGetValues(string fieldName) (appelée par la fonction public GetValues(string fieldName)) qui renvoie la valeur null quand le champ en base de données est NULL à la place de la valeur chaîne vide comme précédemment.
Afin de ne pas créer de changement dans les développements en place chez nos clients, nous avons rétabli le comportement précédant.
APS-3994 Contrôle sur champs numériques dans préfiltres
Sur une vue contenant des préfiltres, une vérification est dorénavant effectuée pour valider le format des données lorsque le champ est un champ numérique. Cette vérification prend en compte la culture de l’application (i.e. le séparateur de décimal pouvant être soit le point, soit la virgule).
APS-4306 Impression sous Firefox
Lors de l’impression du contenu d’un formulaire depuis le bouton « Imprimer », un saut de page se faisait systématiquement en début de chaque onglet si l’impression était lancée depuis le navigateur Firefox.
| Avant | Après |
|---|---|
![]() | ![]() |
Dorénavant, le rendu reste le même, quel que soit le navigateur, et les sauts de page avant le début d’un onglet ne sont plus automatiques.
APS-4795 Décalage des icônes des favoris
Depuis l’application du thème de l’application sur l’écran des favoris en v23.0, un décalage des favoris se réalise lorsqu’un document sans pièce jointe est déployé (i.e. lorsque le chevron disparaît).
La gestion de décalage des documents a été rectifié.
-c886027743c4b2414c84f1b90f89fd9d.png)
APS-4426 Ouvrir une même vue depuis la nav visuelle
Dans un écran de navigation visuelle, une même vue appelée avec des arguments différents ne s’ouvre plus dans le même onglet, mais bien dans un onglet séparé afin de faciliter la navigation.
APS-4792 Mail aux délégués en fonction de l'application
Depuis la version v19.12, il est possible de réaliser une délégation par application (APS-2040). Ici, une amélioration a été réalisée à cette fonctionnalité afin que les personnes notifiées dans le cadre d’une délégation soient seulement celles spécifiées dans l’application concernée ou bien pour l’ensemble des applications le cas échéant.
APS-4794 Gestion des pièces jointes sur une fédération
Depuis la version v21.19, une erreur survenait lorsqu’un utilisateur essayait d’éditer le contenu d’une pièce jointe sur son poste lorsque le document faisait partie d’une application fédérée et que le document était accédé depuis l’application fédératrice.
APS-4809 Erreur à la suppression d'un workflow
Lors de la suppression du workflow d’un document, un message d’erreur pouvait être généré lors du recalcul des intervenants du document. Une vérification est maintenant en place afin de s’assurer qu’un même intervenant ne peut pas apparaître en double suivant les différentes règles de calcul définies.
APS-4812 Doublon dans le changement d'organigramme
Une revue des changements d’organigramme a été réalisée afin d’éviter que des utilisateurs se voient attribuer plusieurs fois les mêmes droits sur des documents. En effet, dans les changements d’organigramme en place, les droits de l’ancien utilisateur étaient automatiquement transférés en intégralité au nouvel utilisateur, même si celui-ci les avait déjà, occasionnant des doublons dans l’information traitée.
APS-4817 Performance des intervenants et des lecteurs
Une amélioration des performances a été réalisé lors du calcul des intervenants et des lecteurs d’un document. Auparavant, lors de la mise à jour des intervenants et des lecteurs, ceux-ci étaient entièrement vidés puis remplis avec les nouvelles valeurs. Cette action entrainait de actions sous-jacentes (triggers) et avait des impacts sur l’indexation des données. La nouvelle méthode implémentée fonctionne dorénavant par delta.
APS-4838 Couleur des champs placés dans un onglet
Depuis la v23.0, il apparaît que la mauvaise couleur est appliquée sur les libellés et les valeurs des champs d’un formulaire lorsque ces champs sont placés à l’intérieur d’un onglet.
APS-4840 Préfiltres Nombre et Date non fonctionnels
Lors de la définition de pré filtres dans une vue sur un champ date ou un champ nombre, le fait de spécifier une valeur dans ce champ produit une erreur :
- Erreur "Error converting data type nvarchar to float." sur un champ nombre
-3aac8424ae7c6507a4c8f141889d70cf.png)
- Erreur "Conversion failed when converting date and/or time from character string." sur un champ date
-84ee5423a826ea19150b4dc0d31c6a7a.png)
Une correction de ce comportement a été intégrée dans la release.
APS-4843 Déconnexion impossible si pas de langue préférée
Il a été observé qu’en v23, si un utilisateur n’a jamais spécifié de préférences dans son profil utilisateur, alors une erreur est produite au moment où celui-ci souhaite se déconnecter. Cette erreur empêche la déconnexion.
APS-4844 Mot de passe erroné
Si un utilisateur tente de se connecter en utilisant un identifiant autre que son login (adresse email ou autre identifiant) avec un mauvais mot de passe, alors un message d’erreur technique est retourné. L’application retourne dorénavant un message d’erreur intelligible dans ce scénario.
APS-4866 Logs de connexion
Lorsqu’un utilisateur se connecte à l’application ou bien si son accès est refusé, l’enregistrement de cette action dans l’audit trail ne se faisait plus automatiquement. Cette action a été rétablie.
APS-4868 Décalages dans la recherche plein texte
Depuis la version v23.4, un décalage dans le nombre de résultats de recherche dans la facette des documents ainsi que le bouton de sélection du type de formulaire présentait des incohérences d’affichage.
-cdd135c546add3c097f76a71cc31fba3.png)
Une analyse a été réalisée et l’affichage précédent a été rétablie.
Fonctionnalités
Installateur
APS-4697 Installateur CLI
A partir de cette version de l’application, un installateur en ligne de commandes fera dorénavant parti des livrables. Dans les livrables fournis par Avanteam pour chaque nouvelle version, le contenu de l’archive (*.7z) évolue :
- L’ensemble des répertoires installés sont maintenant rangés dans le dossier
./publish - Les scripts d’installation de base de données, précédemment placés dans le dossier
./SQLDatasà la racine, sont maintenant dans le dossier./sql - Deux nouveaux fichiers font leur apparition à la racine de l’archive :
setup-cli.exesetup-cli.exe.config
| Ancienne hiérarchie de fichiers de l'archive | Nouvelle hiérarchie de fichiers de l'archive |
|---|---|
![]() | ![]() |
Le nouvel exécutable vous permettra de lancer une installation de la solution en l’appelant en ligne de commandes et en s’appuyant sur le fichier de configuration. Voici les bases vous permettant de l’utiliser :
- La commande
setup-cli.exe --helpvous permettra d’obtenir de l’aide sur les options à disposition. - Il est possible de récupérer le fichier de configuration d’une installation réalisée par l’interface graphique et de l’utiliser pour une installation en ligne de commandes. Ce fichier est généré lors de l’installation et est enregistré par défaut dans
C:\ProgramData\Avanteam\install.v2.config - Seule différence avec une installation réalisée par l’interface graphique, l’exécutable de désinstallation de l’application n’est pas généré. Pour désinstaller proprement votre instance, il vous faudra :
- Désinstaller les services en exécutant le fichier
[Dossier d’installation]/.avanteam/UninstallServices.bat - Supprimer le répertoire d’installation
- Supprimer les bases de données
- Supprimer de IIS le site web et les pools d’applications
- Désinstaller les services en exécutant le fichier
SyncTool
APS-4848 SyncTool de deux environnements v23
Afin de faciliter la synchronisation de deux environnements différents, il est possible maintenant de spécifier le chemin d’accès de l’environnement cible.
Ainsi, il devient possible de migrer le paramétrage de deux instances, même si celles-ci portent le même nom, sans que SyncTool ne soit confus.
-85354be366830de63b9c505aaa55c448.png)
APS-4685 SyncTool de ressources avec DN existant
Dorénavant, si un administrateur essaie de synchroniser des ressources dont le DN est identique, mais dont la casse est différente, SyncTool lui indiquera la différence et l’invitera à harmoniser le nom des ressources dans l’un des environnements avant de continuer. Cela a pour but de prévenir de potentielle futures erreurs, notamment dans les bases de données dont la collation est insensible à la casse.
Process Studio
APS-4785 Ajouter l'option C# au champ Id
Avec cette release, nous continuons de faire évoluer le champ Id du formulaire en mettant à disposition la possibilité d’y associer du code C#.
Cela permettra d’alimenter le champ en y associant un code.
-860d2c4d18797907c7887c965b9a37b5.png)
Interface web
APS-4799 Régler la durée de validité de l’authn
En v23, la déconnexion des utilisateurs dans l’application n’est plus liée à une durée d’inactivité afin d’améliorer le confort d’utilisation.
Néanmoins, afin de satisfaire certaines exigences, notamment dans le milieu Life Science, il est maintenant possible de paramétrer la durée de validité de l’authentification.
Cela est possible en spécifiant une valeur dans le fichier de paramétrage programs.ini avec la clé Authentication.MaxAge. Cette valeur s’exprime en heures, minutes et secondes : Authentication.MaxAge = 00:15:00 limite à 15 minutes d’inactivité la validité de l’authentification.
Si la clé n’est pas présente, commentée, ou si sa valeur est vide, alors l’utilisateur restera authentifié à l’application jusqu’à ce qu’il ferme son navigateur.
APS-4736 Champ texte riche obligatoire
Lors de la configuration du caractère obligatoire d’un champ texte riche sous Process Studio, celui-ci n’était pas sauvegarder (option « Mandatory »). Son activation est maintenant prise en compte et est vérifiée lors de la validation des données saisies par un utilisateur dans un formulaire.
APS-2379 Astérisque sur champs obligatoires
Avec cette release, l’expérience utilisateur lors du remplissage d’un formulaire se voit augmentée.
En effet, chaque champ peut être définit comme obligatoire au niveau du formulaire, mais aussi au niveau de chaque étape de workflow (si applicable).
Chacun de ces champs est identifiable par la présence d’un astérisque rouge à la fin de son libellé.
-71c6431126199a09b2d66754f3f1c7a1.png)
Certain de nos clients rajoutait un astérisque à la fin de leur libellé pour indiquer les champs obligatoires au niveau du formulaire. Afin de supprimer ce doublon, vous pouvez vous référer à la section des actions manuelles pour nettoyer les libellés.
APS-4182 Se réauthentifier lors d’un archivage
Une nouvelle clé de paramétrage est disponible dans le fichier de configuration programs.ini : CFR21.archive.authn.
Cette clé accepte deux valeurs : true / false (false par défaut) et peut être placée au niveau global de la solution ou dans la section dédiée à une application ; si la valeur de cette clé est à true, alors l’action d’archiver un document nécessitera que l’utilisateur se réauthentifie pour valider l’action.
Cette directive est en ligne avec la régulation CFR21 Part 11 (exigence dans le milieu pharmaceutique).
APS-4196 Opérateurs Azure AD d'import des ressources
Dans l’écran de configuration des filtres Azure AD d’import et de synchronisation des ressources (outil « SynchroAzureAD » des Admin Tools), il est dorénavant possible d’utiliser des opérateurs de traitement de chaînes de caractères supplémentaires.
| Opérateurs | Exemple | Nouvelt supporté |
|---|---|---|
Opérateurs logiques : and (et) et or (ou) | accountEnabled eq true and (userPrincipalName eq 'jonlawr@contoso.com' or mail eq 'jonlawr@contoso.com') | |
Opérateurs de comparaison : eq (égal à), ge (supérieur ou égal à) et le (inférieur ou égal à) | ||
startswith | startswith(displayName,'Mary') | |
any | userPrincipalName eq 'Mary@Contoso.com' or proxyAddresses/any(c:c eq 'smtp:Mary@Contoso.com') | |
not | companyName ne null and not(companyName eq 'Microsoft') | X |
ne (non égaux) | X | |
endswith | endsWith(mail,'@outlook.com') | X |
-c8d1cf112fdc657b042365c4f0af7154.png)
APS-4240 Mettre en évidence les erreurs de validation
Afin d’assister les utilisateurs lors de la validation des données d’un formulaire, le système va automatiquement placer le focus sur la zone contenant les messages d’erreur au moment de sa validation.
Typiquement, si un utilisateur essaye de valider un formulaire dont l’un des champs obligatoires n’est pas rempli, alors la zone récapitulant les erreurs de validation sera visible à l’écran. De plus, un clic sur chacun de ces messages mettra le focus sur le champ concerné.
APS-4642 Amélioration de l'écran des licences
Un écran de gestion des licences est par défaut disponible dans l’application. Celui-ci évolue pour donner plus de lisibilité :
-
La section « Licence » s’intitule maintenant « Résumé » et continue de présenter le nombre de licences lecteur et auteur utilisées par rapport au nombre de licences disponibles
-
La section « Tableau des licences » a été renommée « Détails »
- La colonne « Utilisateur » affiche le CN et le DN de l’utilisateur (si différent)
- La colonne « Date » a été renommée « Date d’affectation de le licence »
- La colonne « Utilisateur valide » a été renommée en « Présent dans l’annuaire »
- Les filtres de colonnes utilisent par défaut l’opérateur « Contient »
- Il est possible d’exporter ces informations sous format Excel
- Si l’application permet de gérer les licences par application, une colonne spécifiant l’application et permettant de filtrer est affichée
-
Ancien visuel de l'écran :
-f540de5f8aae65a3d195476dfcae9625.png)
-
Nouveau visuel de l'écran :
-1b81141755e9516747b5aa5caba89e2d.png)
APS-4658 Détails des erreurs d’envoi d’email
Afin d’aider les administrateurs de nos applications à mieux comprendre les erreurs relatives aux envoies de mails, nous avons améliorer deux Admin Tools :
- EmlLog
Lorsqu’un mail n’a pas pu être envoyé, le détail de l’erreur est maintenant disponible (stack trace) :
-08af94be062e774a1c69352ac56084fa.png)
- CheckSendMail
De même, l’outil CheckSendMail, permettant de tester l’envoie de mails depuis l’application, vous redirigera vers la ligne de log d’EmlLog si celui-ci rencontre une erreur :
-f109e5ec671af173d2a3959e2b1f67b6.png)
APS-4716 Retirer le paramètre &ext=1
Le paramètre ext avec la valeur 1 se retrouvait jusqu’à présent dans l’ensemble des liens URL permettant d’accéder à un document de l’application.
Le fait de ne pas le spécifier entrainait des disfonctionnements dans certains des modules qui pouvaient être présents (TeamConnect, visualisation de workflow, …) car ce paramètre conditionnait le chargement du contexte du document.
Devant ce constat, le paramètre n’est donc plus nécessaire.
Les liens générés par l’application ne contiennent plus le paramètre (par exemple le lien d’un document depuis une vue ou depuis un mail) et si le paramètre est spécifié, il n’est plus interprété.
APS-4717 Droits de création depuis la navigation visuelle
Il est possible de créer un document depuis un écran de navigation visuelle. Cette évolution permet de vérifier que l’utilisateur, même s’il a les droits d’accès à l’écran de navigation visuelle, a aussi les droits de création de documents correspondant au formulaire. Si ce n’est pas le cas, un message d’information est affiché.
APS-4819 Créer un doc depuis navigation visuelle
Depuis un écran de navigation visuelle, si une action permet de créer un nouveau document, le formulaire s’ouvre dans un onglet de la solution et non plus dans un nouvel onglet du navigateur internet.
Sécurité et technique
Sécurité
APS-4770 VLN02 - Technical information disclosure
La version v23 a introduit un nouveau site web (root) en plus du site web de l’application.
Sur ce site root est hébergé toute la partie authentification des utilisateurs.
Nous avons supprimé les entêtes X-powered-By et Server des trames d’informations afin de limiter les informations techniques exposées et ainsi limiter les informations d’architecture.
APS-4771 VLN03 - Missing HTTP security headers
Afin de renforcer la sécurité de la solution Avanteam, un nouvel entête est spécifiée dans les trames http : il s’agit de referrer-policy qui va contrôler la quantité d’informations sur le référent (referrer) incluses dans la requête.
La valeur par défaut est maintenant same-origin : un référent sera envoyé aux pages de même origine, mais des requêtes vers des adresses externes n’enverront aucune information sur le référent.
Il reste néanmoins possible de modifier la valeur de cet entête en ajoutant la clé Security.ReferrerPolicy dans la table ApplicationSettings de l’application fédératrice (vous trouverez ici la liste des valeurs possibles).
APS-4772 VLN05 - Misconfigured cookie security attribute
La valeur de l’attribut Secure du cookie .AspNetCore.Antiforgery.6VMMEh84O-s est maintenant false.
En laissant la valeur par défaut true, le cookie est envoyé non chiffré sur une trame HTTP. Un attaquant capable de récupérer les paquets transitant sur le réseau peut alors obtenir la valeur du cookie.
APS-4774 VLN06 - Weak password policy
Dans l’interface web, l’écran de gestion des utilisateurs accessible seulement aux administrateurs permet notamment de changer le mot de passe d’un utilisateur.
Le but est ici de respecter les contraintes de mots de passe qui sont imposées aux utilisateurs afin qu’un administrateur ne puisse pas introduire une faille de sécurité.
-54d92a5fb39b33baa4315897c35cec9e.png)
APS-4775 VLN08 - Broken access control to logs and files
La sécurité sur le contrôle d’accès des entrées de logs au sein de l’application web a été renforcée. De même, il est maintenant possible de restreindre l’accès à une vue aux utilisateurs ayant le rôle Admin en y déployant le script « Restrict Access to Administrators ».
Technique
APS-4733 Suppression des références Ext.Net
La solution Avanteam utilise une librairie externe : Ext.Net. Après l’annonce par son éditeur que la librairie ne sera plus maintenue, la décision a été prise de supprimer sa référence dans les modules de notre solution où celle-ci n’est pas requise et de réécrire certains modules l’utilisant.
APS-4753 Supprimer Kernel.Web.WebParts
Une dll Avanteam servant à la gestion des flux RSS était devenu obsolète. Cette dll n’est donc plus livrée avec la solution.
Actions manuelles
Non Automatisées
APS-4799 Régler la durée de validité de l’authn
En v21, la durée d’authentification des sessions utilisateurs étaient configurée au niveau de IIS :
-f36d41046bf9ba3e01c5e8ec48389887.png)
Cette configuration se trouvait transposée dans le fichier web.config du site web sous cette forme :
<system.web>
<authentication mode="Forms">
<forms timeout="30" />
</authentication>
</system.web>
Si vous souhaitez retranscrire cette contrainte à partir de cette release, vous devez donc retranscrire la valeur de la propriété timeout (exprimée en minutes) dans la valeur de la clé Authentication.MaxAge.
Pour rappel, une copie du fichier web.config de votre site web a été réalisée lors de la migration en v23. Vous pouvez donc reprendre la valeur précédemment définie en regardant la valeur dans le fichier web.config situé dans le fichier config-backup-[timestamp].7z dans le dossier ./.avanteam de votre solution.
APS-2379 Astérisque sur champs obligatoires
L’apparition de cette fonctionnalité peut faire doublon si vous avez vous-même ajouté un astérisque sur les champs obligatoires au niveau du formulaire. Si tel est le cas, vous pouvez exécuter la requête suivante sur votre base applicative afin de supprimer cet astérisque. En revanche, veillez à ne pas l’exécuter si vous avez des libellés de champ de formulaire qui sont suivit d’un astérisque pour une autre signification. Enfin, cette requête ne fonctionnera que sur les champs dont les libellés sont suivis d’un espace et d’un astérisque (convention la plus répandue chez nos clients).
- Sur un environnement SQL Server :
UPDATE [Labels]
SET [value] = SUBSTRING([Labels].[value], 1, LEN([Labels].[value]) - 2)
FROM [FormularFields]
JOIN [FieldDefinitions] ON [FormularFields].[id_field_definition] = [FieldDefinitions].[id]
JOIN [Labels] ON [FieldDefinitions].[id_label] = [Labels].[id]
WHERE [Labels].[value] LIKE '% *'
- Sur un environnement Oracle :
UPDATE "LABELS"
SET "VALUE" = SUBSTR("LABELS"."VALUE", 1, LENGTH("LABELS"."VALUE") - 2)
WHERE EXISTS (
SELECT "FIELDDEFINITIONS"."ID_LABEL"
FROM "FORMULARFIELDS"
JOIN "FIELDDEFINITIONS" ON "FORMULARFIELDS"."ID_FIELD_DEFINITION" = "FIELDDEFINITIONS"."ID"
WHERE "FIELDDEFINITIONS"."ID_LABEL" = "LABELS"."ID"
AND "LABELS"."VALUE" LIKE '% *'
)
Breaking Changes
APS-3644 Mails de relance d'agent pour délégataires
Les méthodes GetSubstitutesOf et GetDelegateesOf de DirectoryManagerWrapper sont marquées obsolètes.
Elles seront supprimées lors de la release majeur v25.
Elles sont remplacées par DirectoryManagerWrapper.GetDelegates(string dnName, string applicationName, bool? withMail).
-72fb428867d448a3ff3c591858ec4b16.png)
-251e209d6cf8342dfee7a734e288953b.png)
-95cdff603f32b080816b0dae17d2e4f8.png)
-ab3060fda1abc444175bc35c0703a568.png)