Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server no Windows
Azure SQL Managed Instance
Importante
Os Serviços de Dados Mestres (MDS) foram removidos no SQL Server 2025 (17.x). Continuamos a oferecer suporte ao MDS no SQL Server 2022 (16.x) e em versões anteriores.
O Master Data Services usa regras de negócios para criar soluções básicas de fluxo de trabalho, como atualizar e validar dados automaticamente e enviar notificações por email, com base nas condições especificadas. Quando você precisar de um processamento mais complexo do que o fornecido pelas ações internas do fluxo de trabalho, use um fluxo de trabalho personalizado. Um fluxo de trabalho personalizado é um assembly .NET que você cria. Quando o assembly do fluxo de trabalho é chamado, seu código pode executar qualquer ação que sua situação exija. Por exemplo, se seu fluxo de trabalho exigir processamento de eventos complexos, como aprovações em várias camadas ou árvores de decisão complicadas, você poderá configurar o Master Data Services para iniciar um fluxo de trabalho personalizado que analisa os dados e determina para onde enviá-los para aprovação.
Como os fluxos de trabalho personalizados são processados
Há três componentes principais envolvidos no processamento de fluxos de trabalho personalizados: o aplicativo Web Master Data Manager, o SQL Server MDS Workflow Integration Service e o assembly do manipulador de fluxo de trabalho. Esses componentes processam um fluxo de trabalho personalizado da seguinte maneira:
Você usa o Master Data Manager para validar uma entidade que inicia um fluxo de trabalho.
O Master Data Manager envia membros que atendem às condições da regra de negócios para uma fila do Service Broker no banco de dados do Master Data Services.
Em intervalos regulares, o SQL Server MDS Workflow Integration Service chama um procedimento armazenado no banco de dados do Master Data Services.
Quando esse procedimento armazenado localiza registros na fila do Service Broker, ele os retorna ao SQL Server MDS Workflow Integration Service.
O SQL Server MDS Workflow Integration Services roteia os dados para o assembly do manipulador de fluxo de trabalho.
Observação
Nota: O SQL Server MDS Workflow Integration Service destina-se a acionar processos simples. Se o código personalizado exigir processamento complexo, conclua o processamento em um thread separado ou fora do processo de fluxo de trabalho.
Configurar o Master Data Services para fluxos de trabalho personalizados
Criar um fluxo de trabalho personalizado requer escrever algum código personalizado e configurar o Master Data Services para passar dados de fluxo de trabalho para seu manipulador de fluxo de trabalho. Siga estas etapas para habilitar o processamento de fluxo de trabalho personalizado:
Crie um assembly .NET que implemente Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender.
Configure o SQL Server MDS Workflow Integration Service para se conectar ao banco de dados do Master Data Services e associar uma marca ao manipulador de fluxo de trabalho.
Inicie o Serviço de Integração de Fluxo de Trabalho MDS do SQL Server.
Crie uma regra de negócios no Master Data Manager que inicie um fluxo de trabalho marcado com o nome do manipulador de fluxo de trabalho.
Aplique a regra de negócios a um membro que aciona seu fluxo de trabalho personalizado.
Criar o assembly do manipulador de fluxo de trabalho
Um fluxo de trabalho personalizado é um assembly de biblioteca de classes .NET que implementa a interface Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender . O SQL Server MDS Workflow Integration Service chama o método Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender.StartWorkflow* para executar seu código. Para obter um exemplo de código que implementa Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender.StartWorkflow* , consulte Exemplo de fluxo de trabalho personalizado (Master Data Services).
Siga estas etapas para usar o Visual Studio 2010 para criar um assembly que o SQL Server MDS Workflow Integration Service pode chamar para manipular um fluxo de trabalho personalizado:
No Visual Studio 2010, crie um novo projeto de biblioteca de classes que usa o idioma de sua escolha. Para criar uma Biblioteca de Classes C#, selecione os tipos de projeto Visual C#\Windows e selecione o modelo Biblioteca de Classes . Insira um nome para seu projeto, como MDSWorkflowTest, e clique em OK.
Adicione uma referência a Microsoft.MasterDataServices.WorkflowTypeExtender.dll. Esse assembly pode ser encontrado em Sua pasta< de >instalação\Master Data Services\WebApplication\bin.
Adicione 'using Microsoft.MasterDataServices.Core.Workflow;' ao seu arquivo de código C#.
Herdar de Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender em sua declaração de classe. A declaração de classe deve ser semelhante a: 'public class WorkflowTester : IWorkflowTypeExtender'.
Implemente a interface Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender . O método Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender.StartWorkflow* é chamado pelo SQL Server MDS Workflow Integration Service para iniciar seu fluxo de trabalho.
Copie seu assembly para o local do executável do SQL Server MDS Workflow Integration Service, chamado Microsoft.MasterDataServices.Workflow.exe, em <Sua pasta> de instalação\Master Data Services\WebApplication\bin.
Configurar o Serviço de Integração de Fluxo de Trabalho MDS do SQL Server
Edite o arquivo de configuração do Master Data Services para incluir informações de conexão para o banco de dados do Master Data Services e para associar uma marca ao assembly do manipulador de fluxo de trabalho seguindo estas etapas:
Localize Microsoft.MasterDataServices.Workflow.exe.config em Sua pasta< de >instalação\Master Data Services\WebApplication\bin.
Adicione as informações de conexão do banco de dados do Master Data Services à configuração "ConnectionString". Se a instalação do SQL Server usar agrupamento que diferencia maiúsculas de minúsculas, o nome do banco de dados deverá ser inserido no mesmo caso que no banco de dados. Por exemplo, a tag de configuração completa pode ter esta aparência:
<setting name="ConnectionString" serializeAs="String"> <value>Server=myServer;Database=myDatabase;Integrated Security=True</value> </setting>Abaixo da configuração "ConnectionString", adicione uma configuração "WorkflowTypeExtenders" para associar um nome de marca ao assembly do manipulador de fluxo de trabalho. Por exemplo:
<setting name="WorkflowTypeExtenders" serializeAs="String"> <value>TEST=MDSWorkflowTestLib.WorkflowTester, MDSWorkflowTestLib</value> </setting>O texto interno da <marca de valor> está na forma de <Workflow tag>=<assembly-qualified workflow type name>. <A marca> de fluxo de trabalho é um nome usado para identificar o assembly do manipulador de fluxo de trabalho ao criar uma regra de negócios no Master Data Manager. <Nome> do tipo de fluxo de trabalho qualificado para assembly é o nome qualificado para namespace de sua classe de fluxo de trabalho, seguido por uma vírgula, seguido pelo nome para exibição do assembly. Se o assembly tiver um nome forte, você também precisará incluir informações de versão e seu PublicKeyToken. Você pode incluir várias <tags de configuração> se tiver criado vários manipuladores de fluxo de trabalho para diferentes tipos de fluxos de trabalho.
Observação
Dependendo da configuração do seu servidor, poderá ver um erro "Acesso negado" quando tenta guardar o ficheiro Microsoft.MasterDataServices.Workflow.exe.config. Se isso ocorrer, desative temporariamente o Controle de Conta de Usuário (UAC) no servidor. Para fazer isso, abra o Painel de Controle, clique em Sistema e Segurança. Em Centro de Ação, clique em Alterar Definições de Controlo de Conta de Utilizador. Na caixa de diálogo Configurações de Controle de Conta de Usuário , deslize a barra para a parte inferior para que você nunca seja notificado. Reinicie o computador e repita as etapas anteriores para editar o arquivo de configuração. Depois de salvar o arquivo, redefina as configurações do UAC para o nível padrão.
Iniciar o Serviço de Integração de Fluxo de Trabalho MDS do SQL Server
Por padrão, o SQL Server MDS Workflow Integration Service não está instalado. Você deve instalar o serviço antes que ele possa ser usado. Para maior segurança, crie um usuário local para o serviço e conceda a esse usuário apenas as permissões necessárias para executar operações de fluxo de trabalho. Para criar um utilizador, instalar o serviço e iniciá-lo, siga estes passos:
Use o gerenciador Usuários e Grupos Locais para criar um usuário local nomeado, por exemplo, mds_workflow_service.
Use o SQL Server Management Studio para conceder permissão ao usuário mds_workflow_service para executar o [mdm]. [udpExternalActionsGet] procedimento armazenado. Para fazer isso, crie um novo logon para a conta mds_workflow_service, crie um novo usuário no banco de dados do Master Data Services, mapeie esse usuário para o logon mds_workflow_service e conceda ao usuário permissão EXECUTE para o [mdm]. [udpExternalActionsGet] procedimento armazenado.
Conceda ao mds_workflow_service permissão de usuário para executar o assembly do manipulador de fluxo de trabalho. Para fazer isso, adicione o usuário mds_workflow_service à guia Segurança das Propriedades do assembly do manipulador de fluxo de trabalho e conceda ao usuário mds_workflow_service permissão LER e EXECUTAR.
Conceda ao usuário mds_workflow_service permissão para executar o executável do SQL Server MDS Workflow Integration Service. Para fazer isso, adicione o usuário mds_workflow_service à guia Segurança das Propriedades de Microsoft.MasterDataServices.Workflow.exe, em <Sua pasta> de instalação\Master Data Services\WebApplication\bin e conceda ao usuário mds_workflow_service permissão LER e EXECUTAR.
Instale o SQL Server MDS Workflow Integration Service usando o utilitário de instalação .NET, chamado InstallUtil.exe. InstallUtil.exe pode ser encontrada na pasta de instalação do .NET, como C:\Windows\Microsoft.NET\Framework\v4.0.30319\. Instale o SQL Server MDS Workflow Integration Service inserindo o seguinte em um prompt de comando elevado:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil Microsoft.MasterDataServices.Workflow.exeEspecifique o usuário mds_workflow_service quando solicitado durante a instalação.
Inicie o SQL Server MDS Workflow Integration Service usando o snap-in Serviços. Para fazer isso, localize o SQL Server MDS Workflow Integration Service no snap-in Serviços, selecione-o e clique no link Iniciar .
Criar uma regra de negócio de fluxo de trabalho
Use o Master Data Manager para criar e publicar uma regra de negócios que iniciará o fluxo de trabalho quando aplicada. Você deve garantir que sua regra de negócios contenha ações que alterem os valores de atributo, para que a regra seja avaliada como false depois de ter sido aplicada uma vez. Por exemplo, sua regra de negócios pode ser avaliada como true quando um valor de atributo Price for maior que 500 e o valor do atributo Approved estiver em branco. A regra pode então incluir duas ações: uma para definir o valor do atributo Aprovado como Pendente e outra para iniciar o fluxo de trabalho. Como alternativa, você pode criar uma regra que use a condição "mudou" e adicionar seus atributos aos grupos de controle de alterações. Para obter mais informações sobre regras de negócios, consulte Regras de negócios (Master Data Services).
Crie uma regra de negócio que inicie um fluxo de trabalho personalizado no Master Data Manager seguindo estas etapas:
No editor de regras de negócio do Master Data Manager, depois de especificar as condições da regra de negócio, arraste a ação Iniciar Fluxo de Trabalho da lista Ações externas para o rótulo Ação do painel THEN.
No painel Editar Ação , na caixa Tipo de fluxo de trabalho , digite a marca que identifica o assembly do manipulador de fluxo de trabalho. Esta é a tag que você especificou no arquivo de configuração para seu assembly, por exemplo, TEST.
Opcionalmente, marque a caixa de seleção Incluir dados do membro . Escolha esta opção para incluir nomes e valores de atributos no XML que é passado para o manipulador de fluxo de trabalho.
Na caixa Site de fluxo de trabalho , digite o nome de um site. Para seu fluxo de trabalho personalizado, isso pode não se aplicar, mas pode ser usado para contexto adicional.
Na caixa Nome do fluxo de trabalho , digite o nome do seu fluxo de trabalho do Visual Studio. Para seu fluxo de trabalho personalizado, isso pode não se aplicar, mas pode ser usado para contexto adicional.
Salve e publique a regra de negócio.
Aplicar regras de negócio para iniciar um fluxo de trabalho
Aplique a regra de negócio aos seus dados para iniciar o fluxo de trabalho. Para fazer isso, use o Master Data Manager para editar a entidade que contém os membros que você deseja validar. Clique em Aplicar regras de negócio. Em resposta à regra de negócios, o Master Data Manager preenche a fila do Service Broker do banco de dados do Master Data Services. Quando o SQL Server MDS Workflow Integration Service verifica a fila, ele envia os dados para o assembly do manipulador de fluxo de trabalho especificado e limpa a fila. O assembly do manipulador de fluxo de trabalho executa quaisquer ações que você tenha codificado nele.
Solucionar problemas de fluxos de trabalho personalizados
Se o assembly do manipulador de fluxo de trabalho não receber dados, você poderá tentar depurar o SQL Server MDS Workflow Integration Service ou exibir a fila do Service Broker.
Depurar o Serviço de Integração de Fluxo de Trabalho MDS do SQL Server
Para depurar o Serviço de Integração de Fluxo de Trabalho do SQL Server, execute as seguintes etapas:
Use o snap-in Serviços para interromper o serviço.
Abra um prompt de comando, navegue até o local do serviço e execute o serviço no modo de console digitando: Microsoft.MasterDataServices.Workflow.exe -console.
No Master Data Manager, atualize seu membro e aplique as regras de negócios novamente. Os logs detalhados são exibidos na janela do console.
Exibir a fila do Service Broker
A fila do Service Broker que contém os dados mestre passados como parte do fluxo de trabalho é: mdm.microsoft/mdm/queue/externalaction. As filas podem ser encontradas no Pesquisador de Objetos do SQL Management Studio no nó Service Broker do banco de dados do Master Data Services. Lembre-se de que, se o serviço limpou a fila corretamente, essa fila estará vazia.
Ver também
Exemplo de fluxo de trabalho personalizado (Master Data Services)
Descrição XML do fluxo de trabalho personalizado (Master Data Services)