Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Kype's blog

Technical and technological issues around Microsoft's products
[SharePoint] Afficher les commentaires du "Routing Workflow"

Ceux qui ont un jour utilisé le workflow SharePoint de recueil de commentaires (Routing Workflow), ont sûrement essayé de retrouver les commentaires recueillis, et je suis surpris de voir que ce soit aussi compliqué.

En fait, SharePoint stocke les commentaires dans la liste "Workflow History" (première liste créée par défaut avec le workflow) traçant l'historique du workflow. Cette liste est n'est pas visible quand on affiche le contenu d'un site, mais elle existe bel et bien et on y accède en ajoutant /Lists/Workflow%20History/AllItems.aspx au niveau de l'url du site :

image

Ce n'est pas franchement lisible pour un utilisateur quelconque, mais maintenant qu'on sait où se trouve la liste, plusieurs solutions existent pour afficher les commentaires d'une manière plus lisible. Nous allons voir comment faire avec le Web Part de requête de contenu en adaptant le style pour supprimer tout ce qui ne nous intéresse pas.

Commençons par configurer le Web Part de requête de contenu :

image

Et modifions maintenant le fichier ItemXSLStyle.xsl pour afficher les champs retournés par la query. Pour cela j'utilise le template suivant dans le fichier ItemXSLStyle.xml :

<xsl:template name="brutDeFonderieStyle" 
match="Row[@Style='brutDeFonderieStyle']"
mode="itemstyle"> <xsl:for-each select="@*"> <b> <xsl:value-of select="name()"/> </b> = <xsl:value-of select="."/><br/> </xsl:for-each> </xsl:template>

Les éléments sont renvoyés sous la forme suivante :

image

L'idéal serait de pouvoir filtrer les éléments suivant le champs "Event Type" lorsque celui-ci vaut "Task Completed", mais celui-ci n'apparaît pas dans le résultat de la query, du moins pas directement. J'utilise donc un autre filtre :

image

image

Il ne reste plus qu'à mettre en forme le résultat en utilisant par exemple le template suivant :

<xsl:template name="Commentaires" match="Row[@Style='Commentaires']" 
mode="itemstyle"> <xsl:value-of select="substring-after(
@_x007B_2fd53156_x002D_ff9d_x002D_4cc3_x002D_b0a
c_x002D_fe8a7bc82283_x007D_,
   'Comments:')"
/><br/>
</xsl:template>

On obtient alors la liste de nos commentaires :

image

Si vous essayez, vous allez sûrement croire que j'essaye de vous duper, le type de contenu n'étant pas visible au niveau de la configuration de la requête de contenu.
En fait, il manque une petite étape préalable pour pouvoir requêter la liste, car le type de contenu est déclaré dans le groupe "_hidden" et la liste est cachée.
Il faut commencer par activer les types de contenus au niveau de la liste "WorkFlow History" (List Settings > Advanced Settings) pour faire apparaître le type de contenu "Workflow History"

image

En cliquant sur le type de contenu on se rend compte qu'il possède un parent de même nom :

image

C'est ce type de contenu parent qu'il faut modifier et changer de groupe pour le mettre dans un groupe "visible" :

image image

Le type de contenu est visible par la requête de contenu :

image

N'oubliez pas de cocher 'Child content types", je vous rappelle que c'est le type de contenu parent que nous avons rendu visible Smile
A ce stade la requête ne renvoit aucun élément car la liste n'est pas visible. Si on regarde les propriétés de la liste avec SharePoint Designer, on voit que celle-ci est cachée :

image

Il est possible de la rendre visible à ce niveau (avec SharePoint Designer) ou alors de le faire par code.

Ce qui est curieux, c'est que si on édite le workflow en lui indiquant d'utiliser une nouvelle liste d'historique de workflow (et en changeant le nom du workflow, le nom de la liste utilisant le nom du workflow), la nouvelle liste créée n'est pas cachée cette fois-ci...
C'est une 3ème solution (si on peut l'appeler comme ça) pour rendre la liste visible sans passer par SharePoint Designer ou du code.

Conclusion:

J'avoue que la démarche n'est pas du tout immédiate, le packaging pour le déploiement n'étant pas encore fait, et le rendu des commentaires peut être largement amélioré avec l'affichage de l'auteur du commentaire et de la date, par exemple (ce qui peut être fait comme déjà vu ici). Mais ceci aura au moins permis de lever les difficultés liés à cette fonctionnalité, et encore une fois, je suis surpris qu'elle ne soit pas disponible nâtivement.

Une autre piste à creuser est l'utilisation d'un EventHandler sur la liste d'historique qui recopie les éléments dans une liste dédiée aux commentaires. Ceci permet d'ailleurs de répondre à un problème que je n'ai pas évoqué jusque là : la purge des éléments de la liste d'historique après 60 jours... Du coup, bon coding ! Big Smile

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: mardi 7 avril 2009 16:23 par Kype
Classé sous : , , ,

Commentaires

Pas de commentaires

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Merci par Blog de Jérémy Jeanson le 10-01-2019, 20:47

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01