Personnaliser les smartactions K2

Les smartactions K2… pour ceux qui ne connaissent pas, il s’agit de la possibilité de terminer une tâche simplement en répondant à l’e-mail de notification. Cela fonctionne avec Exchange (utilisation des Exchange Web Services) et uniquement si vous avez paramétré une boîte à lettres pour le compte de service K2 lors de l’installation du produit (configuration des smartactions).

D’un point de vue utilisateur final, il suffit juste de répondre à l’e-mail comme si on répondait à un collègue et d’écrire l’action attendue dans le corps du message. C’est très pratique lorsque l’utilisateur doit seulement donner son avis. Lorsque pour terminer la tâche, de nombreuses informations sont requises (remplissage d’un formulaire), alors il est possible de désactiver cette fonctionnalité au niveau de la conception du processus. C’est pour autoriser les smartactions, entre autres, que sert l’option Make the action available without opening the work item lors de la configuration des actions :

Bref… passons au sujet de ce billet : comment personnaliser les emails envoyés par cette fonctionnalité ? Le premier intérêt est d’afficher le message dans une autre langue que l’anglais, mais cela peut être utile pour mettre les mails à l’image de mon application.

Lorsqu’on utilise les smartactions, on peut recevoir plusieurs e-mails différents :

  1. Un mail de notification de tâche à faire. Celui-ci, tout le monde sait le personnaliser lors de la configuration de l’événement client. Notons juste que lors de l’utilisation des smartactions, il est important de laisser dans le corps du message le Worklist Item Serial Number ( certains clients s’amusent à mettre ce champ de la même couleur que la couleur de fond, afin de le cacher car il n’est pas très esthétique), ce paramètre étant utilisé par K2 pour faire le lien entre le mail et la tâche. Et il peut être intéressant de laisser les Configured Actions et Standard Actions, pour que l’utilisateur sache quelles actions sont autorisées.
  2. Un mail de confirmation d’exécution de l’action qui est par défaut en anglais.
  3. Un mail de notification d’action non réalisée qui est également par défaut en anglais.
  4. Un mail en cas d’erreur non prévue.
  5. Un mail en cas de problème de paramètres (cas des actions standard : rediriger, deléguer…)

Nous allons nous concentrer sur la personnalisation des points 2 et 3, puis nous aborderons la mise en place de synonymes afin d’étendre les possibilités de saisies d’actions et enfin, nous verrons comment désactiver certains messages (afin de ne pas trop recevoir de mails non plus).

Personnalisation du mail de confirmation

La composition des messages se base sur des modèles HTML (et TXT) qui sont disponibles dans un sous répertoire d’installation de K2, par défaut C:\Program Files (x86)\K2 blackpearl\Host Server\Bin\Templates\Messages.

Dans le cas de la personnalisation du mail de confirmation de bonne exécution, il faut donc modifier le fichier SmartActions.ActionExecuted.htm.

Voici ce que cela peut donner :

Quelques données dynamiques peuvent être ajoutées, comme ici le nom de l’action et le nom de l’activité qui a été terminée. Dans le code HTML ces variables sont mises entre {}, dans mon exemple, il s’agit de {ActionTaken} et {EventName}, qui font toutes deux parties du modèle de base. Vous trouverez une liste exhaustive des champs disponibles dans la documentation K2.

Personnalisation du mail d’action non réalisée

Même principe ici, sauf qu’il s’agit de la personnalisation d’un autre fichier : SmartActions.UnhandledError.htm.

Voici ce que cela peut donner :

