Skip to main content
Version: Next

Avanteam Process Studio v23.4

Objet

Installation et contenu du pack v23.4.

Domaines d’application

La migration exige que les applications AVANTEAM soient en version .Net :

  • v21.21
  • v23.3

Procédure d'installation

Lancer AutoUpgradeTool.exe v2.1 en tant qu’administrateur et appliquer la mise à jour.

Correctifs

Synctool

APS-4706 Correction d'un import SyncTool

Lors de l’import d’un paramétrage avec synctool, un message d’erreur s’affichait :

Erreur d’exécution de la requête :
ExecuteNonQuery : la propriété CommandText n'a pas été initialisée

Cette anomalie est corrigée et il est maintenant possible d’importer un paramétrage contenant des tableaux de détails et des tables custom.

ImportDocs

APS-4723 Nettoyage des extensions de fichier via ImportDocs

Une correction a été implémentée dans ImportDocs afin de permettre aux utilisateurs de ne pas avoir à retravailler les fichiers d’import. En effet, anciennement si l'administrateur spécifiait des noms de pièces jointes contenant des espaces après leur extension dans son fichier d’import, les pièces jointes étaient correctement importées mais il n’était pas possible de les prévisualiser. Dorénavant ce problème est corrigé.

Process Studio

APS-4445 Champs fichier dans les modèles bureautiques

Une anomalie nous a été remontée concernant le paramétrage des champs de type "fichier" lorsqu’ils sont proposés dans le paramétrage des signets d’un modèle bureautique. En effet leur sélection faisait apparaitre un message d’erreur. Dorénavant aucune erreur n'est produite lorsqu'un champ fichier est sélectionné dans un signet de modèle bureautique. De plus si un champ fichier est inséré dans un modèle bureautique, alors le nom du fichier (avec son extension) est représenté à la génération. Ces corrections s’appliquent aussi pour le champ image.

APS-4759 Problème avec l'agent cacheCleaner

Le fonctionnement de l’agent cache cleaner livré par défaut dans le produit a été retravaillé. En effet celui-ci supprimait les fichiers du plus récent au plus ancien, or il semblait logique que la suppression se fasse du plus ancien au plus récent. Nous avons donc remanié le code afin d’appliquer un comportement cohérent.

APS-4141 Création intempestives de vues

Une anomalie a été remontée concernant la génération systématique de vues templates alors qu’un nettoyage des éléments obsolètes a pu être réalisé. Ces vues étaient (re)générées à la publication du formulaire associé. Nous avons corrigé ce problème pour ne générer des vues templates que si un navigateur est sélectionné lors de la publication. Enfin un toolttip est maintenant disponible pour détailler le mode de fonctionnement de la publication dans un navigateur : image.png

Interface web

APS-4761 Contenu de document décalé

Lorsque plusieurs sections contenant des vues intégrées étaient présentes dans des onglets de tables d'un document, on pouvait constater que l'affichage du contenu de mon document était décalé. Cette anomalie est corrigée et l’on constate que l'intégration de plusieurs vues intégrées dans des sections à l'intérieur d'un onglet ne décale pas le contenu d’un document.

APS-4325 Personnalisation de la page de login

Une régression est apparue avec la version majeure v23. En effet, la page de login n’était plus personnalisée en fonction du paramétrage réalisé dans la partie administration. Cette anomalie est corrigée et dorénavant la page dispose de deux thèmes clair et obscur. Ces thèmes correspondent à ceux paramétrés dans la page de personnalisation de l’application. Lorsque l’on modifie l’un de ces thèmes, depuis l’éditeur de thème ou la page de personnalisation, la modification se retrouve bien sur la page de login. Enfin les autres paramètres de personnalisation (logos et messages) s’affichent également dans la page de login.

APS-4732 Erreur lors de la prévisualisation d’un PDF

En v23, le module de prévisualisation des pièces jointes a évolué, offrant plus de possibilités. Néanmoins, dans certaines conditions, la prévisualisation de pièces jointes rencontrait des problèmes. L’ensemble de ces conditions doivent être vérifiées pour reproduire le problème :

  • Utiliser un navigateur Chrome
  • Le site web utilise le protocole http, pas https
  • Le site web a un nom de domaine (différent de localhost)

Il s'agit d'une limitation (volontaire) de Chrome qui n'accepte pas les contenus compressés avec Brotli en mode http, ce qui n’est pas le cas en mode https. Pour corriger le problème, nous fournissons dorénavant dans la solution le fichier PDFNetCWasm.gz.wasm, qui permet de bénéficier de toutes les ressources de fallback.

