Share via


Een aangepaste werkstroom maken - voorbeeld

Van toepassing op:SQL Server in Windows Azure SQL Managed Instance

Belangrijk

Master Data Services (MDS) wordt verwijderd in SQL Server 2025 (17.x). MdS wordt nog steeds ondersteund in SQL Server 2022 (16.x) en eerdere versies.

Wanneer u in Master Data Services een aangepaste werkstroomklassebibliotheek maakt, maakt u een klasse die de interface Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender implementeert. Deze interface bevat één methode, Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender.StartWorkflow* , die wordt aangeroepen door sql Server MDS Workflow Integration Service wanneer een werkstroom wordt gestart. De methode Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender.StartWorkflow* bevat twee parameters: workflowType bevat de tekst die u hebt ingevoerd in het tekstvak Werkstroomtype in Master Data Manager en dataElement bevat metagegevens en itemgegevens voor het item dat de bedrijfsregel voor de werkstroom heeft geactiveerd.

Voorbeeld van aangepaste werkstroom

In het volgende codevoorbeeld ziet u hoe u de kenmerken Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender.StartWorkflow* implementeert om de kenmerken Name, Code en LastChgUserName te extraheren uit de XML-gegevens voor het element dat de bedrijfsregel voor de werkstroom heeft geactiveerd en hoe u een opgeslagen procedure aanroept om deze in een andere database in te voegen. Zie Custom Workflow XML Description (Master Data Services) voor een voorbeeld van het XML-bestand met itemgegevens en een uitleg van de tags die het bevat.

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  
    }  
}  

Zie ook

Een aangepaste werkstroom maken (Master Data Services)