Skip to main content
Version: Next

Avanteam Process Studio v23.17

Objet

Installation et contenu du pack v23.17.

Domaines d’application

La migration exige que les applications Avanteam soient en version :

  • 23.16

Procédure d'installation

Récupérer le paquet de mise à jour de la version depuis le serveur FTP Avanteam. Lancer AutoUpgradeTool.exe v2.4 en tant qu’administrateur et appliquer la mise à jour.

Correction

ImportDocs

APS-5756 Ajout DLL pour conversion pdf

Lors d'import d'enregistrements avec l'outil d'administration ImportDocs, des erreurs se produisaient lorsque les pièces jointes étaient converties en PDF dans les étapes de workflow qui étaient déroulées automatiquement. Les bibliothèques nécessaires aux actions sur les pièces jointes sont maintenant disponibles depuis les scripts lancés par le workflow.

APS-5862 Génération de Pdf depuis ImportDocs

Depuis la version v23.14, le message d'erreur suivant était généré si des actions sur les pièces jointes étaient réalisées par les actions de workflow (hors cas d'absence de dll : cf APS-5756) :

Warn|Avanteam.Import.Documents.ImportRunWorkflow|Unexpected exception in RunWorkflowOnDocument: Service Provider is not yet initialized|System.InvalidOperationException: Service Provider is not yet initialized

Le bon store est maintenant utilisé afin de réaliser les actions de manipulation des pièces jointes.

Process Studio

APS-5741 Localisation du nom de formulaires

La liaison entre workflows et formulaires se fait désormais via l'identifiant du formulaire, et non plus par son nom localisé. Cela permet de mieux distinguer les formulaires portant le même nom, mais évite surtout des problématiques lorsqu'un formulaire venait à être renommé.

Ordre des formulaires

La liste des formulaires est maintenant triée de manière alphabétique dans l'ensemble des interfaces de paramétrage de Process Studio et d'ImportDocs où il est possible de sélectionner un formulaire.

Changement de structure en base de données

Dans la table ProcessRepository, la colonne id_form a été ajoutée et la colonne formular_name est rendue obsolète. Cette colonne est conservée en v23 pour éviter des problèmes de compatibilité et sera supprimée en v26.

APS-5905 Import d’utilisateurs CSV KO

L'agent d'import de ressources depuis un fichier CSV générait l'erreur suivante depuis la version v23.14 :

Agent of type SynchronizationAgent failed with error: System.NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet.

Interface web

APS-5832 Annulation de changement d'intervenant en erreur

Lorsqu’un utilisateur annule l’action « changer d’intervenant » (ou « changer la date ») dans une étape de workflow, cela provoquait une erreur et faisait avancer le workflow alors que rien n’avait été modifié. Le correctif garantit que cliquer sur "Annuler" annule vraiment l’action : aucune valeur n’est changée et l’étape du workflow reste la même. Image

Message d'erreur qui n'apparait plus

APS-5845 Image des utilisateurs dans l'historique de WF

Dans l'interface web, lorsqu'un utilisateur consultait l'historique de workflow d'un enregistrement, l'utilisateur ne voyait pas d'image de profil lorsque l'étape a été validée par un utilisateur qui n'a pas d'image de profil. L'image par défaut d'un profil sans image est de nouveau affichée.

APS-5903 WF : action ouverture du dernier sous-process KO

Un problème apparaît lors de la création d’un enregistrement lié à un workflow utilisant un sous-processus et une tâche de script. Ce dysfonctionnement existait déjà, mais une mise à jour en v23.16 — qui rend le système plus strict — le rend désormais visible. Nous avons corrigé ce comportement pour rétablir le fonctionnement normal.

APS-5775 Sécurité et liste des utilisateurs

L'erreur suivante se produisait dans l'écran qui liste les utilisateurs de la solution :

The multi-part identifier "dr.dn_name" could not be bound. Invalid column name 'id'.

Cette erreur survenait dans le cas d'une application en mode multi société, et dont l'utilisateur :

  • n'a pas le rôle Admin
  • n'a pas la sécurité "Organisation" d'activée
  • a un profil lui permettant d'accéder à la liste des utilisateurs

Fonctionnalité

Process Studio

APS-3091 Forcer l'exécution d'un agent

