Delen via


Een aangepaste werkstroom maken (Master Data Services)

Van toepassing op:SQL Server in Windows Azure SQL Managed Instance

Belangrijk

Master Data Services (MDS) wordt verwijderd in SQL Server 2025 (17.x). MdS wordt nog steeds ondersteund in SQL Server 2022 (16.x) en eerdere versies.

Master Data Services maakt gebruik van bedrijfsregels voor het maken van basiswerkstroomoplossingen, zoals het automatisch bijwerken en valideren van gegevens en het verzenden van e-mailmeldingen op basis van de voorwaarden die u opgeeft. Wanneer u verwerking nodig hebt die complexer is dan wat de ingebouwde werkstroomacties bieden, gebruikt u een aangepaste werkstroom. Een aangepaste werkstroom is een .NET-assembly die u maakt. Wanneer uw werkstroomassembly wordt aangeroepen, kan uw code elke actie ondernemen die uw situatie vereist. Als uw werkstroom bijvoorbeeld complexe gebeurtenisverwerking vereist, zoals goedkeuringen met meerdere lagen of ingewikkelde beslissingsstructuren, kunt u Master Data Services configureren om een aangepaste werkstroom te starten die de gegevens analyseert en bepaalt waar deze moet worden verzonden voor goedkeuring.

Hoe aangepaste werkstromen worden verwerkt

Er zijn drie belangrijke onderdelen betrokken bij het verwerken van aangepaste werkstromen: de Master Data Manager-webtoepassing, SQL Server MDS Workflow Integration Service en de assembly van de werkstroomhandler. Deze onderdelen verwerken als volgt een aangepaste werkstroom:

  1. U gebruikt Master Data Manager om een entiteit te valideren waarmee een werkstroom wordt gestart.

  2. Master Data Manager verzendt leden die voldoen aan de bedrijfsvoorwaarden naar een Service Broker-wachtrij in de Master Data Services-database.

  3. Met regelmatige tussenpozen roept SQL Server MDS Workflow Integration Service een opgeslagen procedure aan in de Master Data Services-database.

  4. Wanneer met deze opgeslagen procedure records worden gevonden in de Service Broker-wachtrij, worden deze geretourneerd naar SQL Server MDS Workflow Integration Service.

  5. SQL Server MDS Workflow Integration Services stuurt de gegevens naar uw werkstroomhandlerassembly.

Opmerking

Opmerking: SQL Server MDS Workflow Integration Service is bedoeld om eenvoudige processen te activeren. Als voor uw aangepaste code complexe verwerking is vereist, voltooit u de verwerking in een afzonderlijke thread of buiten het werkstroomproces.

Master Data Services configureren voor aangepaste werkstromen

Voor het maken van een aangepaste werkstroom moet u aangepaste code schrijven en Master Data Services configureren om werkstroomgegevens door te geven aan uw werkstroomhandler. Volg deze stappen om aangepaste werkstroomverwerking in te schakelen:

  1. Maak een .NET-assembly die Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender implementeert.

  2. Configureer sql Server MDS Workflow Integration Service om verbinding te maken met uw Master Data Services-database en om een tag te koppelen aan uw werkstroomhandler.

  3. Start SQL Server MDS Workflow Integration Service.

  4. Maak een bedrijfsregel in Master Data Manager waarmee een werkstroom wordt gestart die is gelabeld met de naam van uw werkstroomhandler.

  5. Pas de bedrijfsregel toe op een lid dat uw aangepaste werkstroom activeert.

De werkstroomhandlerassembly maken

Een aangepaste werkstroom is een .NET-klassebibliotheekassembly waarmee de interface Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender wordt geïmplementeerd. Sql Server MDS Workflow Integration Service roept de methode Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender.StartWorkflow* aan om uw code uit te voeren. Bijvoorbeeld code waarmee Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender.StartWorkflow* wordt geïmplementeerd, zie Custom Workflow Example (Master Data Services).