APS-4763 Oracle - changement d'étape de WF KO

Sur une instance Oracle, on pouvait constater que pour un document créé dans l’interface web ET assigné à un workflow, il n’était pas possible de faire un changement d’étape de workflow pour le document en question depuis l’outil d’administration de changement d’étape, un message d'erreur était affiché. Cette anomalie est une régression introduite en v21.19 et v23.0. (APS-4303 Changements d'étapes entre workflows intégrés) image.png

APS-4760 Bug sur champ ressource contenant une parenthèse

Jusqu’à présent on constatait que l’outil d’administration de mise à jour en masse des documents fonctionnait mal lorsque l’on souhaitait modifier la valeur d’un champ de type "ressource de l'annuaire" configuré avec un picker filtrant les utilisateurs sur le rôle dont le nom (DN) contenait une parenthèse. En effet le picker s'ouvrait sur une liste vide. Cette anomalie est maintenant corrigée.

APS-4738 Pas d’ombre autour de map designer

Le container du map designer n’avait pas tout à fait le même aspect que celui qu’il a dans d’autres pages de l’application web (Vues, Personnalisation de l’application, etc.). Une ombre portée a donc été ajoutée.

AvantAprès
image.pngimage.png

APS-4780 DN à caractères spéciaux lors de la diffusion

Une révision complète de la diffusion aux ressources contenant un & (esperluette) dans le nom technique a été réalisé. En effet, dans le cadre des services et des personnes lors de la préparation de la diffusion électronique, si l'une des ressources contenait un caractère &, elle n’était pas ajoutée à la liste de diffusion. En ce qui concerne les groupes de diffusion, la situation était différente. Si l'on sélectionnait un groupe dont le dn_name contenait un caractère &, il n’était pas inclus dans la fenêtre contextuelle après réouverture. De plus, si on sélectionnait d'autres groupes de diffusion en plus de celui qui contenait ce caractère spécial, les autres groupes disparaissaient également de la fenêtre contextuelle, contrairement aux services et aux personnes. Ces anomalies sont maintenant corrigées et l’ajout d’une ressource avec un & (esperluette) est fonctionnel.

Fonctionnalités

Interface web

APS-4079 Clôturer/déclôturer un workflow

Des besoins métier n’étaient pas couverts jusqu’à présent par des solutions du standard produit :

  • Le client a utilisé par erreur le bouton "Changement d'étape" sur un doc archivé ou valide ; il faut clôturer sans valider l'étape
  • Un ensemble de documents est obsolète mais toujours en workflow, ils relancent ou ne peuvent être archivés (car ils sont en workflow), il faudrait pouvoir les clôturer.

Afin de répondre à ces problématiques, nous avons mis en place une évolution permettant depuis un document, dans le menu "Outils" > "Workflow" de proposer une nouvelle entrée "Clôturer" permettant de clôturer le document consulté en choisissant une étape de fin de workflow. Les droits de fin de workflow sont alors appliqués et une nouvelle entrée de menu permet de "Déclôturer". image.png

APS-3610 Déclôturer le workflow des documents en masse

Afin de répondre à un besoin de déclôture en masse de documents, nous avons ajouté dans la fenêtre de modification en masse, une nouvelle entrée afin de déclôturer les documents sélectionnés. Si tous les documents sélectionnés n'utilisent pas le même workflow alors une Infobulle s'affiche sur l'action grisée indiquant : "Les documents sélectionnés ne suivent pas tous le même workflow". image.png

APS-4338 Désactivation des emails d'administration