A quoi correspondent les autres fichiers du répertoire

  • SmartActions.StandardActionsWithDescriptions.htm : il s’agit du code HTML correspondant à ce qui doit s’afficher lorsqu’on utilise la variable {StandardActionsWithDescriptions} permettant d’afficher la liste des actions standards (rediriger, deléguer…) avec une description.
  • SmartActions.StandardActions.htm : il s’agit du code HTML correspondant à ce qui doit s’afficher lorsqu’on utilise la variable {StandardActions} permettant d’afficher la liste des actions standards (rediriger, deléguer…) sans description.
  • SmartActions.SleepError.htm : il s’agit du code HTML pour le message envoyé lorsqu’il y a eu un problème à l’exécution de l’action standard “mettre en attente” (sleep).
  • SmartActions.Sleep.htm : il s’agit du code HTML pour le message de confirmation d’exécution de l’action standard “mettre en attente” (sleep).
  • SmartActions.RedirectError.htm : il s’agit du code HTML pour le message envoyé lorsqu’il y a eu un problème à l’exécution de l’action standard “rediriger” (redirect).
  • SmartActions.Redirect.htm : il s’agit du code HTML pour le message de confirmation d’exécution de l’action standard “rediriger” (redirect).
  • SmartActions.ItemNotFound.htm : il s’agit du code HTML pour le message indiquant que la tâche à terminer n’a pas été trouvée (cas où la tâche aurait été préalablement terminée par exemple).
  • SmartActions.Help.htm : il s’agit du code HTML pour le message reçu lorsque l’utilisateur demande de l’aide au serveur de smartactions (s’il répond Help ou ? au mail de notification).
  • SmartActions.Error.htm : il s’agit du code HTML pour le message reçu en cas d’erreur “non prévue”.
  • SmartActions.DelegateError.htm : il s’agit du code HTML pour le message envoyé lorsqu’il y a eu un problème à l’exécution de l’action standard “déléguer” (delegate).
  • SmartActions.Delegate.htm : il s’agit du code HTML pour le message de confirmation d’exécution de l’action standard “déléguer” (delegate).
  • SmartActions.Actions.htm : il s’agit du code HTML correspondant à l’affichage de l’ensemble des actions (standards et dépendantes de la conception).

Gestion des synonymes

Les termes attendus pour exécuter les actions sont de 2 types :

  1. Les termes correspondant aux actions standards : actions existantes pour toutes les tâches, à savoir rediriger, déléguer et mettre en attente.
  2. Les termes correspondant aux actions configurées : ils dépendent donc de la modélisation et sont donc attendus dans la langue de conception. On retrouvera souvent en français les termes “valider”, “validation”, “refuser”, “refus” etc.

Afin de pouvoir utiliser les smartactions en multilangues ou pour anticiper des fautes de frappe ou des termes sensiblement équivalent, il est possible de définir un “dictionnaire” de synonymes.

Imaginons une conception faîte en anglais. Le concepteur peut définir les actions “Approve” et “Decline” pour sortir d’une tâche. Dans ce cas, les smartactions attendront forcément l’un de ces deux termes. Avec le dictionnaire de synonymes il est possible de paramétrer les smartactions pour que l’action “Approve” puisse être exécutée avec les termes supplémentaires “Approved”, “Approuver”, “Approuvé”, “Approbation”, “Validé”, “Validation”, “OK”, “Yes”, “Oui” etc. (NB : les smartactions ne sont pas casesensitives).

Pour cela, il faut modifier le fichier de configuration K2hostserver.exe.config disponible par défaut à l’adresse suivante sur le serveur K2 : C:\Program Files (x86)\K2 blackpearl\Host Server\Bin\K2HostServer.exe.config.

 attention, il s’agit d’une configuration générale, elle s’applique donc à toutes les applications disponibles sur ce serveur K2.

Dans le fichier k2hostserver.exe.config, cherchez la section <synonyms>, puis ajoutez vos valeurs. Pour reprendre l’exemple précédent étendu aux actions standard et au refus, voici ce que la section peut donner :