Il est à présent possible de lancer un agent depuis Process Studio. Pour cela, il faudra vous rendre dans le menu Agents dans Process Studio, choisir l'agent et cliquer sur le bouton "Exécuter". Image

Nouveau bouton d'action disponible dans l'onglet Liste des agents

APS-5809 Tableau 4 colonnes dans Process Studio

La fonctionnalité d'ajouter un tableau contenant quatre colonnes dans un formulaire est à présent possible. Un bouton permettant de l'intégrer est disponible.

Image

Nouveau tableau disponible dans les formulaires

Interface Web

APS-4277 Filtrage local de l’administration des rôles

En mode multi sociétés, les administrateurs société n'ont plus la possibilité d'attribuer des rôles ayant l'attribut dedicatedToGlobalAdministrators aux utilisateurs. Quant à l’administrateur global, il peut toujours attribuer l'ensemble des rôles.

APS-5708 Mise à disposition d'icônes additionnelles

De nouvelles icônes sont disponibles dans la solution passant de 2.089 icônes à 7.384 icônes. Avec cette augmentation du nombre d'icônes, l'interface de sélection des icônes a été améliorée :

  • Côté web, il n'est plus nécessaire de taper un mot exact ; le texte entré dans l'interface filtre sur le début du nom des icônes ou des mots du champ lexical.
  • Côté Process Studio, les mots recherchés s'appuient maintenant aussi sur le champ lexical (en anglais) associé à chaque icône.
Champ lexical

A chaque icône est associé un champ lexical en anglais afin de faciliter votre recherche de l'icône parfaite. Par exemple, si vous recherchez l'icône à associer à votre formulaire de non conformité terrain pour vos sites de construction, il vous suffit de taper dans l'interface de recherche "construction". Vous verrez alors une sélection de 12 icônes correspondant à cette thématique : Image

Enfin, les icônes maintenant présentées sont toutes disponibles en deux styles :

  • solid : les icônes sont pleines
  • regular : seul le contour des icônes est dessiné

Image

Afin d'apporter de l'homogénéité et de la cohérence au sein de la solution, un seul de ces styles est mis à disposition suivant son utilisation :

UtilisationStyle
Icône de formulairesolid
Icône de navigateurregular
Icône de barre de navigationsolid
Icône de bouton d'actions de workflowsolid
Icône d'applicationsolid
Icône de widget de portailregular

Lors de la montée de version d'une solution existante, le style adéquate sera appliqué aux icônes déjà paramétrées.

Icônes de marques

Les icônes représentant des logos de marques (i.e. ayant le préfixe fa-brands) ne sont plus proposées dans les interfaces de paramétrage. Si toutefois celles-ci étaient utilisées avant la montée de version, elles continueront à être affichées correctement.

Vues "dossier"

Dans Process Studio, dans l'écran de paramétrage des propriétés de navigateur, les attributs Racine et Icône ne sont plus disponibles dans les entrées de type "Dossier", car ces attributs n'ont plus d'utilité.

APS-5713 Mettre à jour l'icone d'éclatement

La fonctionnalité d'éclatement des ressources disponible depuis la v23.16 (APS-2543) voit son icône évoluée afin de faciliter sa compréhension.

Sécurité et technique

Sécurité

APS-3285 Vulnérabilité XSS

Une faille XSS permettait l'interprétation de code au niveau du module de chat TeamConnect. Cette faille est maintenant neutralisée.

APS-5660 VLN_03 - Multiple XSS - tabKey

Une faille XSS permettait l'interprétation de code dans la recherche plein texte. Cette faille est maintenant neutralisée.

APS-5661 VLN_03 - Multiple XSS - IdDoc

Une faille XSS permettait l'interprétation de code dans la page d'accès aux enregistrements. Cette faille est maintenant neutralisée.

APS-5679 VLN 6 : XSS réfléchies

Une faille XSS permettait l'interprétation de code dans la page d'envoi d'un nouveau mot de passe. Cette faille est maintenant neutralisée.

APS-5680 VLN 7 : XSS Stockées

Une faille XSS permettait l'interprétation de code au niveau de l'identifiant de l'utilisateur. Cette faille est maintenant neutralisée.

APS-3864 P.03: Open redirection

Seules les redirections vers des URL spécifiées dans la clé Security.Redirection.AllowedUrls dans programs.ini sont autorisées en dehors du domaine du site web de la solution.

