Creare un flusso di lavoro personalizzato (Master Data Services)Create a Custom Workflow (Master Data Services)

In Master Data ServicesMaster Data Services vengono utilizzate le regole business per creare soluzioni di base per il flusso di lavoro, come l'aggiornamento e la convalida automatici dei dati e l'invio di notifiche mediante posta elettronica in base alle condizioni specificate. Master Data ServicesMaster Data Services uses business rules to create basic workflow solutions, such as to automatically update and validate data and have e-mail notifications sent, based on conditions you specify. Quando è necessaria un'elaborazione più complessa di quella fornita dalle azioni predefinite del flusso di lavoro, utilizzare un flusso di lavoro personalizzato.When you require processing that is more complex than what the built-in workflow actions provide, use a custom workflow. Un flusso di lavoro personalizzato è un assembly .NET che viene creato.A custom workflow is a .NET assembly that you create. Quando viene chiamato l'assembly del flusso di lavoro, il codice può eseguire qualsiasi azione richiesta dalla situazione.When your workflow assembly is called, your code can take whatever action your situation requires. Se ad esempio il flusso di lavoro richiede l'elaborazione di eventi complessi, come le approvazioni multilivello o gli alberi delle decisioni complessi, è possibile configurare Master Data ServicesMaster Data Services in modo da avviare un flusso di lavoro personalizzato che analizza i dati e determina dove inviarli per l'approvazione.For example, if your workflow requires complex event processing, such as multi-tiered approvals or complicated decision trees, you can configure Master Data ServicesMaster Data Services to start a custom workflow that analyzes the data and determines where to send it for approval.

Elaborazione di flussi di lavoro personalizzatiHow Custom Workflows Are Processed

Per l'elaborazione dei flussi di lavoro personalizzati sono necessari tre componenti principali: applicazione Web Master Data ManagerMaster Data Manager, SQL Server MDS Workflow Integration Service e assembly del gestore del flusso di lavoro.There are three main components involved to process custom workflows: the Master Data ManagerMaster Data Manager web application, SQL Server MDS Workflow Integration Service, and the workflow handler assembly. Di seguito è riportata la procedura di elaborazione di un flusso di lavoro personalizzato mediante tali componenti:These components process a custom workflow as follows:

  1. Utilizzare Master Data ManagerMaster Data Manager per convalidare un'entità che avvia un flusso di lavoro.You use Master Data ManagerMaster Data Manager to validate an entity that starts a workflow.

  2. Master Data ManagerMaster Data Manager invia i membri che soddisfano le condizioni delle regole business a una coda di Service Broker nel database Master Data ServicesMaster Data Services. sends members that meet the business rule conditions to a Service Broker queue in the Master Data ServicesMaster Data Services database.

  3. A intervalli regolari SQL Server MDS Workflow Integration Service chiama una stored procedure nel database Master Data ServicesMaster Data Services.At regular intervals, SQL Server MDS Workflow Integration Service calls a stored procedure in the Master Data ServicesMaster Data Services database.

  4. Quando questa stored procedure trova i record nella coda di Service Broker, li restituisce a SQL Server MDS Workflow Integration Service.When this stored procedure finds records in the Service Broker queue, it returns them to SQL Server MDS Workflow Integration Service.

  5. SQL Server MDS Workflow Integration Service instrada i dati all'assembly del gestore del flusso di lavoro.SQL Server MDS Workflow Integration Services routes the data to your workflow handler assembly.

Nota

Nota: SQL Server MDS Workflow Integration Service deve attivare processi semplici.Note: SQL Server MDS Workflow Integration Service is meant to trigger simple processes. Se il codice personalizzato richiede un'elaborazione complessa, completare l'elaborazione in un thread separato o all'esterno del processo del flusso di lavoro.If your custom code requires complex processing, complete your processing either in a separate thread or outside of the workflow process.

Configurare Master Data Services per i flussi di lavoro personalizzatiConfigure Master Data Services for Custom Workflows