Le produit donne maintenant la possibilité de ne plus envoyer d'emails lors d'un incident produit à l’adresse d’administration renseignée durant la phase d’installation de la solution (clé AdminEmail). Ces incidents étant toujours journalisés en base, afin de ne plus générer d'emails systématiquement la valeur d'AdminEmail est dorénavant optionnelle (un message dans l'installateur le mentionne). Si la valeur d'AdminEmail est vide, aucun mail n'est envoyé. Cette évolution permettra de ne pas surcharger la boite mail par défaut « trashavanteam@gmail.com ».

APS-4663 Ouvrir un document depuis un lien

Plusieurs remontées clients ont demandées l'amélioration du lien généré pour ouvrir un document. Ces liens ouvraient le document / pièce jointe dans la solution Avanteam, mais il n'était pas possible de naviguer dans l'application une fois le document consulté. Afin d’améliorer l’expérience utilisateur, il a été convenu que le document communiqué par lien serait ouvert dans le premier "big menu" visible de l'utilisateur (généralement le portail d'accueil). Des informations complémentaires concernant cette évolution sont disponibles sur la base documentaire d'Avanteam.

Sécurité & technique

Technique

APS-4758 Supprimer une clé de localisation inutile

Pour donner suite au traitement du ticket APS-4269, une clé de localisation a été supprimée car elle ne présente plus d’utilité. Il s’agit de WarnCompilationModDebug.

APS-4715 Livraison des dll en dépendance

Le standard produit propose l'utilisation de l'agent Avanteam.Application.Agents.Import.Document.DocumentImportAgent. Lors de l'exécution manuelle de cet agent, une erreur apparaissait. En effet le chargement de la licence fait référence à toutes les dlls Aspose. Or elles n’étaient pas forcément présentes. Afin de corriger le problème, nous avons mis à disposition les dll nécessaires.

Sécurité

APS-4750 V1_HIGH_XSS 1

Nous avons sécurisé les headers de nos formulaires afin d’empêcher l’interprétation de code à l'intérieur. Il n'est pas possible d'exploiter de faille XSS pour introduire un script malveillant dans les formulaires.

AvantAprès
image.pngimage.png

APS-4766 V1_HIGH_XSS 3

Nous avons sécurisé nos URL afin d’empêcher l’introduction de code à l'intérieur. Il n'est pas possible d'exploiter de faille XSS pour introduire un script malveillant.

APS-4751 Mise à jour de librairies JS vulnérables

Afin de corriger des problèmes de sécurité identifiés dans des versions de librairies JS utilisées, nous avons remplacé le package jquery-ui-dist par jquery-ui et réalisé une montée de version de :

  • jQuery UI
  • Moment.js

Concernant jQuery Validation, étant une dépendance de Microsoft.AspNetCore.Identity.UI, la version des packages Identity est montée de 6.0.19 à 6.0.25. Cette action a permis de mettre à jour jQuery Validation de 1.17.0 à 1.19.5.

APS-4768 Faille XSS par l'intermédiaire de fichier SVG

Une faille de sécurité portant sur les fichiers au format SVG a été corrigée. En effet les scripts potentiellement contenus dans des fichiers .svg ne sont plus exécutés lors d’actions sur les pièces jointes.

Breaking change

APS-4663 Ouvrir un document depuis un lien

La réalisation de cette évolution a entrainé plusieurs modifications du code exposé :

SetTabTitle

Les deux fonctions APScore.Window.SetTabTitle et APScore.Controller.SetTabTitle sont devevenues asynchrones. Voici comment transformer un code existant si un développement spécifique fait référence à ces fonctions :

Ancienne version
if (APScore.Window.SetTabTitle(tabKey, title)
{
// Votre code quand l'onglet a été trouvé et son titre a été changé
}
else
{
// Votre code quand l'onglet n'a pas été trouvé ou que son titre n'a pas été changé
}
// Suite de votre code
Nouvelle version utilisant Promise
APScore.Window.SetTabTitle(tabKey, title).then(result =>
{
if (result)
{
// Votre code quand l'onglet a été trouvé et son titre a été changé
return valueNeeded;
}
// Votre code quand l'onglet n'a pas été trouvé ou que son titre n'a pas été changé
return valueNeeded;
}).finally(valueNeeded =>
{
// Suite de votre code
})
Nouvelle version utilisant await
if (await APScore.Window.SetTabTitle(tabKey, title)
{
// Votre code quand l'onglet a été trouvé et son titre a été changé
}
else
{
// Votre code quand l'onglet n'a pas été trouvé ou que son titre n'a pas été changé
}
// Suite de votre code

GetQueryStringAction

La méthode Avanteam.Kernel.Web.ApsPageManager.GetQueryStringAction() ne retourne plus un string, mais une valeur de l’énumération Avanteam.Kernel.Web.AspxDistributer.DocumentAccessMode.

HttpNameValueCollection

La classe HttpNameValueCollection a été remplacée par une surcharge de NameValueCollection avec une méthode Avanteam.Kernel.Web.Extensions.SerializeToUrlQueryString. Voici un exemple de migration de code existant dans le cas où un développement spécifique utiliserait cette classe :

Ancienne version
var query = new HttpNameValueCollection(Request.QueryString);
var queryString = query.ToString();
Nouvelle version
using Avanteam.Kernel.Web.Extensions;
[]
var query = new NameValueCollection(Request.QueryString);
var queryString = query.SerializeToUrlQueryString();