Technique

APS-5664 Amélioration de FormatWorkflowHistory

L’export de plus de 1.000 enregistrements dans des modèles statistiques surcharge le système, bloquant les nouvelles demandes et interrompant le service jusqu’au redémarrage manuel. Le problème vient du trop grand nombre de requêtes générées pendant l’export, ce qui ralentit ou bloque complètement l’opération. Ce dysfonctionnement a été corrigé et les performances améliorées.

APS-2199 Reprise du scheduler après une maintenance BDD

Le planificateur de tâches automatiques (scheduler) s'arrêtait lorsque la base de données était en opération de maintenance. Il était nécessaire de relancer manuellement son service associé. Dans ce même cas, le planificateur continuera à tenter d'exécuter ses tâches en attendant que la base de données soit de nouveau accessible.

Renommage de Groupe

L'attribut "Groupe" a été renommé "Thread" afin d'être plus compréhensible. Un thread identifie un process qui lancera une série d'agents, chaque thread étant indépendant et tourne en parallèle. L'écran qui liste les agents les regroupe dorénavant par numéro de thread. Image

Edition des agents

L'écran de paramétrage des agents sous Process Studio détecte maintenant les modifications, et demande à l'administrateur de sauvegarder si celui-ci décide de fermer l'onglet ou l'application sans avoir enregistrer au préalable.

APS-5883 Erreurs EF Core non tracées

Des logs d'erreur en écriture en base de données sont disponibles dans la table de log.

APS-5892 A second operation started on this context

Une fuite de mémoire a été observée depuis la v23.15 qui pouvait conduire au message d'erreur suivant :

A second operation started on this context before a previous operation completed. This is usually caused by different threads using the same instance of DbContext. For more information on how to avoid threading issues with DbContext, see https://go.microsoft.com/fwlink/?linkid=2097913.

Un correctif a été mis en place pour qu'une variable du contexte d'exécution qui était conservée ne le soit plus.

APS-5899 Patch 23.16.1 ne permet pas la migration

Le patch de montée de version v23.15.1 vers v23.16.1 pouvait provoquer l'erreur suivante :

2025-11-21T13:49:50|Trace|Publish view UserList
2025-11-21T13:49:50|Trace|20 view(s) published
2025-11-21T13:49:50|Trace|Exception non gérée : System.InvalidOperationException: This ApplicationProfileContext is not the current one. This instance is already disposed, or ApplicationProfileContext instances have not been correctly disposed in reverse order.Avanteam.Kernel.DataSource.ApplicationProfileContext.Dispose() dans D:\a\aps\aps\Kernel\Src\DataSource\ApplicationProfileContext.cs:ligne 83Avanteam.Kernel.DependencyInjection.ApplicationProfileScope.Dispose() dans D:\a\aps\aps\Kernel\Src\DependencyInjection\ApplicationProfileScope.cs:ligne 27
2025-11-21T13:49:50|Trace| ApsCli.Program.<Main>d__8.MoveNext() dans D:\a\aps\aps\Administration.Tools\ApsCli\Program.cs:ligne 58
2025-11-21T13:49:50|Trace|--- Fin de la trace de la pile à partir de l'emplacement précédent au niveau duquel l'exception a été levée ---System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
2025-11-21T13:49:50|Trace| ApsCli.Program.<Main>(String[] args)
2025-11-21T13:49:53|Error|Échec de la republication : aps.exe exited with error code -532462766
System.Exception: aps.exe exited with error code -532462766
at Avanteam.AutoUpgrade.Services.ApsCli.Run(String arguments) in D:\a\aps-autoupgradetool\aps-autoupgradetool\AutoUpgradeLib\Services\ApsCli.cs:line 43
at Avanteam.AutoUpgrade.Services.Republisher.Republish() in D:\a\aps-autoupgradetool\aps-autoupgradetool\AutoUpgradeLib\Services\Republisher.cs:line 52
2025-11-21T13:49:53|Info|Mise à jour terminée avec succès.

Cette erreur était dû au correctif apporté en v23.15.1 ainsi que l'évolution du programme aps-cli qui est devenu asynchrone depuis la version v23.16. Un correctif a été apporté dans patch afin de prendre en compte ces évolutions.

APS-5889 DbConnection reste ouvert trop longtemps