<synonyms>
	<actionsStandard>
		<!-- Supported synonyms for the Redirect action -->
		<action value="redirect">
			<!-- Shorthand -->
			<synonym value="r" />
			<synonym value="rediriger" />
			<synonym value="redirigé" />
			<synonym value="redirection" />
		</action>
		<!-- Supported synonyms for the Delegate action -->
		<action value="delegate">
			<!-- Shorthand -->
			<synonym value="d" />
			<synonym value="déléguer" />
			<synonym value="délégué" />
		</action>
		<!-- Supported synonyms for the Sleep action -->
		<action value="sleep">
			<!-- Shorthand -->
			<synonym value="s" />
			<synonym value="mettre en attente" />
			<synonym value="pause" />
			<synonym value="mise en attente" />
		</action>
		<!-- Supported synonyms for the Help action -->
		<action value="help">
			<synonym value="h" />
			<synonym value="aide" />
			<synonym value="?" />
		</action>
		<!-- Supported synonyms for the Actions action -->
		<action value="actions">
			<synonym value="a" />
			<synonym value="action" />
		</action>
	</actionsStandard>
	<actionsConfigured>
		<!-- Common configured actions and allowable alternatives -->
		<action value="approve">
			<synonym value="approved"/>
			<synonym value="approuver"/>
			<synonym value="approuvé"/>
			<synonym value="approbation"/>
			<synonym value="valider"/>
			<synonym value="validé"/>
			<synonym value="validation"/>
			<synonym value="OK"/>
			<synonym value="yes"/>
			<synonym value="oui"/>
		</action>
		<action value="decline">
			<synonym value="declined"/>
			<synonym value="reject"/>
			<synonym value="rejected"/>
			<synonym value="décliner"/>
			<synonym value="décliné"/>
			<synonym value="refuser"/>
			<synonym value="refusé"/>
			<synonym value="KO"/>
			<synonym value="NOK"/>
			<synonym value="No"/>
			<synonym value="Non"/>
		</action>        
	</actionsConfigured>
</synonyms>

Et le résultat :

Désactiver certains messages

Il est possible de désactiver certains messages envoyés. Par exemple, si vous souhaitez que le serveur vous envoie un mail en cas d’erreur, mais que ce n’est pas la peine qu’il le fasse lorsque cela a bien fonctionné, alors il suffit de modifier le fichier de configuration  K2hostserver.exe.config disponible par défaut à l’adresse suivante sur le serveur K2 : C:\Program Files (x86)\K2 blackpearl\Host Server\Bin\K2HostServer.exe.config.

 attention, à nouveau, il s’agit d’une configuration générale, elle s’applique donc à toutes les applications disponibles sur ce serveur K2.

Dans le fichier k2hostserver.exe.config, cherchez la section <smartActions>, puis ajoutez enabled="false" aux messages que vous trouvez superflus. Voici ce que la section peut donner si on ne souhaite recevoir que des messages en cas d’erreur mais pas pour des confirmations d’actions réalisées (messages actionExecuted, sleep, redirect, delegate) :

 <smartActions>
    <messages>
      <help filename="Templates\Messages\SmartActions.Help" />
      <actions filename="Templates\Messages\SmartActions.Actions" />
      <unhandledError filename="Templates\Messages\SmartActions.UnhandledError" />
      <error filename="Templates\Messages\SmartActions.Error" />
      <actionExecuted enabled="false" filename="Templates\Messages\SmartActions.ActionExecuted"/>
      <standardActions filename="Templates\Messages\SmartActions.StandardActions" />
      <standardActionsWithDescriptions filename="Templates\Messages\SmartActions.StandardActionsWithDescriptions" />
      <sleep enabled="false" filename="Templates\Messages\SmartActions.Sleep"/>
      <sleepError filename="Templates\Messages\SmartActions.SleepError" />
      <redirect enabled="false" filename="Templates\Messages\SmartActions.Redirect"/>
      <redirectError filename="Templates\Messages\SmartActions.RedirectError" />
      <delegate enabled="false" filename="Templates\Messages\SmartActions.Delegate"/>
      <delegateError filename="Templates\Messages\SmartActions.DelegateError" />
      <itemNotFound filename="Templates\Messages\SmartActions.ItemNotFound" />
    </messages>
    <synonyms>
    ...
    </synonyms>
 </smartActions>

Cet article est fortement inspiré de la documentation K2, notamment la partie sur la configuration des smartactions K2.

N’hésitez pas à utiliser les commentaires si vous avez des questions à ce sujet.

Happy K2ing!

jean

Directeur technique de K2 France depuis 2006 et passionné par les technologies, je travaille dans le monde du BPM et des applications métier depuis... que je travaille :). Vous pouvez également me suivre sur twitter, linkedin.

3 thoughts to “Personnaliser les smartactions K2”

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.