Skip to main content
Version: Next

Avanteam Process Studio v23.0

Objet

La version v23 de la suite Avanteam est une mise à jour majeure qui apporte de nombreuses améliorations ergonomiques, fonctionnelles et techniques.

Domaines d’application

Ce document s’applique à la version majeure v23 du produit Avanteam Process Suite.

Prérequis techniques

La liste complète des prérequis techniques pour cette nouvelle mouture de la solution se trouve référencée dans le document PRC-P-008.

Architecture

L’architecture de la solution évolue.

Site web et pools d’applications

Dorénavant, en plus de chaque application web publiée pour chacune des applications métier, une application web supplémentaire est publiée à la racine du site web. Celle-ci a pour dénomination application « root » et est chargée de l’authentification. De plus, un pool d’applications est dédié à cette application.

Extensions

Il était possible à tout un chacun de rajouter de nouvelles assemblies (sous formes de fichiers .dll) dans notre solution afin de pouvoir y faire appel dans des actions, dans la définition d’acteurs ou encore créer de nouveaux types d’agent. Afin d’apporter de la structure à la solution et de faciliter leur référencement, un dossier est maintenant dédié à ces assemblies supplémentaires : ./PStudio.Extensions/ Le sous-dossier System est dédié aux extensions « produit ».

Fichiers de paramétrage

Nouvelle structure

Dans cette nouvelle version de la suite Avanteam, le paramétrage de la solution déployée n’est plus réparti dans les fichiers de configuration des différents outils de la suite, mais est centralisé dans trois fichiers placés dans le dossier ./PStudio.Configuration :

  • Applications.xml va lister les applications déployées et leur paramétrage de connexion
  • saml-config.json va définir la configuration SAML du site en tant que Service Provider
  • programs.ini va regrouper les clés de paramétrage et leurs valeurs, organisées par sections

Seul le paramétrage technique (en opposition aux clés de paramétrages) restera suivant l’ancien modèle (référencement des librairies et de leurs versions, clés de sécurité, …). Cela signifie que les fichiers de configuration existants dans les versions précédentes :

  • Soit n’existent plus
  • Soit ne doivent plus être altérés car ils seront susceptibles d’être écrasés à chaque montée de version.

Voici la liste des fichiers impactés, présents en v21 :

  • .\PStudio.Administration\ImportDocs.exe.config
  • .\PStudio.Administration\ImportDocsConsole.exe.config
  • .\PStudio.Client\Avanteam.Studio.Main.exe.config
  • .\PStudio.Net.Web\[nom_de_l_application]\web.config
  • .\PStudio.Net.Web\[nom_de_l_application]\saml.config
  • .\PStudio.Services\[nom_de_l_instance]\Avanteam.WindowService.Scheduler.exe.config
  • .\PStudio.Services\ManageService\AvanteamManageService.exe.config
  • .\PStudio.Services\Remoting-[nom_de_l_instance]\Avanteam.WindowService.Remote.exe.config
  • .\PStudio.Services\Scheduler\Avanteam.WindowService.Scheduler.exe.config
  • .\PStudio.SyncTool\SyncTool.exe.config

Migration

Le paramétrage existant sera automatiquement migré de la version existante vers la v23 lors de l’exécution de l’AutoUpgradeTool. C’est-à-dire :

  • Le paramétrage offert par le produit se retrouvera transformé et gardé dans la nouvelle structure
  • Les clés additionnelles qui auront pu être définies par le client ou par le chef de projets seront de même migrées
  • Néanmoins, si des références à des DLL additionnelles ont été ajoutées, il incombera au chef de projets de les reporter dans un fichier de configuration séparé ; en ce qui concerne le site web, cela signifie de déclarer un autre fichier web.config pour pouvoir les référencer et de le placer dans le dossier contenant les pages y faisant appel (et non pas à la racine).

Installation

Avec la v23, l’installateur évolue lui aussi en offrant une nouvelle expérience. Voici les évolutions que vous propose cette version :

Options de déploiement de l’instance

Une étape supplémentaire vous sera proposée lors de l’installation de votre v23 :

image.png

Le chef de projets pourra spécifier le type d’environnement sur lequel il souhaite déployer la solution.

Production

Il s’agit de l’environnement mis à disposition des utilisateurs finaux. Le fait de choisir cette option active le chiffrement des données entre le client et le serveur (SSL : Secure Sockets Layer). De plus, cela mettra en place le HSTS (HTTP Strict Transport Security) afin de protéger les utilisateurs en assurant que la connexion au serveur se fasse toujours via une connexion HTTPS. Cette option est aussi conseillée dans la mise en place d’environnements de préproduction.

Staging

Idéal pour les environnements de recette, ce choix rendra optionnel l’activation du SSL et du HSTS.

Development

Ce choix est à utiliser strictement pour les installations d’un environnement de paramétrage. En plus de rendre l’activation du SSL et du HSTS optionnelle, la compilation est réalisée en mode Debug (en opposition à Release) afin d’avoir plus d’informations en cas de remontée d’erreurs.

Applications