Per creare di un flusso di lavoro personalizzato, è necessario scrivere codice personalizzato e configurare Master Data ServicesMaster Data Services in modo da passare i dati del flusso di lavoro al gestore del flusso di lavoro.Creating a custom workflow requires writing some custom code and configuring Master Data ServicesMaster Data Services to pass workflow data to your workflow handler. Per consentire l'elaborazione del flusso di lavoro personalizzato, effettuare i passaggi seguenti:Follow these steps to enable custom workflow processing:

  1. Creare un assembly .NET che implementi IWorkflowTypeExtender.Create a .NET assembly that implements IWorkflowTypeExtender.

  2. Configurare SQL Server MDS Workflow Integration Service per la connessione al database Master Data ServicesMaster Data Services e per associare un tag al gestore del flusso di lavoro.Configure SQL Server MDS Workflow Integration Service to connect to your Master Data ServicesMaster Data Services database and to associate a tag with your workflow handler.

  3. Avviare SQL Server MDS Workflow Integration Service.Start SQL Server MDS Workflow Integration Service.

  4. Creare una regola business in Master Data ManagerMaster Data Manager per avviare un flusso di lavoro contrassegnato con il nome del gestore del flusso di lavoro.Create a business rule in Master Data ManagerMaster Data Manager that starts a workflow that is tagged with the name of your workflow handler.

  5. Applicare la regola business a un membro che attiva il flusso di lavoro personalizzato.Apply the business rule to a member that triggers your custom workflow.

Creare l'assembly del gestore del flusso di lavoroCreate the Workflow Handler Assembly

Un flusso di lavoro personalizzato è un assembly della libreria di classi .NET che implementa l'interfaccia IWorkflowTypeExtender.A custom workflow is a .NET class library assembly that implements the IWorkflowTypeExtender interface. SQL Server MDS Workflow Integration Service chiama il metodo StartWorkflow per eseguire il codice.SQL Server MDS Workflow Integration Service calls the StartWorkflow method to run your code. Per un esempio di codice che implementa StartWorkflow vedere Creare un flusso di lavoro personalizzato - Esempio (Master Data Services).For example code that implements StartWorkflow, see Custom Workflow Example (Master Data Services).

Per creare con Visual Studio 2010 un assembly che SQL Server MDS Workflow Integration Service può chiamare per gestire un flusso di lavoro personalizzato, effettuare i passaggi seguenti:Follow these steps to use Visual Studio 2010 to create an assembly that SQL Server MDS Workflow Integration Service can call to handle a custom workflow:

  1. In Visual Studio 2010 creare un nuovo progetto Libreria di classi che usa il linguaggio scelto.In Visual Studio 2010, create a new Class Library project that uses the language of your choice. Per creare una Libreria di classi C# selezionare i tipi di progetto Visual C#\Windows e selezionare il modello Libreria di classi.To create a C# Class Library, select the Visual C#\Windows project types and select the Class Library template. Immettere un nome per il progetto, ad esempio MDSWorkflowTest e fare clic su OK.Enter a name for your project, such as MDSWorkflowTest, and click OK.

  2. Aggiungere un riferimento a Microsoft.MasterDataServices.WorkflowTypeExtender.dll.Add a reference to Microsoft.MasterDataServices.WorkflowTypeExtender.dll. Questo assembly è disponibile in <cartella di installazione>\Master Data Services\WebApplication\bin.This assembly can be found in <Your installation folder>\Master Data Services\WebApplication\bin.

  3. Aggiungere ‘using Microsoft.MasterDataServices.Core.Workflow;’ al file del codice C#.Add ‘using Microsoft.MasterDataServices.Core.Workflow;’ to your C# code file.

  4. Ereditare da IWorkflowTypeExtender nella dichiarazione di classe.Inherit from IWorkflowTypeExtender in your class declaration. La dichiarazione di classe deve essere simile a: ‘public class WorkflowTester : IWorkflowTypeExtender’.The class declaration should be similar to: ‘public class WorkflowTester : IWorkflowTypeExtender’.

  5. Implementare l'interfaccia IWorkflowTypeExtender.Implement the IWorkflowTypeExtender interface. Viene chiamato il metodo StartWorkflow da SQL Server MDS Workflow Integration Service per avviare il flusso di lavoro.The StartWorkflow method is called by SQL Server MDS Workflow Integration Service to start your workflow.

  6. Copiare l'assembly nel percorso dell'eseguibile di SQL Server MDS Workflow Integration Service, denominato Microsoft.MasterDataServices.Workflow.exe, in <cartella di installazione>\Master Data Services\WebApplication\bin.Copy your assembly to the location of the SQL Server MDS Workflow Integration Service executable, named Microsoft.MasterDataServices.Workflow.exe, in <Your installation folder>\Master Data Services\WebApplication\bin.