L'ouverture d'une connexion vers la base de données pour l'exécution de requêtes brutes (i.e. écrites et non interprétées par Entity Framework) a été revue afin que celles-ci puissent être fermées automatiquement et libérer de la mémoire.

APS-5589 Amélioration du protocole SCIM

Plusieurs améliorations ont été apportées dans cette version :

  1. Le champ identifiant les utilisateurs côté SCIM est branché sur l'attribut dn_name côté Avanteam et non plus loginname qui n'est pas obligatoire.
  2. Si un utilisateur ayant un dn_name d'un utilisateur déjà existant dans la solution Avanteam tente d'être ajouté par le protocole SCIM tente d'être ajouté, alors un message d'erreur est retourné.
  3. Les filtres simples, comme ceux utilisés par OKTA, sont pris en charge. Les tris et filtres basiques sont opérationnels.

APS-5712 Optimisation des images et CSS

Afin d'optimiser le chargement des icônes, les feuilles de styles chargées ont été découpées afin que seules les classes strictement nécessaires soient chargées dans le navigateur. De plus, certaines images utilisées au sein de la solution ont été remplacées par des icônes. En voici quelques exemples :

  • L'icône de la fenêtre de changement d'intervenant ou de date
  • L'icône de l'outil d'administration de mots de passe
  • L'icône de verrou indiquant qu'un enregistrement est en cours d'édition par un autre utilisateur
  • L'icône de chargement de la prévisualisation de pièces jointes

Pour finir, un espace additionnel a été ajouté dans la popup de validation d'une étape de workflow afin d'avoir une séparation entre l'icône et le texte.

Breaking Change

APS-5712 Optimisation des images et CSS

Les icônes suivantes ne sont plus disponibles car une icône similaire existait déjà :

Icône obsolète-Icône similaire-
fa-user-largeImagefa-userImage
fa-user-large-slashImagefa-user-slashImage
fa-headphones-simpleImagefa-headphonesImage
fa-vector-squareImagefa-draw-squareImage
fa-handshake-simpleImagefa-handshakeImage
fa-handshake-simple-slashImagefa-handshake-slashImage

Note : Leur remplacement a été automatisé dans le processus de montée de version.

Les feuilles de style suivantes ne sont plus livrées car elles ne sont plus utilisées :

  • Dans le dossier Web/Model/Layout :
    • DualView.css
  • Dans le dossier Web/Model/Styles :
    • AdminDirectory.css
    • Banner.css
    • DefaultFeed.css
    • ImportDlg.css
    • LayoutMain.css
    • Banner.css
  • Dans le dossier Web/Model/Styles/Modules :
    • Portal.css
    • Portal.css.ori
    • PortalDesign.css
    • StdNavigator.css
    • StdNavigator.css.mod

APS-5814 Supprimer import export formulaire

Les boutons d'action Importer et Exporter disponible dans l'écran de liste des formulaires de Process Studio ont été supprimés car cette fonctionnalité n'est plus supportée.

Image

Les actions supprimées dans Process Studio

APS-5845 Image des utilisateurs dans l'historique de WF

L'appel à l'URL ~/Workflow/WorkflowHandler.ashx?action=GUP&name={0} pour obtenir la photo de profil d'un utilisateur n'est plus fonctionnel et doit être remplacé par ~/PStudioActions.ashx?action=UserPicture&user={0}.

APS-5472 Migration de ArchiveDataSource

  • Les deux énumérations suivantes étaient redondantes. La première a été supprimée et ses usages ont été remplacés par la seconde.
namespace Avanteam.Application.Archives.DataSource;

public enum DatabaseTypes
{
/// <summary>
/// Base applicative.
/// </summary>
Application = 1,

/// <summary>
/// Base archive passive (format XML).
/// </summary>
Archive = 2,

/// <summary>
/// Base archive active (vrai documents).
/// </summary>
LiveArchive = 3,
}
namespace Avanteam.Application.Repository.Constants;

public enum ArchiveDatabaseType
{
/// <summary>
/// Applicative database.
/// </summary>
Application = 1,

/// <summary>
/// Passive archive database (XML format).
/// </summary>
PassiveArchive = 2,

/// <summary>
/// Active archive database (real documents).
/// </summary>
ActiveArchive = 3,
}