Dictionary

Dataverse-plug-in

Een Dataverse-plug-in is servercode die op een geregistreerde gebeurtenis in de Dataverse execution pipeline reageert. De stap koppelt een .NET-klasse aan een message, tabel, fase en uitvoermodus.

Wat is een Dataverse-plug-in?

Een Dataverse-plug-in is een custom event handler die server-side code uitvoert wanneer Dataverse een geregistreerde dataoperatie verwerkt. De code wordt als .NET-assembly gecompileerd en via een step aan het event framework gekoppeld.

Een step specificeert onder meer de message, tabel, pipelinefase en synchrone of asynchrone uitvoering. Messages omvatten gewone operaties zoals Create, Update en Delete en gespecialiseerde platformoperaties.

Plug-ins zijn bedoeld voor logica die declaratieve middelen niet passend kunnen uitvoeren, bijvoorbeeld transactionele validatie, complexe afleiding of herbruikbare serverregels.

IPlugin en execution context

Een plug-inklasse implementeert IPlugin en de methode Execute. Dataverse levert services via de service provider, waaronder de execution context, tracing en organization service.

public void Execute(IServiceProvider services) { var context = (IPluginExecutionContext)services.GetService(typeof(IPluginExecutionContext)); if (context.MessageName != "Update") return; }

De context bevat message, stage, depth, gebruiker, correlation-ID, inputparameters en gedeelde variabelen. De Target-parameter bevat bij een update meestal alleen gewijzigde kolommen, niet automatisch het volledige record.

Pipelinefasen

PreValidation draait vroeg en vaak buiten de hoofdtransactie. Deze fase past bij controles die een operatie met een begrijpelijke fout moeten tegenhouden voordat meer werk start.

PreOperation draait vóór de kernoperatie binnen de transactie. Een plug-in kan hier Target-waarden aanpassen zonder een afzonderlijke update uit te voeren.

PostOperation draait na de kernoperatie. Een synchrone fout binnen de transactie rolt de volledige operatie terug. Een PostOperation-step kan ook asynchroon worden geregistreerd en draait dan nadat de oorspronkelijke transactie is voltooid.

Pre- en post-images

Een image is een geregistreerde momentopname van geselecteerde kolommen vóór of na de operatie. Ze voorkomt een extra retrieve wanneer oude of definitieve waarden nodig zijn.

Registreer alleen benodigde kolommen. Grote images kosten verwerking en maken onduidelijk welke data de plug-in werkelijk gebruikt.

Niet iedere message ondersteunt iedere image. De Target en images hebben elk een eigen betekenis; behandel ze niet als uitwisselbare volledige records.

Voorbeeld: dossiernummer bewaken

Een dossiertabel heeft een extern nummer dat na definitieve registratie niet meer mag veranderen. Een PreValidation-step op Update vergelijkt Target met een pre-image.

Bij een verboden wijziging gooit de plug-in een InvalidPluginExecutionException met een bruikbare melding. De transactie wordt afgebroken voordat gekoppelde logica onnodig draait.

De step gebruikt filtering attributes, zodat hij alleen start wanneer het relevante veld in de update voorkomt.

Plug-in versus business rule en flow

Een business rule past bij eenvoudige condities, veldwaarden, vereiste velden en formuliergedrag. Een cloud flow past bij orchestratie, connectoren en werk dat na een gebeurtenis mag plaatsvinden.

Een plug-in past bij serverlogica die voor iedere Dataverse-client geldt, in de transactie moet werken of meer programmeercontrole vraagt.

Gebruik geen plug-in voor langdurige externe verwerking in een synchrone gebruikersactie. Kies asynchrone integratie, een webhook, Service Bus of flow wanneer de koppeling mag ontkoppelen.

Recursie, prestaties en betrouwbaarheid

Een plug-in die opnieuw dezelfde tabel bijwerkt kan zichzelf of andere steps opnieuw activeren. Begrijp depth en causale keten, maar maskeer een slecht ontwerp niet alleen met een depth-check.

Schrijf implementaties stateless, gebruik geen parallelle threads en beperk queries en updates. Registreer filtering attributes en een specifieke tabel in plaats van brede stappen.

Externe calls kunnen traag of onbeschikbaar zijn. Ze verlengen bij synchrone uitvoering de gebruikersactie en transactie. Ontwerp retries en idempotentie buiten de transactie wanneer dat beter past.

Registratie, tracing en ALM

Registreer assembly en steps met ondersteunde Power Platform-tools. Neem zowel assembly als stepregistraties op in een solution.

Gebruik tracing voor diagnostiek en geef fouten zonder gevoelige details terug aan gebruikers. Telemetrie kan correlation-ID, message, stage en duur vastleggen.

Test verschillende messages, securitycontexten en transactie-uitkomsten. Versiebeheer broncode, automatiseer build en valideer de geregistreerde configuratie bij iedere deployment.

Laatst Bijgewerkt: July 10, 2026 Terug naar Woordenboek
Trefwoorden
Dataverse plug-in Microsoft Dataverse IPlugin event framework execution pipeline PreValidation PreOperation PostOperation plugin registration C#