Configurare SQL Server MDS Workflow Integration ServiceConfigure SQL Server MDS Workflow Integration Service

Per modificare il file di configurazione di Master Data ServicesMaster Data Services in modo da includere le informazioni di connessione per il database Master Data ServicesMaster Data Services e associare un tag all'assembly del gestore del flusso di lavoro, effettuare i passaggi seguenti:Edit the Master Data ServicesMaster Data Services configuration file to include connection information for your Master Data ServicesMaster Data Services database and to associate a tag with your workflow handler assembly by following these steps:

  1. Trovare Microsoft.MasterDataServices.Workflow.exe.config in <cartella di installazione>\Master Data Services\WebApplication\bin.Find Microsoft.MasterDataServices.Workflow.exe.config in <Your installation folder>\Master Data Services\WebApplication\bin.

  2. Aggiungere le informazioni di connessione al database Master Data ServicesMaster Data Services all'impostazione "ConnectionString".Add the Master Data ServicesMaster Data Services database connection information to the “ConnectionString” setting. Se nell'installazione di SQL ServerSQL Server vengono utilizzate regole di confronto con distinzione tra maiuscole e minuscole, il nome del database deve essere immesso nella stessa combinazione di maiuscole e minuscole del database.If your SQL ServerSQL Server installation uses case-sensitive collation, the name of the database must be entered in the same case as in the database. Il tag di impostazione completo, ad esempio, potrebbe essere analogo al seguente:For example, the complete setting tag might look like this:

    <setting name="ConnectionString" serializeAs="String">  
        <value>Server=myServer;Database=myDatabase;Integrated Security=True</value>  
    </setting>  
    
  3. Sotto l'impostazione "ConnectionString" aggiungere l'impostazione "WorkflowTypeExtenders" per associare il nome di un tag all'assembly del gestore del flusso di lavoro.Below the “ConnectionString” setting add a “WorkflowTypeExtenders” setting to associate a tag name with your workflow handler assembly. Esempio:For example:

    <setting name="WorkflowTypeExtenders" serializeAs="String">  
        <value>TEST=MDSWorkflowTestLib.WorkflowTester, MDSWorkflowTestLib</value>  
    </setting>  
    

    Il testo interno del tag <value> è nel formato <tag del flusso di lavoro>=<nome di tipo del flusso di lavoro qualificato dall'assembly>.The inner text of the <value> tag is in the form of <Workflow tag>=<assembly-qualified workflow type name>. <tag del flusso di lavoro> è il nome usato per identificare l'assembly del gestore del flusso di lavoro quando si crea una regola business in Master Data ManagerMaster Data Manager.<Workflow tag> is a name you use to identify the workflow handler assembly when you create a business rule in Master Data ManagerMaster Data Manager. <nome di tipo del flusso di lavoro qualificato dall'assembly> è il nome qualificato con lo spazio dei nomi della classe del flusso di lavoro, seguito da una virgola e dal nome visualizzato dell'assembly.<assembly-qualified workflow type name> is the namespace-qualified name of your workflow class, followed by a comma, followed by the display name of the assembly. Se il nome dell'assembly è sicuro, è necessario includere anche le informazioni sulla versione e l'oggetto PublicKeyToken.If your assembly is strongly named, you also have to include version information and its PublicKeyToken. È possibile includere più tag <setting> se sono stati creati più gestori del flusso di lavoro per diversi tipi di flussi di lavoro.You can include multiple <setting> tags if you have created multiple workflow handlers for different kinds of workflows.

Nota

A seconda della configurazione del server, è possibile che venga visualizzato l'errore "Accesso negato" quando si tenta di salvare il file Microsoft.MasterDataServices.Workflow.exe.config.Depending on the configuration of your server, you may see an “Access is denied” error when you try to save the Microsoft.MasterDataServices.Workflow.exe.config file. In tal caso, disabilitare temporaneamente la funzionalità Controllo dell'account utente nel server.If this occurs, temporarily disable User Account Control (UAC) on the server. A tale scopo, aprire il Pannello di controllo e fare clic su Sistema e sicurezza.To do this, open Control Panel, click System and Security. In Centro notifiche fare clic su Modifica impostazioni di Controllo dell'account utente.Under Action Center, click Change User Account Control Settings. Nella finestra di dialogo Impostazioni di Controllo account utente far scorrere la barra verso il basso in modo da non ricevere alcuna notifica.In the User Account Control Settings dialog, slide the bar to the bottom so that you are never notified. Riavviare il computer e ripetere i passaggi precedenti per modificare il file di configurazione.Restart your computer and repeat the preceding steps to edit your configuration file. Dopo avere salvato il file, reimpostare le impostazioni del Controllo dell'account utente sul livello predefinito.After saving the file, reset your UAC settings to the default level.

Avviare SQL Server MDS Workflow Integration ServiceStart SQL Server MDS Workflow Integration Service

Per impostazione predefinita, SQL Server MDS Workflow Integration Service non è installato.By default, SQL Server MDS Workflow Integration Service is not installed. Per poter utilizzare il servizio, è necessario prima installarlo.You must install the service before it can be used. Per una maggiore sicurezza, creare un utente locale per il servizio e concedere all'utente solo le autorizzazioni necessarie per eseguire le operazioni del flusso di lavoro.For the greatest security, create a local user for the service and grant this user only the permissions needed to perform workflow operations. Per creare un utente e per installare e avviare il servizio, effettuare i passaggi seguenti:To create a user, install the service, and start the service, follow these steps:

  1. Utilizzare Utenti e gruppi locali per creare un utente locale denominato, ad esempio, mds_workflow_service.Use the Local Users and Groups manager to create a local user named, for example, mds_workflow_service.

  2. Utilizzare SQL Server Management Studio per concedere all'utente mds_workflow_service l'autorizzazione per eseguire la stored procedure [mdm].[udpExternalActionsGet].Use SQL Server Management Studio to grant the mds_workflow_service user permission to execute the [mdm].[udpExternalActionsGet] stored procedure. A tale scopo, creare un nuovo account di accesso per l'account mds_workflow_service, creare un nuovo utente nel database Master Data ServicesMaster Data Services, eseguire il mapping di questo utente all'account di accesso mds_workflow_service e concedere all'utente l'autorizzazione EXECUTE per la stored procedure [mdm].[udpExternalActionsGet].To do this, create a new login for the mds_workflow_service account, create a new user in the Master Data ServicesMaster Data Services database, map this user to the mds_workflow_service login, and grant the user EXECUTE permission to the [mdm].[udpExternalActionsGet] stored procedure.

  3. Concedere all'utente mds_workflow_service l'autorizzazione per eseguire l'assembly del gestore del flusso di lavoro.Grant the mds_workflow_service user permission to execute the workflow handler assembly. A tale scopo, aggiungere l'utente mds_workflow_service alla scheda Sicurezza nelle Proprietà dell'assembly del gestore del flusso di lavoro e concedere all'utente mds_workflow_service le autorizzazioni READ ed EXECUTE.To do this, add the mds_workflow_service user to the Security tab of the Properties of the workflow handler assembly and grant the mds_workflow_service user READ and EXECUTE permission.

  4. Concedere all'utente mds_workflow_service l'autorizzazione per eseguire l'eseguibile di SQL Server MDS Workflow Integration Service.Grant the mds_workflow_service user permission to execute the SQL Server MDS Workflow Integration Service executable. A tale scopo, aggiungere l'utente mds_workflow_service alla scheda Sicurezza nelle Proprietà di Microsoft.MasterDataServices.Workflow.exe, in <cartella di installazione>\Master Data Services\WebApplication\bin, e concedere all'utente mds_workflow_service l'autorizzazione READ e EXECUTE.To do this, add the mds_workflow_service user to the Security tab of the Properties of Microsoft.MasterDataServices.Workflow.exe, in <Your installation folder>\Master Data Services\WebApplication\bin and grant the mds_workflow_service user READ and EXECUTE permission.

  5. Installare SQL Server MDS Workflow Integration Service mediante l'utilità di installazione .NET, denominata InstallUtil.exe.Install SQL Server MDS Workflow Integration Service by using the .NET installation utility, named InstallUtil.exe. InstallUtil.exe si trova nella cartella di installazione .NET, ad esempio C:\Windows\Microsoft.NET\Framework\v4.0.30319\.InstallUtil.exe can be found in the .NET installation folder, such as C:\Windows\Microsoft.NET\Framework\v4.0.30319\. Installare SQL Server MDS Workflow Integration Service immettendo in un prompt dei comandi con privilegi elevati il comando seguente:Install SQL Server MDS Workflow Integration Service by entering the following in an elevated command prompt:

    C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil Microsoft.MasterDataServices.Workflow.exe  
    

    Quando richiesto durante l'installazione, specificare l'utente mds_workflow_service.Specify the mds_workflow_service user when prompted during installation.

  6. Avviare SQL Server MDS Workflow Integration Service mediante lo snap-in Servizi.Start SQL Server MDS Workflow Integration Service by using the Services snap-in. A tale scopo, trovare SQL Server MDS Workflow Integration Service nello snap-in Servizi, selezionarlo e fare clic sul collegamento Avvia.To do this, find SQL Server MDS Workflow Integration Service in the Services snap-in, select it, and click the Start link.