Volg deze stappen om Visual Studio 2010 te gebruiken om een assembly te maken die sql Server MDS Workflow Integration Service kan aanroepen om een aangepaste werkstroom af te handelen:

  1. Maak in Visual Studio 2010 een nieuw Class Library-project dat gebruikmaakt van de taal van uw keuze. Als u een C#-klassebibliotheek wilt maken, selecteert u de visual C#\Windows-projecttypen en selecteert u de sjabloon Klassebibliotheek . Voer een naam in voor uw project, zoals MDSWorkflowTest, en klik op OK.

  2. Voeg een verwijzing toe naar Microsoft.MasterDataServices.WorkflowTypeExtender.dll. Deze assembly vindt u in <de installatiemap>\Master Data Services\WebApplication\bin.

  3. Voeg 'using Microsoft.MasterDataServices.Core.Workflow;' toe aan uw C#-codebestand.

  4. Overnemen van Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender in uw klassedeclaratie. De klassedeclaratie moet vergelijkbaar zijn met: 'public class WorkflowTester : IWorkflowTypeExtender'.

  5. Implementeer de interface Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender . De methode Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender.StartWorkflow* wordt aangeroepen door sql Server MDS Workflow Integration Service om uw werkstroom te starten.

  6. Kopieer uw assembly naar de locatie van het uitvoerbare bestand sql Server MDS Workflow Integration Service, met de naam Microsoft.MasterDataServices.Workflow.exe, in <de installatiemap>\Master Data Services\WebApplication\bin.

INTEGRATIEservice voor SQL Server MDS-werkstromen configureren

Bewerk het master Data Services-configuratiebestand om verbindingsgegevens op te nemen voor uw Master Data Services-database en om een tag te koppelen aan uw werkstroomhandlerassembly door de volgende stappen uit te voeren:

  1. Zoek Microsoft.MasterDataServices.Workflow.exe.config in <de installatiemap>\Master Data Services\WebApplication\bin.

  2. Voeg de verbindingsgegevens van de Master Data Services-database toe aan de instelling ConnectionString. Als uw SQL Server-installatie gebruikmaakt van hoofdlettergevoelige sortering, moet de naam van de database worden ingevoerd in hetzelfde geval als in de database. De volledige instellingstag kan er bijvoorbeeld als volgt uitzien:

    <setting name="ConnectionString" serializeAs="String">  
        <value>Server=myServer;Database=myDatabase;Integrated Security=True</value>  
    </setting>  
    
  3. Voeg onder de instelling ConnectionString een instelling WorkflowTypeExtenders toe om een tagnaam te koppelen aan de assembly van uw werkstroomhandler. Voorbeeld:

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

    De binnenste tekst van de <waardetag> heeft de vorm van de werkstroomtag<=>naam van <het type assembly-gekwalificeerde werkstroom>. <Werkstroomtag> is een naam die u gebruikt om de assembly van de werkstroomhandler te identificeren wanneer u een bedrijfsregel maakt in Master Data Manager. <assembly-qualified workflow type name> is de naamruimte-gekwalificeerde naam van uw werkstroomklasse, gevolgd door een komma, gevolgd door de weergavenaam van de assembly. Als uw assembly sterk de naam heeft, moet u ook versiegegevens en het bijbehorende PublicKeyToken opnemen. U kunt meerdere <instellingstags> opnemen als u meerdere werkstroomhandlers hebt gemaakt voor verschillende soorten werkstromen.

Opmerking

