Поделиться через


Создание настраиваемого рабочего процесса — пример

Область применения: SQL Server — Только Управляемый экземпляр SQL Azure Windows

Это важно

Службы Master Data Services (MDS) удалены в предварительной версии SQL Server 2025 (17.x). Мы продолжаем поддерживать MDS в SQL Server 2022 (16.x) и более ранних версиях.

При создании пользовательской библиотеки классов рабочих процессов при создании библиотеки классов master Data Services создается класс, реализующий интерфейс Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender. Этот интерфейс включает один метод Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender.StartWorkflow * , который вызывается службой интеграции рабочих процессов MDS SQL Server при запуске рабочего процесса. Метод Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender.StartWorkflow* содержит два параметра: workflowType содержит текст, введенный в текстовое поле типа рабочего процесса в Master Data Manager, а dataElement содержит метаданные и данные элемента для элемента, активировающего бизнес-правило рабочего процесса.

Пример пользовательского рабочего процесса

В следующем примере кода показано, как реализовать метод Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender.StartWorkflow* для извлечения атрибутов Name, Code и LastChgUserName из XML-данных для элемента, активировавшего бизнес-правило рабочего процесса, и как вызвать хранимую процедуру, чтобы вставить их в другую базу данных. Пример XML-кода данных элемента и объяснение тегов, содержащихся в нем, см. в описании пользовательского XML рабочего процесса (службы 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  
    }  
}  

См. также

Создание настраиваемого рабочего процесса (службы Master Data Services)