Creare una regola business del flusso di lavoroCreate a Workflow Business Rule

Utilizzare Master Data ManagerMaster Data Manager per creare e pubblicare una regola business che, quando applicata, consente di avviare il flusso di lavoro.Use Master Data ManagerMaster Data Manager to create and publish a business rule that will start the workflow when applied. È necessario assicurarsi che la regola business contenga le azioni che modificano i valori dell'attributo, in modo tale che una volta applicata la regola restituisca false.You should ensure that your business rule contains actions that change attribute values, so that the rule evaluates to false after it has been applied once. Ad esempio, la regola business potrebbe restituire true quando un valore dell'attributo Price è maggiore di 500 e il valore dell'attributo Approved è vuoto.For example, your business rule might evaluate to true when a Price attribute value is greater than 500 and the Approved attribute value is blank. La regola può includere quindi due azioni: una per impostare il valore dell'attributo Approved su Pending e l'altra per avviare il flusso di lavoro.The rule can then include two actions: one to set the Approved attribute value to Pending and one to start the workflow. In alternativa, è possibile creare una regola che utilizzi la condizione “has changed” e aggiungere gli attributi ai gruppi rilevamento modifiche.Alternatively, you may want to create a rule that uses the “has changed” condition and add your attributes to change tracking groups. Per altre informazioni sulle regole business, vedere Regole business (Master Data Services).For more information about business rules, see Business Rules (Master Data Services).

Per creare una regola business che avvia un flusso di lavoro personalizzato in Master Data ManagerMaster Data Manager, effettuare i passaggi seguenti:Create a business rule that starts a custom workflow in Master Data ManagerMaster Data Manager by following these steps:

  1. Nell'editor delle regola business di Master Data ManagerMaster Data Manager dopo avere specificato le condizioni della regola business trascinare l'azione Avvia flusso di lavoro dall'elenco di azioni esterne all'etichetta Azione del riquadro THEN.In the business rule editor of Master Data ManagerMaster Data Manager, after you have specified the conditions of your business rule, drag the Start Workflow action from the External actions list to the THEN pane’s Action label.

  2. Nella casella Tipo di flusso di lavoro del riquadro Modifica azione digitare il tag che identifica l'assembly del gestore del flusso di lavoro.In the Edit Action pane, in the Workflow type box, type the tag that identifies your workflow handler assembly. Si tratta del tag specificato nel file di configurazione per l'assembly, ad esempio TEST.This is the tag you specified in the configuration file for your assembly, for example, TEST.

  3. Facoltativamente, selezionare la casella di controllo Includi dati membro.Optionally, select the Include member data check box. Questa opzione consente di includere i nomi e i valori degli attributi nel codice XML passato al gestore del flusso di lavoro.Choose this to include attribute names and values in the XML that is passed to the workflow handler.

  4. Nella casella Sito flusso di lavoro digitare il nome di un sito Web.In the Workflow site box, type the name of a website. Questa opzione potrebbe non essere valida per il flusso di lavoro personalizzato, ma può essere utilizzata per il contesto aggiunto.For your custom workflow this may not apply, but can be used for added context.

  5. Nella casella Nome flusso di lavoro digitare il nome del flusso di lavoro di Visual Studio.In the Workflow name box, type the name of your workflow from Visual Studio. Questa opzione potrebbe non essere valida per il flusso di lavoro personalizzato, ma può essere utilizzata per il contesto aggiunto.For your custom workflow this may not apply, but can be used for added context.

  6. Salvare e pubblicare la regola business.Save and publish the business rule.