Un changement de comportement a été introduit en v23.

  • Création d'applications v21 : image.png
  • Création d'applications v23 : image.png

Durant la phase de configuration d’une solution, une et une seule application fédératrice peut être spécifiée ; cette application est la première application listée. Cette restriction, qui était auparavant le comportement par défaut d’une installation v21, a été implémentée afin de combler une possible faille de sécurité.

Serveur Web

Suivant l’option sélectionnée (cf. "Options de déploiement de l’instance"), il vous sera offert la possibilité de configurer votre serveur web en http ou en https.

image.png

Par défaut, le port http sera le 80, et le port https sera le 443, et en cas de sélection du https, il sera possible de charger le certificat SSL.

Serveur SMTP

image.png

Dans la dernière étape de configuration de votre solution, il est maintenant possible de configurer l’activation du SSL pour les connexions SMTP.

Migration

Tout comme les montées de versions mineures, la migration d’une version v21 vers une v23 s’effectue en utilisant l’outil AutoUpgradeTool. La version 2.0 de l’outil est nécessaire.

Prérequis

Il n’est possible d’effectuer une migration vers une version v23 seulement pour les solutions :

  • N’ayant qu’une seule application fédératrice
  • Dont l’ensemble des applications partagent la même base de données d’annuaire (Directory)

Dans le cas où plusieurs applications fédératrices sont présentes dans la solution, il sera à la charge du chef de projets de redéployer autant de solutions que d’applications fédératrices et de synctooler les applications existantes dans celles nouvellement installées avant de les migrer. Si le projet ne répond pas à la seconde exigence, il faudra réunir les données des différentes bases annuaire au sein d’une seule et même base et utiliser un discriminant pour filtrer les données au sein de chaque application, par exemple lier chaque utilisateur à un service faisant référence à la base annuaire de départ.

AutoUpgradeTool

Répertoire des patchs

Au passage de la v23, l’extension utilisée pour les patchs de montée de version change de .7z à .upg. La version 2.0 de l’outil AutoUpgradeTool est capable de prendre en charge les deux types d’extension.

Sélection de l’instance

image.png

Dorénavant, la mise à jour de la solution ne se fait plus application après application, mais sur l’ensemble de l’instance déployée. Il en est de même pour la sélection des outils à mettre à jour :

  • Process Studio, Administration, SyncTool
  • Remoting, ManageService
  • La sélection de l’emplacement des services planifiés (Scheduler)
  • La sélection de l’emplacement du site web

Ces étapes sont maintenant automatiquement et systématiquement réalisées afin de faciliter les montées de version et assurer la cohérence. Il sera présenté un récapitulatif des applications présentes et des versions de chacune de ces applications. Il restera tout de même possible de changer la version détectée dans le cas d’une montée de version précédente s’étant mal déroulée afin de pouvoir la rejouer.

Lancement de la montée de version

Le mode « Simulation » a été supprimé de l’outil. Ce mode complexifiait les montées de version du produit et son impact était en réalité très limité dans la détection de possibles problèmes.

Fin de la montée de version

A la fin de la migration, une sauvegarde automatique des anciens fichiers de configuration est réalisée. Le chef de projet pourra accéder à une copie de l’ensemble des fichiers de configuration de son ancienne version dans le dossier parent du dossier d’installation de la solution. Ce dossier est nommé « backup-conf – [NOM_DU_DOSSIER_D_INSTALLATION] – [DATE_HEURE] », ce qui donne par exemple « backup-conf – v23 - 201312312300000000 ». Le chef de projets pourra alors vérifier le bon transfert de la configuration précédente. Il pourra déplacer ou supprimer ce dossier si il le souhaite.

Nouveautés

Interface

Mode sombre PStudio

Afin de faciliter l’utilisation de nos logiciels, nous avons introduit un mode sombre dans l’atelier de conception Process Studio. En plus d’avoir un effet sur la consommation de nos écrans, le mode sombre évite la fatigue des yeux de l’utilisateur en cas d’utilisation prolongée.

image.png

image.png

Le réglage se réalise à l’aide de la nouvelle icône apparue en haut à droite de la fenêtre PStudio ; trois modes sont possibles :

  • Le mode système (activé par défaut) : il reprend le paramètre du mode que vous avez activé sur votre session Windows (ou sur celle sur laquelle PStudio tourne) : clair ou sombre. image.png
  • Le mode clair : il permet de forcer l’utilisation du mode clair. C’est le thème qui est livré depuis la version v21. image.png
  • Le mode sombre : il permet de forcer l’utilisation du mode sombre. image.png
Mode clair ou sombre sous Windows 11

Pour activer le mode sombre automatiquement sur vos applications Windows 11, vous pouvez vous rendre sur votre session Windows dans Démarrer > Paramètres > Personnalisation > Couleurs et ensuite sélectionner Sombre parmi les valeurs de Choisir votre mode.

Mode sombre site web

L’éditeur de thèmes de l’interface web évolue lui aussi pour proposer aux administrateurs de définir un thème sombre en plus du thème clair de leur application. image.png

