Crear un flujo de trabajo personalizado: Ejemplo

Se aplica a:SQL Server: solo Windows Azure SQL Managed Instance

En Master Data Services, al crear una biblioteca de clases de flujo de trabajo personalizada, se crea una clase que implementa la interfaz Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender. Esta interfaz incluye un método, Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender.StartWorkflow* , al que llama SQL Server servicio de integración de flujos de trabajo de MDS cuando se inicia un flujo de trabajo. El método Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender.StartWorkflow* contiene dos parámetros: workflowType contiene el texto que escribió en el cuadro de texto Tipo de flujo de trabajo en Master Data Manager y dataElement contiene metadatos y datos de elementos para el elemento que desencadenó la regla de negocio de flujo de trabajo.

Ejemplo de flujo de trabajo personalizado

En el ejemplo de código siguiente se muestra cómo implementar el método Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender.StartWorkflow* para extraer los atributos Name, Code y LastChgUserName de los datos XML del elemento que desencadenó la regla de negocio de flujo de trabajo y cómo llamar a un procedimiento almacenado para insertarlos en otra base de datos. Para obtener un ejemplo del XML de datos de elemento y una explicación de las etiquetas que contiene, vea Custom Workflow XML Description (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  
    }  
}  

Consulte también

Crear un flujo de trabajo personalizado (Master Data Services)