Applicare le regole business per avviare un flusso di lavoroApply Business Rules to Start a Workflow

Applicare la regola business ai dati per avviare il flusso di lavoro.Apply the business rule to your data to start the workflow. A tale scopo, utilizzare Master Data ManagerMaster Data Manager per modificare l'entità che contiene i membri che di desidera convalidare.To do this, use Master Data ManagerMaster Data Manager to edit the entity that contains the members you want to validate. Fare clic su Applica regole business.Click Apply business rules. In risposta alla regola business, in Master Data ManagerMaster Data Manager viene popolata la coda di Service Broker del database Master Data ServicesMaster Data Services.In response to the business rule, Master Data ManagerMaster Data Manager populates the Service Broker queue of the Master Data ServicesMaster Data Services database. Quando SQL Server MDS Workflow Integration Service controlla la coda, invia i dati all'assembly del gestore del flusso di lavoro specificato e cancella la coda.When SQL Server MDS Workflow Integration Service checks the queue, it sends the data to the specified workflow handler assembly and clears the queue. L'assembly del gestore del flusso di lavoro esegue qualsiasi azione in esso codificata.The workflow handler assembly performs whatever actions you have coded into it.

Risolvere i problemi relativi ai flussi di lavoro personalizzatiTroubleshoot Custom Workflows

Se l'assembly del gestore del flusso di lavoro non riceve dati, è possibile provare a eseguire il debug di SQL Server MDS Workflow Integration Service o a visualizzare la coda di Service Broker.If your workflow handler assembly doesn’t receive data, you can try debugging SQL Server MDS Workflow Integration Service or viewing the Service Broker queue.

Eseguire il debug di SQL Server MDS Workflow Integration ServiceDebug SQL Server MDS Workflow Integration Service

Per eseguire il debug di SQL Server Workflow Integration Service, effettuare i passaggi seguenti:To debug SQL Server Workflow Integration Service, take the following steps:

  1. Utilizzare lo snap-in Servizi per arrestare il servizio.Use the Services snap-in to stop the service.

  2. Aprire un prompt dei comandi, passare al percorso del servizio ed eseguire il servizio in modalità console immettendo Microsoft.MasterDataServices.Workflow.exe -console.Open a command prompt, navigate to the location of the service, and run the service in console mode by entering: Microsoft.MasterDataServices.Workflow.exe -console.

  3. In Master Data ManagerMaster Data Manager aggiornare il membro e applicare di nuovo le regole business.In Master Data ManagerMaster Data Manager, update your member and apply business rules again. I log dettagliati vengono visualizzati nella finestra della console.Detailed logs are displayed in the console window.

Visualizzare la coda di Service BrokerView the Service Broker Queue

La coda di Service Broker che contiene i dati master passati come parte del flusso di lavoro è mdm.microsoft/mdm/queue/externalaction.The Service Broker queue that contains the master data passed as part of the workflow is: mdm.microsoft/mdm/queue/externalaction. Le code si trovano in Esplora oggetti di SQL Management Studio nel nodo Service Broker del database Master Data ServicesMaster Data Services.Queues can be found in the Object Explorer of SQL Management Studio under the Service Broker node of the Master Data ServicesMaster Data Services database. Tenere presente che, se il servizio ha cancellato correttamente la coda, questa sarà vuota.Be aware that, if the service cleared the queue properly, this queue will be empty.

Vedere ancheSee Also

Esempio di flusso di lavoro personalizzato (Master Data Services) Custom Workflow Example (Master Data Services)
Descrizione XML del flusso di lavoro personalizzato (Master Data Services)Custom Workflow XML Description (Master Data Services)