Par défaut, la solution Avanteam sera livrée avec trois thèmes :

  • Light : le thème actuel par défaut de la solution
  • Dark : son équivalent en mode sombre
  • Dark dimmed : une déclinaison du thème sombre avec des couleurs plus atténuées Les administrateurs pourront utiliser ces thèmes afin d’offrir une déclinaison adaptée à la charte graphique de leur entreprise. Dès que le thème de chaque mode sera appliqué, il sera possible à chaque utilisateur de définir le type de thème (clair ou sombre) qu’il souhaite utiliser dans son utilisation de la solution. Ce choix sera réalisé au travers du menu utilisateur.

image.png

Homogénéisation des couleurs

Il reste à souligner que beaucoup d’éléments de la solution web ont été revues pour s’adapter à un thème défini par un administrateur fonctionnel.

Documentation en ligne

La documentation de la solution Avanteam est maintenant disponible en ligne, hébergée sur un site web. Un accès direct pour les utilisateurs est mis à disposition si ceux-ci bénéficient du rôle « Documentation ». Dans ce cas, un menu supplémentaire est disponible à partir du menu utilisateur.

image.png

Icônes des barres de navigation

Il est offert la possibilité d’associer une icône à chaque entrée d’une barre de navigation.

image.png

Vous pouvez le paramétrer au niveau de Process Studio, dans l’écran de définition des entrées.

Formulaire

Champ Id

Un nouveau type de champ est mis à disposition dans le concepteur de formulaires : le champ « Id ». image.png

Ce champ peut être inséré dans le formulaire afin d’y stocker la référence d’un document. En utilisant ce champ, les requêtes seront optimisées lors de l’affichage des vues.

Champ Libellé localisable

Le champ « Libellé localisable » est disponible, permettant d’afficher un libellé dans un formulaire avec la capacité d’être localisé (traduit dans plusieurs langues). image.png

Champ "Libellé"

Un champ « Libellé » était déjà disponible en v21 mais était très limité dans ses options et sa configuration. Ce champ a été rendu obsolète en v21.18 en étant absorbé par ApsFieldText pour pouvoir parer à ses faiblesses. Ce champ « Libellé localisable » reprend le scope original et comble la fonction de localisation qui lui faisait défaut.

Pièces jointes dans les tableaux de détails

Il est possible d’ajouter une colonne de type « Fichier » aux tableaux de détails standards. image.png

Ce nouveau type de colonne permet d’ajouter un fichier unique par ligne du tableau. En option, il est possible de spécifier la liste des extensions de fichier autorisées, ainsi que d’imposer une taille maximale dans le chargement du fichier. Les fichiers joints dans un tableau de détails restent accessibles dans la visionneuse de pièces jointes et seront indexés pour la recherche plein texte.

Documents

Visionneuse de pièces jointes

La visionneuse de pièces jointes permet d’accéder à un aperçu des fichiers qu’un utilisateur a lié à un document. Pour y accéder, un utilisateur peut :

  • Activer le panneau de prévisualisation depuis une vue (activer Affichage > Prévisualisation, puis sélectionner Affichage > Pièces jointes) afin d’accéder aux pièces jointes du document sélectionné dans la vue.
  • Accéder directement aux pièces jointes d’un document depuis une vue si une colonne dédiée a été configurée.
  • Accéder au fichier concerné depuis un document en cliquant sur son nom depuis un composant Fichier, Image ou Module Bureautique, ou bien en cliquant sur la loupe associée au fichier.
  • En activant la prévisualisation à l’intérieur du document (Prévisualisation > choisir une des options En bas, A gauche ou A droite).

1. PDF multi couches Si un utilisateur joint à un document un fichier PDF comportant plusieurs couches, il est possible de les activer / désactiver à la demande à partir de la visionneuse de pièces-jointes. Pour cela, il suffira

  • De faire apparaître le panneau latéral gauche de la visionneuse
  • Si le fichier contient plusieurs couches, un menu supplémentaire sera disponible
  • Cocher / décocher les couches que vous souhaitez activer image.png

2. Annotation Il est possible de commenter directement un fichier PDF depuis la visionneuse de pièces jointes pour un utilisateur ayant les droits de modifications sur le document. A partir de la visionneuse de pièces jointes :

  • L’utilisateur devra sélectionner le mode Annotate
  • Il aura à sa disposition plusieurs outils de sélection de texte ou de zones afin de spécifier le scope de l’annotation
  • Il aura la possibilité d’apposer un commentaire afin de décrire les actions à effectuer image.png

Chaque commentaire est accompagné de l’information de l’auteur l’ayant créé, ainsi que de sa date de création. Il sera aussi possible de répondre à un commentaire existant et d’y affecter un statut : Accepted, Rejected, Cancelled, Completed, None, Marked, Unmarked.

Corbeille de documents

Une nouvelle mécanique a été mise en place pour palier à la suppression de documents par inadvertance. Un administrateur a la possibilité de supprimer un ou plusieurs documents depuis une vue en les sélectionnant, puis en se rendant dans le menu Actions > Supprimer le(s) documents(s). image.png

