Fit Your Apps !   

Blog Post

Automatiser l'interception et la personnalisation des erreurs dans K2 Smartforms

  • par Hamza Cheref
  • 28 juil., 2017

Comment intercepter et personnaliser les exceptions levées dans K2 Smartforms de façon dynamique

Comment intercepter et personnaliser les exceptions levées dans K2 Smartforms de façon dynamique ?

Une fois, un client m'a signalé un bug dans une des applications K2 que je lui avais réalisé, il m'avait assuré qu'il s'agit d'un bug grave parce que le message d'erreur était écrit en Anglais... Mouais ! Après diagnostique, je constate que l'utilisateur en question n'avait juste pas le droit de démarrer un workflow. 

Il est vrai que les messages d’erreurs par défaut dans K2 Smartforms ne sont pas très très convivials, et peuvent être intimidant pour un utilisateur lambda vu qu’ils sont en anglais. Dans ce qui va suivre, nous allons voir comment personnaliser ces messages avec une astuce permettant d'automatiser leur interception.


Tout d'abord, il faut savoir que pour intercepter une erreur K2 il faut connaitre son code (ID), voici une liste non exhaustive des codes erreurs connues :

Code Erreur

Message

24408

Vous n'êtes pas autorisé à démarrer ce workflow. Veuillez contacter l'administrateur.

24411

Cette tâche a dêjà été traitée ou réattribuée à un autre utilisateur.

25223

Le workflow est introuvable. Veuillez contacter l'administrateur.

7524

Impossible de communiquer avec le serveur de base de données. Veuillez contacter l'administrateur.

24414

Vous n'êtes pas autorisé à visualiser ce workflow. Veuillez contacter l'administrateur.

24418

Vous n'êtes pas autorisé à traiter cette tâche.

L'idée consiste à stocker d'abord cette liste dans votre serveur de données communiquant avec votre serveur K2, cela peut être dans une table de base de données SQL ou dans une liste SharePoint ou autre, afin de pouvoir ensuite générer le SmartObject de la liste. Vous pouvez même créer la liste directement dans votre serveur K2 via un SmartBox.

Voici à quoi ressemblera le SmartObject nommé ici [SMO_FriendlyErrors] (il est important que la propriété [ErrorID] soit de type [Number] ) :
Une fois le SmartObject créé, générer la vue liste associée, nommée ici [View_FriendlyErrors] comme l'image ci-dessous (il est important de ne pas cocher la case [Call this method when the form loads] afin de ne pas surcharger le chargement de vos formulaires et les ralentir) :
Dans le canevas de la vue, cliquer sur [Create Labels and controls] comme indiqué dans l'image ci-dessous afin de générer automatiquement la vue liste. Cliquer sur OK et ensuite sur Finish et enregistrer la vue.
Maintenant que votre SmartObject et sa vue liste générés, vous pouvez mettre à jour les formulaires des applications dans lesquelles vous souhaitez personnaliser les messages d'erreurs.

Pour ce faire :
  • Editer votre formulaire K2
  • Ajouter la vue [View_FriendlyErrors] dedans et ensuite cacher la (décocher la case [Visible]). Et puisque, souvenez-vous, nous avons décoché la case [Call this method when the form loads] au moment de la création de la vue, le temps de chargement du formulaire ne sera pas affecté.
  • ajouter la règle [When the Form is in Error] à votre formulaire, et mettez dedans les actions suivantes :
La première action consiste à charger la liste complète des codes erreurs stockés dans notre SmartObject. La liste n'étant pas volumineuse (une dizaine voire une vingtaine de lignes) cette action ne devra pas ralentir l'affichage du message.

La deuxième action est une [Advanced condition] dans laquelle on doit tester si le message d'erreur initial contient l'ID d'une des erreurs stockées :
Si la condition est vérifiée, alors l'action [Show a message to the user] sera exécutée, afficher donc le message personnalisé :
Mais si l'erreur survenue n'est pas gérée dans notre liste, il faut la ré-afficher, elle sera certes en Anglais :) mais il faut quand même l'afficher afin de pouvoir être diagnostiquée. Et si vous souhaitez qu'elle soit gérée par votre liste, il suffit juste d'ajouter un nouvel enregistrement à votre SmartObject [SMO_FriendlyErrors] avec le nouveau code erreur ainsi qu'un joli message d'erreur en Français et le tour est joué !
par Hamza Cheref 11 avril 2018

L'intelligence artificielle dans les processus métiers d'entreprise

Et l'IA par-ci, et l'IA par-là ! On ne jure que de l'IA depuis quelques temps, des prévisions et des annonces à la pelle ne cessent de voir le jour, promettant la quatrième révolution industrielle qui changera radicalement la surface de la terre, cette terre que nous, espèce humaine allons apparemment bientôt devoir la partager avec une autre espèce qu'est les Robots ! Mmm.. j'ai comme l'impression de regarder une publicité commerciale qui essaye de me vendre les merveilles d'un produit qui, au final, ne me servirait peut-être pas a grand-chose, car même si les investissements sur les technologies de l'IA dans le monde sont estimés à être dix fois plus élevés d'ici quelques années, une grande incertitude plane sur le retour de ses investissements.

par Hamza Cheref 28 février 2018

Comment afficher une liste de données SharePoint sous format graphique en utilisant HighCharts

Highcharts est une librairie graphique multi-plateforme basée sur JavaScript. Optimisées pour appareils mobiles, elle permet l'intégration de graphiques réactifs rendant les données beaucoup plus interactives et facile à comprendre. Afin d'intégrer cette librairie dans SharePoint Online et utiliser ses graphes pour visualiser les informations de vos listes, vous devez récupérer d'abord les données de ces listes à l'aide d'un modèle de programmation client (comme CSOM Client-side Server Object Model ou JSOM JavaScript Object Model ou REST ) comme ci-dessous avec JSOM :
par Hamza Cheref 2 janvier 2018

Comment configurer l'attribution des tâches aux participants d'un flux de travail K2 Blackpearl

Il est très important lors de la modélisation d'un flux de travail de prendre en considération la façon de configurer l'affectation des tâches aux utilisateurs participants, car une mauvaise configuration, même si elle peut répondre aux besoins fonctionnels, pourrait avoir un impact négatif sur les performances de votre plateforme. Et c'est pour quoi, il est primordiale de bien comprendre le fonctionnement des règles de destination dans un workflow K2.
Show More
Share by: