Erstellen eines benutzerdefinierten Workflows – Beispiel
Gilt für:SQL Server – nur Windows Azure SQL Managed Instance
Wenn Sie in Master Data Services eine benutzerdefinierte Workflowklassenbibliothek erstellen, erstellen Sie eine Klasse, die die Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender-Schnittstelle implementiert. Diese Schnittstelle enthält eine Methode, Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender.StartWorkflow*, die von SQL Server MDS Workflow Integration Service aufgerufen wird, wenn ein Workflow gestartet wird. Die Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender.StartWorkflow*- Methode enthält zwei Parameter: workflowType enthält den Text, den Sie im Textfeld Workflowtyp in Master Data Manager eingegeben haben, und dataElement enthält Metadaten und Elementdaten für das Element, das die Workflow-Geschäftsregel ausgelöst hat.
Beispiel für einen benutzerdefinierten Workflow
Das folgende Codebeispiel zeigt, wie Sie die Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender.StartWorkflow*- Methode implementieren, um die Attribute Name, Code und LastChgUserName aus den XML-Daten für das Element zu extrahieren, das die Workflow-Geschäftsregel ausgelöst hat, und wie eine gespeicherte Prozedur aufgerufen wird, um sie in eine andere Datenbank einzufügen. Ein Beispiel für die Elementdaten-XML und eine Erklärung der darin enthaltenen Tags finden Sie unter Benutzerdefinierte Workflow-XML-Beschreibung (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
}
}
Weitere Informationen
Erstellen eines benutzerdefinierten Workflows (Master Data Services)
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für