En v21, et avant, cette action était définitive. L’administrateur ne pouvait récupérer les documents supprimés qu’en montant une sauvegarde de la base de données. Dorénavant, chaque action de suppression d’un document va aller nettoyer la base de la référence de ce document afin qu’il n’apparaisse pas dans les différents rapports et vues, mais va en conserver les informations de manière temporaire pendant 10 jours : le document est alors placé dans une corbeille. Passés ce délai, à chaque nouveau placement de documents dans la corbeille, les documents expirés qu’elle peut contenir seront définitivement purger de la solution par lot de 10 (à chaque action). Un document qui sera restauré verra une majorité de ses informations de nouveau disponibles :

  • La valeur des champs du formulaire
  • Les informations des tableaux de détails
  • Les liens bidirectionnels
  • Les listes de diffusions et leurs états
  • Les droits d’accès hors workflow
  • Les pièces jointes
  • Les messages TeamConnect

Cependant, les informations concernant le statut de workflow n’auront pas la possibilité de se trouver de nouveau à disposition. Pour pouvoir restaurer un de ces documents, l’administrateur a à sa disposition l’outil « aps » présent dans le dossier d’administration de la solution (./PStudio.Administration). Cet exécutable est appelé en ligne de commandes et dispose d’une nouvelle commande « trash » (ou « t »). Afin de connaitre les possibilités de l’outil, l’administrateur peut s’aider de l’option « -h » afin de connaitre les actions possibles. Voici quelques exemples de commandes à disposition :

  • aps -h Renvoie la liste des commandes mises à disposition ; la nouvelle commande « trash » (et son alias « t ») y sera listée
  • aps t -h Renvoie la liste des actions possibles sur la corbeille
  • aps t ls Liste les documents placés dans la corbeille
  • aps t r --trashId [XXX] Restaure le document associé à l’identifiant de corbeille [XXX]. Le document est de nouveau disponible dans l’application.
  • aps t p Supprime définitivement au plus les 10 plus anciens documents placés depuis plus de 10 jours dans la corbeille
  • aps t p d 0 q 5000 Supprime définitivement au plus les 5.000 plus anciens documents placés dans la corbeille sans exigences sur la date de mise en corbeille.

Recherche plein texte

Affichage des heures

Dans les résultats de la recherche plein texte, les heures ne sont plus dorénavant affichées afin de faciliter la lecture.

  • Résultats de recherche v21 : image.png
  • Résultats de recherche v23 : image.png

Paramétrage

Configuration SAML

Jusqu’à présent, la configuration SAML (Security Assertion Markup Language) qui permet la gestion d’authentification des utilisateurs auprès d’un IdP (Identity Provider) se réalisait en important manuellement un fichier de metadata et cette opération se devait d’être réalisée à chaque renouvellement de certificats. La solution présente maintenant une interface de gestion des configurations SAML, accessible en ajoutant la page Security/SAML/ImportMetadata.aspx dans une des entrées de votre navigateur d’administration. La première innovation vient du fait qu’il est possible de gérer plusieurs IdP, via plusieurs configurations au sein de la solution : image.png

Pour ajouter un IdP, il suffit de cliquer sur l’icône + présente dans l’entête de la liste afin d’accéder au formulaire. image.png

Les champs disponibles sont :

  • Le Nom qui contient le libellé qui sera affiché sur la page de connexion de la solution
  • L’EntityID qui permet d’identifier de manière unique l’IdP. Cette valeur est souvent l’URL de Metadata de l’IdP ou une partie de cette URL. Ce champ doit correspondre à l’attribut EntityID des metadata et sera automatiquement mis à jour quand les metadata sont mises à jour.
  • L’URL de Metadata qui est l’adresse URL permettant la configuration automatique des champs. Si cette URL est spécifiée, les Metadata, Configuration et Conf valide jusqu’au seront automatiquement rempli lors de la première connexion. Il est donc recommandé de la spécifier afin de bénéficier des mises à jour automatiques des Metadata et du certificat, réalisés du côté de l’IdP. Cette mise à jour sera forcée dans les cinq jours précédant la date d’expiration de la configuration.
  • Les Metadata sont le schema au format SAML contenant les informations de connexion et notamment le certificat.
  • La Configuration permet de spécifier des paramètres de connexion.
  • L’Username Attribute qui est le champ attribut tel que configuré dans Process Studio et qui permet d’authentifier l’utilisateur auprès de l’IdP (laisser vide si cela correspond au DN de l’utilisateur)
  • Conf valide jusqu’au est la date indicative qui spécifie la limite dans le temps de la configuration utilisée. Il est conseillé de ne pas y toucher et de laisser le système remplir ce champ, à part pour mettre une date dans le passé et ainsi forcer une tentative de mise à jour des metadata au prochain accès.

Pour chaque nouvelle configuration SAML effectuée, un nouveau bouton de connexion sera mis à disposition sur la page d’authentification. Chaque bouton reprendra le libellé du champ « Nom ». image.png

Activation de XPO sur les vues

