SQL Server chez les clients – Implémenter des Workflows pour les données de référence avec Master Data Services
La gestion des données de référence, ou Master Data Management (MDM), permet aux organisations de travailler sur un socle consolidé et fiable pour les informations référentes. Master Data Services (MDS) est la solution Microsoft SQL Server de gestion des données de référence.
Dans ce billet, nous allons présenter MDS en nous intéressant particulièrement à une de ses fonctionnalités souvent méconnue mais néanmoins très puissante : Les Workflows.
Problématique
Avec l’explosion de la production de donnée et les besoins croissants d’analyse de celle-ci, les entreprises sont de plus en plus souvent confrontées aux problématiques suivantes :
- Permettre le croisement des données entre les différents systèmes afin de répondre aux besoins de Reporting
- Assurer une gestion de la qualité des données
- Définir des processus de gouvernance des données qui soit à la fois simples et efficaces
Bénéfices
- Centralisation : La rationalisation entraine une simplification et une baisse des coûts de gestion
- Unification : Les référentiels uniques permettent aux systèmes de consommer des références consolidées
- Alignement : Le rapprochement rend possible le croisement des données entre les systèmes
- Ajustement : Les données corrigées, formatées et enrichies répondent aux besoins métiers
- Partage : L’ensemble des Systèmes y accèdent de manière autonome et sécurisée
Master Data Services
Master Data Services, est spécifiquement conçu pour gérer les données de référence. Ses fonctionnalités principales sont reprises dans le schéma ci-dessous:
Interface utilisateur :
- Navigateur Internet
- Addin Excel
Structuration :
- Modélisation par Modèle\Entité\Attribut
- Modélisation de hiérarchie Simple\Récursive
Validation :
- Règles métier assurant la validation
- Liens entre les entités assurant la cohérence des données
Correspondance :
- Qualité de donnée par la définition de règle
- Interfaçage avec Data Quality Services (DQS est un module spécifiquement dédié à la gestion de la qualité de donnée)
Versions :
- Des modèles
- Des occurrences
Sécurité :
- Gestion de Users/Rôles
- Sécurisation fine des structures de donnée None/Read/Write
- Gestionnaire de transaction
Intégration et Partage :
- Chargement par batch (Entity Based Staging)
- Web Services CRUD
- Vues SQL d’abonnement
- Workflows et notifications
Les workflows de validation
Les Workflows de validation permettent de contrôler le statut de la donnée tout au long de son cycle de vie. Une donnée peut avoir un statut ‘Nouveau’, ‘En cours d’approbation’, ‘Approuvé’, ‘Rejeté’, ou tout autre statut spécifique (Ex : Validation de niveau 1, Validation de niveau 2…). Dans cette gestion de la donnée, il convient de définir des profils utilisateurs ayant des droits spécifiques (s’appuyant sur la gestion de la sécurité MDS).
Dans l’exemple suivant, considérons les profils utilisateurs :
- Créateur : Ayant uniquement les droits de création d’occurrence
- Approbateur : Ayant uniquement les droits de modification du statut des occurrences
1- Le créateur ajoute une occurrence au sein d’une entité.
2- L’occurrence prend automatiquement le statut ‘En cous d’approbation’ (Grâce à une règle métier).
3- L’approbateur accède à cette entité, et en filtrant par statut, il accède directement aux occurrences qu’il doit approuver.
4- L’approbateur change le statut de l’occurrence de ‘En cous d’approbation’ à ‘Approuvé’, avec la possibilité d’ajouter un commentaire d’approbation (ou de rejet).
5- La donnée est alors validée et accessible à l’ensemble des autres utilisateurs.
Ce Workflow repose sur l’implémentation de règles métier via un moteur spécifique intégré à Master Data Services. Le moteur de règles métier permet de construire graphiquement des logiques techniques et/ou métiers qui peuvent déclencher des actions.
Exemple de Conditions et Actions MDS :
Propriétés des règles MDS :
Les règles se déclenchent :
-
- Dès qu’un membre est créé
- Dès qu’un membre est édité
- Dès qu’une version est validée
Plusieurs conditions peuvent être combinées par des opérateurs logiques
Les actions se déclenchent dès qu’une condition est valide
Les actions peuvent :
- Changer la valeur de la donnée
- Déclencher des Notifications
- Déclencher des Workflows SharePoint\Custom
Techniquement, lorsqu’une règle est implémentée, une procédure stockée est créée dans la base SQL Server de MDS. Le lancement de ces procédures est ensuite géré par la brique SQL Server Broker.
Pour illustrer le Workflow de validation ci-dessus, la logique pourrait être implémentée de la manière suivante :
Ce simple Workflow de validation peut être amélioré par l’utilisation des Workflows SharePoint décrite ci-dessous.
Les Workflows SharePoint
Grâce aux Workflows MDS, il est possible de faire appel nativement à des Workflows SharePoint. Imaginons un Workflow SharePoint lié au Workflow de validation décrit précédemment :
La règle métier ci-dessous devrait alors être implémentée de la manière suivante :
Dans ce cas, l’absence de condition implique que toutes les nouvelles occurrences seront impactées. Pour appeler le Workflow SharePoint, nous utiliserons l’Action MDS : ‘Démarrer le flux de travail’ qui nécessite les 4 paramètres suivants pour sa configuration :
- Type de flux de travail : 'SPWF’ pour les Workflows SharePoint
- Inclure les données de membre dans le message : Oui si l’on veut pouvoir utiliser des données de la ligne MDS dans le Workflow SharePoint (Ex : Numéro de compte à valider dans le nom de la tâche SharePoint)
- Site du flux de travail : Adresse du site SharePoint du Workflow appelé
- Nom du flux de travail : Nom du Workflow sur le site SharePoint
Ces Workflows héritent bien entendu de toutes les fonctionnalités SharePoint:
- Création de tâche par utilisateur
- Envoi de mail
- Lancement de batch externe
- Chargement de donnée …
Techniquement, voici comment s’architecture l’intégration de Master Data Services avec Workflows externes SharePoint ou Custom (Les Workflows Customs seront détaillés dans la partie suivante) :
- Les évènements déclencheurs d’une règle métier Master Data Service nécessitant le traitement d’un workflow externe sont mis dans une file d’attente en base : ce mécanisme est basé sur le Service Broker de SQL Server.
- Le service de Workflow MDS (instancié à partir de l’exécutable Microsoft.MasterDataServices.Workflow.exe) récupère les actions en file d’attente à partir d’une procédure stockée.
- Chaque action est routée vers le workflow correspondant.
Cette capacité à s’interfacer nativement avec les Workflows SharePoint démultiplie les possibilités offertes par Master Data Services. Cependant, il peut arriver que des traitements plus complexes que ceux fournis par les Workflows MDS et SharePoint soient nécessaires. Pour adresser ces besoins spécifiques, il est possible d’implémenter au sein de MDS l’utilisation de Workflows Customs.
Les Workflows Customs
Les Workflows Customs reposent sur les Workflows MDS et permettent de déclencher des actions très spécifiques grâce à une Assembly .NET développée pour répondre au besoin. Lorsque le flux de travail est appelé, le code peut exécuter n'importe quelle action spécifique requise. Par exemple, si le flux de travail nécessite le traitement d'un événement complexe tel qu’un arbre de décision métier, on peut configurer Master Data Services pour démarrer un Workflow Custom qui analyse les données et détermine où les transmettre pour approbation. Comme les Workflows de validation et les Workflows SharePoint, les Workflows Customs peuvent êtres déclenchés sur validation de condition, création d’occurrence etc…
Pour créer un Workflow Custom MDS, il faut donc au préalable créer une Assembly .NET qui implémente Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender, puis configurer le service de Workflow MDS de la manière suivante :
Modification du fichier de configuration MDS Microsoft.MasterDataServices.Workflow.exe.config :
- Ajoutez les informations de connexion de la base de données Master Data Services au paramètre « ConnectionString » :
<setting name="ConnectionString" serializeAs="String">
<value>Server=myServer;Database=myDatabase;Integrated Security=True</value>
</setting>
- Associer un nom de balise à votre Assembly de gestionnaire de flux de travail, en ajoutant un paramètre « WorkflowTypeExtenders » :
<setting name="WorkflowTypeExtenders" serializeAs="String">
<value>CSTMWKF=MDSWorkflowTestLib.WorkflowTester, MDSWorkflowTestLib</value>
</setting>
Le texte interne de la balise <value> se compose de la manière suivante :
<value><balise de flux de travail>=<nom du type de flux de travail qualifié par l'Assembly><value>
<balise de flux de travail> : Nom utilisé pour identifier le Workflow Custom dans les moteur de règle MDS.
<nom de type de flux de travail qualifié par l'Assembly > : Espace de noms de la classe de flux de travail, suivi d'une virgule, suivie du nom complet de l'Assembly.
Le Workfow Custom sera donc appelé de cette manière dans l’action ‘Démarrer le flux de travail’ du moteur de règle MDS :
Exemple 1 : Le Push de données
Le Push de données permet (par exemple à la validation d’une occurrence) de propager celle-ci vers un système tiers. Lors du changement de statut d’une occurrence, une Business Rule va déclencher un Workflow Custom propageant ainsi la donnée vers le système cible.
Principe de fonctionnement :
Exemple 2 : Faire appel à des Remotes Business Rules
L’appel d’une Remote Business Rules nécessite le déclenchement d’un Workflow Custom (par exemple lors de l’ajout d’une occurrence) qui accède à la règle externe pour l’appliquer au jeu de donnée considéré.
Principe de fonctionnement :
L'expertise Microsoft Consulting Services au service de ses clients
MCS propose une offre de service packagée pour implémenter des solutions de Master Data Management sur des plateformes SQL Server & MSBI, qui se décompose autours de 3 grandes étapes :
- L’Orientation et la Planification, notamment à travers des ateliers métiers, permettant la caractérisation des données et l’identification des processus
- La Construction et le Déploiement¸ à travers un Proof Of Concept qui peut permettre de travailler avec les interlocuteurs métiers par itération
- L’Accompagnement et l’Optimisation pour assurer la transition et le support dans l’utilisation de la plateforme de MDM
Cette méthodologie de mise en œuvre de solutions de Master Data Management a été éprouvée à travers des réalisations chez des clients grands comptes dont voici quelques exemples :
- Grandes Sociétés d’Assurance Françaises
- Grandes Banques Françaises
- Gestionnaire de flotte de véhicules
Elle peut aussi bien être mise en œuvre dans le cadre d’un projet géré par Microsoft Services, que dans le cadre d’une assistance technique sur certains aspects du projet (architecture, validation…).
Pour plus d’informations sur les offres packagées Microsoft Consulting Services, rendez-vous sur https://www.microsoft.com/france/services
Plus d’informations sur les blogs « SQL Server chez les clients ».