Пример настраиваемого рабочего процесса (службы Master Data Services)
В веб-приложении Master Data Services при создании библиотеки классов пользовательского рабочего процесса создается класс, реализующий интерфейс Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender. Этот интерфейс содержит один метод StartWorkflow, который вызывается службой SQL Server MDS Workflow Integration Service при запуске рабочего процесса. Метод StartWorkflow содержит два параметра: параметр workflowType содержит текст, введенный в текстовое поле Тип рабочего процесса в веб-приложении Диспетчер основных данных, а параметр dataElement содержит метаданные и данные элемента, который инициировал бизнес-правило рабочего процесса.
Пример пользовательского рабочего процесса
Следующий пример кода демонстрирует, как с помощью метода 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("//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
}
}
См. также
Основные понятия
Создание настраиваемого рабочего процесса (службы Master Data Services)