XPO (eXpress Persistent Object) est un outil de correspondance avec des objets relationnels qui permet de communiquer avec une base de données. L’opportunité qui est offerte ici est de pouvoir activer cet outil sur les vues de la solution. Le bénéfice est que les données qui seront retournées à l’interface utilisateur seront limitées aux données affichées à l’écran. A l’opposé, en désactivant cette option, l’ensemble des données constituant une vue est retourné, bien que le système de pagination en place n’en affiche qu’une sous-partie. Néanmoins, bien que des performances notables soient visibles, qui plus est sur les vues contenant un nombre important d’enregistrements, des limitations sont à prévoir :

  • Le filtrage et le tri sur une colonne se fera sur la valeur des cellules et non pas sur le texte affiché (ces deux valeurs peuvent être différentes si nous prenons le cas d’une colonne contenant des liens).
  • La recherche utilisant le panneau de recherche se basera sur la valeur des cellules des colonnes.
  • La sélection réalisée en utilisant la case à cocher de sélection globale ne sélectionnera que les enregistrements affichés sur la page courante.

Afin de l’activer, vous pouvez vous rendre dans l’onglet des options de la vue sous PStudio. image.png

Localisation des outils

Les outils

  • ImportDocs qui permet d’importer en masse des documents dans l’application
  • SyncTool qui permet de synchroniser deux environnements

sont disponibles en anglais (langue par défaut) et en français. La langue de l’interface est automatiquement sélectionnée suivant l’environnement sur lequel l’outil est lancé.

Performances

Différentes actions ont été réalisée dans cette nouvelle version majeure de la solution Avanteam. Notamment, on notera :

  • Un chargement plus rapide du formulaire d’un document grâce à une meilleure gestion du cache.
  • La définition des vues utilisées dans les widgets du portail n’est plus recalculée à la volée.
  • Il est assuré que le résultat affiché par certains widgets du portail n’est calculé qu’une seule fois lors de son chargement.
  • Des modifications ont été apportées sur nos bases de données.

Breaking changes

Internet Explorer

La compatibilité de la v23 avec le navigateur Internet Explorer ne sera plus assurée. En effet, ce navigateur n’est plus maintenu par son éditeur, Microsoft, au profit de Microsoft Edge. Ce navigateur n’est plus intégré au système d’exploitation Windows depuis Windows 11 et ne peut être utilisé depuis certaines versions de Windows 10 qu’en activant un mode de compatibilité de Microsoft Edge.

Authentification Windows

Dans cette version, la configuration Windows ne se fera plus en spécifiant une clé de configuration dans le fichier web.config, mais en ajoutant une nouvelle configuration d’IdP.

Bibliothèque NLog

La bibliothèque NLog qui est utilisée pour la gestion des logs de la solution a été mise à jour de la version 2.1.0 vers la version 5.2.0. Si des configurations spécifiques des logs ont été mises en place sur la solution, veillez à consulter la section « Breaking Changes » de la version 5.0.

Driver Oracle

La v23 embarque une nouvelle version du driver Oracle, privilégiant la version pour .Net Standard 2.1 au dépend de l’ancienne version pour .Net Framework 4. La difficulté dans cette montée de version est que les deux paquets utilisent une dll portant le même nom, bien que différente dans leur contenu (choix réalisé par Oracle). Il y a donc un risque d’effet de bord si un projet utilise un code non livré par l’équipe Produit et référençant cette dll ; il sera nécessaire de devoir recompiler le code afin que la bonne version de la dll soit prise en compte. Ceci ne concerne que les solutions utilisant une base de données Oracle (en opposition à SQL Server).

Code Obsolète

Plusieurs classes, énumérations, fonctions et propriétés étaient marquées depuis plusieurs versions comme obsolètes ; la sortie de la version majeure v23 rend maintenant ce code non accessible. Veuillez trouver ci-après la liste exhaustive.

Liste des classes supprimées

NamespaceNomCommentaire
Avanteam.Application.DataSourceUserDataSourceClasse utilisateur exposant seulement son nom et reliée à aucune méthode pouvant aller chercher les données en base de données.

Liste des énumérations ou des valeurs supprimées

NamespaceNomValeurCommentaire
Avanteam.Application.Modules.DistributionDistributionStatusToDistributePaperCette valeur d’énumération est à remplacer par ToDistribute qui gère aussi bien la distribution papier que la distribution électronique.
Avanteam.Application.SecurityEmailCategoryCette énumération a été remplacée par Avanteam.Kernel.Mail.EmailTemplateCategory.
Avanteam.Kernel.CacheFormCacheTypeEXPIRATION_DATECette valeur d’énumération est à remplacer par FORM_MODIFICATION_DATE.
Avanteam.Kernel.DataSourceConnectionTypeRemotingCette valeur d’énumération n’a jamais été fonctionnelle car ce type de connexion n’a pas été implémenté.
Avanteam.Workflow.ComponentModel.SharedPeriodBusinessDaysCette valeur d’énumération n’est plus supportée depuis la version v16, il est possible d’utiliser cette valeur.