Afhankelijk van de configuratie van uw server ziet u mogelijk de foutmelding 'Toegang is geweigerd' wanneer u het Microsoft.MasterDataServices.Workflow.exe.config-bestand probeert op te slaan. Als dit gebeurt, schakelt u gebruikersaccountbeheer (UAC) tijdelijk uit op de server. Hiervoor opent u het Configuratiescherm en klikt u op Systeem en Beveiliging. Klik onder Actiecentrum op Instellingen voor gebruikersaccountbeheer wijzigen. Schuif in het dialoogvenster Instellingen voor gebruikersaccountbeheer de balk naar beneden, zodat u nooit op de hoogte wordt gesteld. Start de computer opnieuw op en herhaal de voorgaande stappen om het configuratiebestand te bewerken. Nadat u het bestand hebt opgeslagen, stelt u de UAC-instellingen opnieuw in op het standaardniveau.

SQL Server MDS Workflow Integration Service starten

Sql Server MDS Workflow Integration Service is standaard niet geïnstalleerd. U moet de service installeren voordat deze kan worden gebruikt. Voor de beste beveiliging maakt u een lokale gebruiker voor de service en verleent u deze gebruiker alleen de machtigingen die nodig zijn om werkstroombewerkingen uit te voeren. Voer de volgende stappen uit om een gebruiker te maken, de service te installeren en de service te starten:

  1. Gebruik de manager Lokale gebruikers en groepen om een lokale gebruiker met de naam te maken, bijvoorbeeld mds_workflow_service.

  2. Gebruik SQL Server Management Studio om de mds_workflow_service gebruiker toestemming te geven om [mdm] uit te voeren. [udpExternalActionsGet] opgeslagen procedure. Hiervoor maakt u een nieuwe aanmelding voor het mds_workflow_service-account, maakt u een nieuwe gebruiker in de Master Data Services-database, wijst u deze gebruiker toe aan de mds_workflow_service-aanmelding en verleent u de gebruiker EXECUTE-machtiging aan [mdm]. [udpExternalActionsGet] opgeslagen procedure.

  3. Verdeel de mds_workflow_service gebruiker toestemming om de assembly van de werkstroomhandler uit te voeren. Hiervoor voegt u de mds_workflow_service gebruiker toe aan het tabblad Beveiliging van de assembly Eigenschappen van de werkstroomhandler en verleent u de mds_workflow_service gebruiker lees- en EXECUTE-machtigingen.

  4. Verdeel de mds_workflow_service gebruiker toestemming om het uitvoerbare bestand sql Server MDS Workflow Integration Service uit te voeren. Hiervoor voegt u de mds_workflow_service gebruiker toe aan het tabblad Beveiliging van de eigenschappen van Microsoft.MasterDataServices.Workflow.exe, in <de installatiemap>\Master Data Services\WebApplication\bin en verleent u de mds_workflow_service gebruiker lees- en EXECUTE-machtiging.

  5. Installeer sql Server MDS Workflow Integration Service met behulp van het .NET-installatieprogramma met de naam InstallUtil.exe. InstallUtil.exe vindt u in de .NET-installatiemap, zoals C:\Windows\Microsoft.NET\Framework\v4.0.30319\. Installeer sql Server MDS Workflow Integration Service door het volgende in te voeren in een opdrachtprompt met verhoogde bevoegdheid:

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

    Geef de mds_workflow_service gebruiker op wanneer u hierom wordt gevraagd tijdens de installatie.

  6. Start sql Server MDS Workflow Integration Service met behulp van de module Services. Als u dit wilt doen, zoekt u de INTEGRATIEservice van SQL Server MDS-werkstroom in de module Services, selecteert u deze en klikt u op de koppeling Start .

Een werkstroomregel maken

Gebruik Master Data Manager om een bedrijfsregel te maken en te publiceren waarmee de werkstroom wordt gestart wanneer deze wordt toegepast. Zorg ervoor dat uw bedrijfsregel acties bevat die kenmerkwaarden wijzigen, zodat de regel onwaar wordt geëvalueerd nadat deze eenmaal is toegepast. Uw bedrijfsregel kan bijvoorbeeld waar zijn wanneer een waarde van het kenmerk Prijs groter is dan 500 en de waarde goedgekeurd kenmerk leeg is. De regel kan vervolgens twee acties bevatten: één om de waarde Goedgekeurd kenmerk in te stellen op In behandeling en één om de werkstroom te starten. U kunt ook een regel maken die gebruikmaakt van de voorwaarde 'is gewijzigd' en uw kenmerken toevoegen aan groepen voor het bijhouden van wijzigingen. Zie Bedrijfsregels (Master Data Services) voor meer informatie over bedrijfsregels.

