Partager via


Créer un flux de travail personnalisé - Exemple

S’applique à : SQL Server - Windows uniquement Azure SQL Managed Instance

Dans Master Data Services, lorsque vous créez une bibliothèque de classes de flux de travail personnalisée, vous créez une classe qui implémente l’interface Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender. Cette interface inclut une méthode, Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender.StartWorkflow* , appelée par SQL Server MDS Workflow Integration Service au démarrage d’un flux de travail. La méthode Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender.StartWorkflow* contient deux paramètres : workflowType contient le texte que vous avez entré dans la zone de texte de type workflow dans Master Data Manager, et dataElement contient des métadonnées et des données d’élément pour l’élément qui a déclenché la règle métier de flux de travail.

Exemple de flux de travail personnalisé

L’exemple de code suivant montre comment implémenter la méthode Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender.StartWorkflow* pour extraire les attributs Name, Code et LastChgUserName à partir des données XML de l’élément qui a déclenché la règle métier de flux de travail et comment appeler une procédure stockée pour les insérer dans une autre base de données. Pour obtenir un exemple de xml de données d’élément et une explication des balises qu’il contient, consultez la description XML du flux de travail personnalisé (Master Data Services) .

using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Text;  
using System.IO;  
using System.Data.SqlClient;  
using System.Xml;  
  
using Microsoft.MasterDataServices.Core.Workflow;  
  
namespace MDSWorkflowTestLib  
{  
    public class WorkflowTester : IWorkflowTypeExtender  
    {  
        #region IWorkflowTypeExtender Members  
  
        public void StartWorkflow(string workflowType, System.Xml.XmlElement dataElement)  
        {  
            // Extract the attributes we want out of the element data.  
            XmlNode NameNode = dataElement.SelectSingleNode("./MemberData/Name");  
            XmlNode CodeNode = dataElement.SelectSingleNode("./MemberData/Code");  
            XmlNode EnteringUserNode = dataElement.SelectSingleNode("./MemberData/LastChgUserName");  
  
            // Open a connection on the workflow database.  
            SqlConnection workflowConn = new SqlConnection(@"Data Source=<Server instance>; Initial Catalog=WorkflowTest; Integrated Security=True");  
  
            // Create a command to call the stored procedure that adds a new user to the workflow database.  
            SqlCommand addCustomerCommand = new SqlCommand("AddNewCustomer", workflowConn);  
            addCustomerCommand.CommandType = System.Data.CommandType.StoredProcedure;  
            addCustomerCommand.Parameters.Add(new SqlParameter("@Name", NameNode.InnerText));  
            addCustomerCommand.Parameters.Add(new SqlParameter("@Code", CodeNode.InnerText));  
            addCustomerCommand.Parameters.Add(new SqlParameter("@EnteringUser", EnteringUserNode.InnerText));  
  
            // Execute the command.  
            workflowConn.Open();  
            addCustomerCommand.ExecuteNonQuery();  
            workflowConn.Close();  
        }  
  
        #endregion  
    }  
}  

Voir aussi

Créer un flux de travail personnalisé (Master Data Services)