Liste des méthodes et fonctions supprimées

NamespaceClasseNomCommentaire
Avanteam.ApplicationWorkflowClientRuntimeGetScriptManagerForFieldInheritance(DocumentDocHelper sourceDocument, IApsDocument targetDocument, Hashtable scriptParameters, ScriptLoading scriptLoading)Utiliser la même fonction sans ScriptLoading.
Avanteam.ApplicationWorkflowClientRuntimeEmail_Send(Instance instance, Mail mail)Utiliser SendMail(Instance instance, Mail mail).
Avanteam.ApplicationWorkflowClientRuntimeEmail_Send(Instance instance, Mail mail, EmailCategory emailCategory)Utiliser SendMail(Instance instance, Mail mail) sans spécifier de catégorie.
Avanteam.ApplicationWorkflowClientRuntimeSendMail(Instance instance, Mail mail, EmailCategory emailCategory)Utiliser la même fonction sans EmailCategory.
Avanteam.ApplicationWorkflowClientRuntimeFormatBody(string text, IApsDocument document, Instance instance = null)Utiliser Avanteam.Application.FormatMailMessage.FormatBody.
Avanteam.ApplicationWorkflowClientRuntimeFormatSubject(string text, IApsDocument document, Instance instance = null)Utiliser Avanteam.Application.FormatMailMessage.FormatSubject.
Avanteam.Application.DataSourceApplicationDataSourcePushDifferedEmailList(string idDocument, MailTemplate sourceMail, List<string> differedList, EmailRecipientType recipientType, EmailCategory category, DateTime dateMail)Utiliser la classe MailTemplate à la place de MailMessage.
Avanteam.Application.DataSourceApplicationDataSourcePushDifferedEmailList(string idDocument, MailTemplate sourceMail, List<string> differedList, EmailRecipientType recipientType, EmailTemplateCategory category, DateTime dateMail)Utiliser la classe MailTemplate à la place de MailMessage.
Avanteam.Application.DataSourceApplicationDataSourcePushDifferedEmailList(string idDocument, MailMessage sourceMail, List<string> differedList, EmailRecipientType recipientType, EmailCategory category, DateTime dateMail)Utiliser la classe MailTemplate à la place de MailMessage.
Avanteam.Application.DataSourceApplicationDataSourcePushDifferedEmailList(string idDocument, MailMessage sourceMail, List<string> differedList, EmailRecipientType recipientType, EmailTemplateCategory category, DateTime dateMail)Utiliser la classe MailTemplate à la place de MailMessage.
Avanteam.Application.Log.DataSourceIApplicationLogManagerForceAddLogAction(ApplicationLogAction log)Attention : les classes héritant de cette interface seront impactées :
  • ApplicationLogManagerWrapper
  • Oracle.ApplicationLogManagerWrapper
  • Sql.ApplicationLogManagerWrapper
.
Avanteam.Application.Web.UI.WebControlsApplicationManagerGetWorkflowTranslation(string type, string defaultValue, string idInstance)Utiliser LocalizeWorkflowElementBy[IdInstance/IdProcess].
Avanteam.ComponentsQueriesGetResourceByName(string cn_name)Utiliser GetResourceByKey(). Attention aux appels du Remoting.
Avanteam.Directory.DataSourceIDirectoryManagerGetResourceByName(string cn_name)Utiliser GetResourceByKey(string keyName, string keyValue) en spécifiant “cn_name” pour l’attribut keyName. Attention, les classes héritant de cette interface sont impactées de la même manière :
  • DirectoryManagerWrapper
  • Oracle.DirectoryManagerWrapper
  • SQL.DirectoryManagerWrapper
Avanteam.Directory.DataSourceDirectoryManagerWrapperLoadResource(DirectoryManagerWrap string type)Utiliser LoadResource2(string type).
Avanteam.Directory.DataSourceDirectoryManagerWrapperLoadServices()Utiliser LoadServices2().
Avanteam.Documents.DataSourceEMailTemplateManagerWrapperGetLocalizedEMailTemplate(CultureInfo culture, string templateName, int category)Utiliser l’énumération EmailTemplateCategory à la place du int.
Avanteam.Documents.DataSourceEMailTemplateManagerWrapperLoadEMailTemplates(int category)Utiliser l’énumération EmailTemplateCategory à la place du int.
Avanteam.Documents.DataSourceEMailTemplateManagerWrapperLoadEMailTemplates(int category, string lang)Utiliser l’énumération EmailTemplateCategory à la place du int.
Avanteam.Documents.DataSourceEMailTemplateManagerWrapperLoadEMailTemplate(string lang, string name, int category)Utiliser l’énumération EmailTemplateCategory à la place du int.
Avanteam.Import.DocumentsISourceDataDisposeSourceData()La classe hérite désormais de IDisposable, donc la méthode Dispose() est accessible.
Attention les classes héritant de cette interface seront impactées : Extension.DataSourceBase.
Avanteam.Import.DocumentsISourceDataInitializeSourceData(string srcFilePath)Le paramètre srcFilePath n'est pas pris en compte. Il faut appeler la méthode InitializeSourceData() directement.
Attention les classes héritant de cette interface seront impactées : Extension.DataSourceBase.
Avanteam.Import.DocumentsISourceDataSetDelimiter(char srcDelimiter)Il est possible de personnaliser le délimiteur du CSV par l'interface.
Attention les classes héritant de cette interface seront impactées :
  • Extension.DataSourceBase
  • Documents.CsvSourceData (namespace Import.Extension.CSV)