Maak een bedrijfsregel die een aangepaste werkstroom start in Master Data Manager door de volgende stappen uit te voeren:

  1. Nadat u in de bedrijfsregeleditor van Master Data Manager de voorwaarden van uw bedrijfsregel hebt opgegeven, sleept u de actie Werkstroom starten vanuit de lijst Externe acties naar het label Actie van het deelvenster THEN.

  2. Typ in het deelvenster Actie bewerken in het vak Werkstroomtype de tag die de assembly van de werkstroomhandler identificeert. Dit is de tag die u hebt opgegeven in het configuratiebestand voor uw assembly, bijvoorbeeld TEST.

  3. Schakel desgewenst het selectievakje Ledengegevens opnemen in. Kies deze optie om kenmerknamen en -waarden op te nemen in de XML die wordt doorgegeven aan de werkstroomhandler.

  4. Typ in het vak Werkstroomsite de naam van een website. Voor uw aangepaste werkstroom is dit mogelijk niet van toepassing, maar kan worden gebruikt voor toegevoegde context.

  5. Typ in het vak Werkstroomnaam de naam van uw werkstroom vanuit Visual Studio. Voor uw aangepaste werkstroom is dit mogelijk niet van toepassing, maar kan worden gebruikt voor toegevoegde context.

  6. Sla de bedrijfsregel op en publiceer deze.

Bedrijfsregels toepassen om een werkstroom te starten

Pas de bedrijfsregel toe op uw gegevens om de werkstroom te starten. Hiervoor gebruikt u Master Data Manager om de entiteit te bewerken die de leden bevat die u wilt valideren. Klik op Bedrijfsregels toepassen. Als reactie op de bedrijfsregel vult Master Data Manager de Service Broker-wachtrij van de Master Data Services-database in. Wanneer sql Server MDS Workflow Integration Service de wachtrij controleert, worden de gegevens naar de opgegeven werkstroomhandlerassembly verzonden en wordt de wachtrij gewist. De werkstroomhandlerassembly voert alle acties uit die u erin hebt gecodeerd.

Problemen met aangepaste werkstromen oplossen

Als uw werkstroomhandlerassembly geen gegevens ontvangt, kunt u proberen fouten op te sporen in de INTEGRATIEservice van SQL Server MDS Workflow of de Service Broker-wachtrij weer te geven.

Fouten opsporen in SQL Server MDS Workflow Integration Service

Voer de volgende stappen uit om fouten op te sporen in sql Server Workflow Integration Service:

  1. Gebruik de module Services om de service te stoppen.

  2. Open een opdrachtprompt, navigeer naar de locatie van de service en voer de service uit in de consolemodus door het volgende in te voeren: Microsoft.MasterDataServices.Workflow.exe -console.

  3. Werk in Master Data Manager uw lid bij en pas de bedrijfsregels opnieuw toe. Gedetailleerde logboeken worden weergegeven in het consolevenster.

De Service Broker-wachtrij weergeven

De Service Broker-wachtrij die de hoofdgegevens bevat die als onderdeel van de werkstroom worden doorgegeven, is: mdm.microsoft/mdm/queue/externalaction. Wachtrijen vindt u in objectverkenner van SQL Management Studio onder het Service Broker-knooppunt van de Master Data Services-database. Houd er rekening mee dat als de service de wachtrij correct heeft gewist, deze wachtrij leeg is.

Zie ook

Voorbeeld van aangepaste werkstroom (Master Data Services)
XML-beschrijving van aangepaste werkstroom (Master Data Services)