Partager via


Exemple personnalisé de flux de travail (Master Data Services)

Dans Master Data Services, lorsque vous créez une bibliothèque de classes personnalisées de flux de travail, vous créez une classe qui implémente l'interface Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender. Cette interface inclut une méthode, StartWorkflow, appelée par le service d'intégration de flux de travail MDS SQL Server lorsqu'un flux de travail démarre. La méthode StartWorkflow contient deux paramètres : workflowType contient le texte que vous avez entré dans la zone de texte Type de flux de travail dans Master Data Manager, et dataElement contient les métadonnées et les données d'élément pour l'élément qui a déclenché la règle d'entreprise de flux de travail.

Exemple de flux de travail personnalisé

L'exemple de code suivant montre comment vous pouvez appliquer la méthode StartWorkflow pour extraire les attributs Name, Code et LastChgUserName à partir des données XML pour l'élément qui a déclenché la règle d'entreprise 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 code XML de données d'élément et une explication des indicateurs qu'il contient, consultez Description personnalisée XML de flux de travail (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("//ExternalAction/MemberData/Name");
            XmlNode CodeNode = dataElement.SelectSingleNode("//ExternalAction/MemberData/Code");
            XmlNode EnteringUserNode = dataElement.SelectSingleNode("//ExternalAction/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

Concepts

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