Avanteam.Kernel.Parameters.DataSourceIContentParamsManagerDeleteXmlContent(int contentType, string name)Utiliser DeleteContent(ParamContentType contentType, string name).
Attention, les classes héritant de cette interface seront impactées :
  • ContentParamsManagerWrapper
  • Oracle.ContentParamsManagerWrapper
  • SQL.ContentParamsManagerWrapper
Avanteam.Kernel.Parameters.DataSourceIContentParamsManagerGetXmlContent(int contentType, string name)Utiliser GetContent(ParamContentType contentType, string name).
Attention, les classes héritant de cette interface seront impactées :
  • ContentParamsManagerWrapper
  • Oracle.ContentParamsManagerWrapper
  • SQL.ContentParamsManagerWrapper
Avanteam.Kernel.Parameters.DataSourceIContentParamsManagerLoadList(int contentType)Utiliser LoadList(ParamContentType contentType).
Attention, les classes héritant de cette interface seront impactées :
  • ContentParamsManagerWrapper
  • Oracle.ContentParamsManagerWrapper
  • SQL.ContentParamsManagerWrapper
Avanteam.Kernel.Parameters.DataSourceIContentParamsManagerSetXmlContent(int contentType, string name, string description, string xmlContent)Utiliser SetContent(ParamContentType contentType, string name, string description, string content).
Attention, les classes héritant de cette interface seront impactées :
  • ContentParamsManagerWrapper
  • Oracle.ContentParamsManagerWrapper
  • SQL.ContentParamsManagerWrapper
Avanteam.Kernel.Parameters.DataSourceIContentParamsManagerUserDeleteXmlContent(string id)Utiliser UserDeleteContent(string id).
Attention, les classes héritant de cette interface seront impactées :
  • ContentParamsManagerWrapper
  • Oracle.ContentParamsManagerWrapper
  • SQL.ContentParamsManagerWrapper
Avanteam.Kernel.Parameters.DataSourceIContentParamsManagerUserGetXmlContent(string id)Utiliser UserGetContent(string id).
Attention, les classes héritant de cette interface seront impactées :
  • ContentParamsManagerWrapper
  • Oracle.ContentParamsManagerWrapper
  • SQL.ContentParamsManagerWrapper
Avanteam.Kernel.Parameters.DataSourceIContentParamsManagerUserLoadList(int contentType)Utiliser UserLoadList(ParamUserContentType contentType).
Attention, les classes héritant de cette interface seront impactées :
  • ContentParamsManagerWrapper
  • Oracle.ContentParamsManagerWrapper
  • SQL.ContentParamsManagerWrapper
Avanteam.Kernel.Parameters.DataSourceIContentParamsManagerUserLoadList(int contentType, string username)Utiliser UserLoadList(ParamUserContentType contentType, string username).
Attention, les classes héritant de cette interface seront impactées :
  • ContentParamsManagerWrapper
  • Oracle.ContentParamsManagerWrapper
  • SQL.ContentParamsManagerWrapper
Avanteam.Kernel.Parameters.DataSourceIContentParamsManagerUserLoadList(int contentType, string username, string contentKey)Utiliser UserLoadList(ParamUserContentType contentType, string username, string contentKey).
Attention, les classes héritant de cette interface seront impactées :
  • ContentParamsManagerWrapper
  • Oracle.ContentParamsManagerWrapper
  • SQL.ContentParamsManagerWrapper
Avanteam.Kernel.Web.ExtensionsSmtpClientExtensionsSendByBatchOfRecipientAndLog(this SmtpClient smtpClient, MailMessage message, string idDoc)Les fonctions d’envoi de mail Avanteam doivent utiliser la classe MailTemplate en lieu et place de la classe MailMessage.
Il faut donc instancier la classe MailMessage avec le corps de mail et les destinataires, puis utiliser la fonction Send().
Avanteam.Kernel.Web.ExtensionsSmtpClientExtensionsSendFireAndForget(this SmtpClient smtpClient, MailMessage message, string docId = null, Action onSuccess = null, Action<Exception> onException = null)Les fonctions d’envoi de mail Avanteam doivent utiliser la classe MailTemplate en lieu et place de la classe MailMessage.
Il faut donc instancier la classe MailMessage avec le corps de mail et les destinataires, puis utiliser la fonction Send().
Avanteam.Kernel.Web.ExtensionsSmtpClientExtensionsSend(this SmtpClient smtpClient, MailMessage message, string idDoc = null, Action<Exception> onException = null)Les fonctions d’envoi de mail Avanteam doivent utiliser la classe MailTemplate en lieu et place de la classe MailMessage.
Il faut donc instancier la classe MailMessage avec le corps de mail et les destinataires, puis utiliser la fonction Send().
Avanteam.Kernel.Web.ExtensionsSmtpClientExtensionsSendAsyncAndLog(this SmtpClient smtpClient, MailMessage message, string idDoc = null, Action<Exception> onException = null)Les fonctions d’envoi de mail Avanteam doivent utiliser la classe MailTemplate en lieu et place de la classe MailMessage.
Il faut donc instancier la classe MailMessage avec le corps de mail et les destinataires, puis utiliser la fonction SendAsync().
Avanteam.Studio.Deployment.AnalysersAnalyseRuntimeGetConnectionType(string databaseName)Cette fonction était mise à disposition dans l’environnement de SyncTool. Il est maintenant exigé de ne pas récupérer le type de connexion directement, mais toujours par l’intermédiaire d’un objet associé à une chaîne de connexion.
Il faut utiliser la fonction AddLogAction(..., force: true).
Avanteam.Workflow.ComponentModel.SharedMailGetLocalizedMail(Mail mail, int category)Remplacer l’int de la catégorie par une valeur de l’énumération EmailTemplateCategory.

Liste des propriétés supprimées

NamespaceClassePropriétéCommentaire
Avanteam.Application.DataSourceApplicationDataSourceUserLanguageUtiliser directement APSUser.UserLanguage.
Avanteam.Import.DocumentsImportBaseClassTemporaryPathModifier cette propriété n'a plus aucun impact désormais, le moteur d'import ne l'utilise plus.
Avanteam.Kernel.DataSourceConnectionTypeStringUtilisation de la propriété Type.
Avanteam.Kernel.OfficeOfficeTemplateExchangeDirectionNe plus utiliser cette propriété, elle indiquait dans quel sens le mapping OfficeTemplateDocument avait lieu. Cette propriété est tout simplement ignorée.
Avanteam.Kernel.WebNavigatorEntryActionPropriété inutilisée.
Avanteam.Modules.Web.DirectoryDirectoryToolsIsOracleUtiliser la propriété DirectoryDataSource.IsOracle.

Obsolescence des outils satellites

Outil de Remoting

Dans le dossier d’administration (./PStudio.Administration) est livré avec la solution un utilitaire permettant de vérifier la connexion à distance mise en place par la solution et effectuer un panel d’actions : RemoteClient.exe. Avec les évolutions successives des versions, une action qui était mise à disposition dans cet utilitaire est devenue obsolète et n’est plus supportée par la version actuelle ; il s’agissait de réaliser une sauvegarde des bases de données de l’annuaire. Le bouton a été supprimé de l’interface : image.png

Outil de gestion des Services

Manage Service Dans le dossier des Services livré en standard (./PStudio.Services), un utilitaire de gestion des services était présent dans le dossier ManageService. image.png

L’utilisation de cet utilitaire est devenue obsolète car la configuration des services est maintenant réalisée au niveau de l’installateur et le suivi des services est réalisé par l’application Services disponible sur le serveur IIS. L’utilitaire n’est donc plus livré avec la solution.

Manage Remote Service Toujours dans le dossier d’administration, un autre outil est présent pour gérer et relancer les services : il s’agit de l’outil Manage Remote Service. image.png

Après analyse de l’outil, celui-ci n’est plus fonctionnel depuis la version v16 et l’outil ne présente pas d’utilité pour les administrateurs. L’outil, qui n’était plus maintenu, n’est donc plus livré.

Outil de migration Domino

L’outil de migration des projets Domino vers les projets .Net ne sera plus livré dans les releases. Les projets Domino correspondent aux premières versions de la solution Avanteam lorsque celle-ci s’appuyait sur une technologie IBM. En 2008, Avanteam a effectué le choix de se tourner vers des technologies Microsoft (.Net) et fournissait un outil permettant de migrer la configuration d’une technologie à une autre au travers de l’utilitaire DominoMigration.exe disponible dans le dossier ./PStudio.Administration. Si une migration d’un projet Domino vers un projet .Net devait se faire, la procédure déjà en place est de réaliser une migration intermédiaire dans une version majeure inférieure de la version .Net. Le chef de projet pourra alors utiliser l’utilitaire de migration déjà disponible dans cette version. image.png

Actions Manuelles

Veuillez réaliser les actions manuelles suivantes afin d’assurer le bon fonctionnement de la solution :

Installation d’APS.Net Core Runtime

Veuillez vous assurer que vos environnements sont conformes aux Prérequis techniques.

Racine du site web

Veillez à supprimer l’ancien répertoire racine du site web wwwroot placé dans le répertoire ./PStudio.Net.Web, ou bien à le déplacer en dehors du répertoire d’installation si il est nécessaire de le conserver.

Reconstruction de l’index de la recherche plein texte

Afin d’effectuer cette opération, vous devez :

  • Vous rendre dans la section AdminTools de votre solution et sélectionner l’outil « AdminFulltextIndex »
  • Cliquer sur le bouton « Forcer la reconstruction de l’index »