Delen via


Pipeline voor gebeurtenisuitvoering

 

Gepubliceerd: januari 2017

Is van toepassing op: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Het Microsoft Dynamics 365-subsysteem voor gebeurtenisverwerking voert invoegtoepassingen uit op basis van een uitvoeringsmodel met berichtpipelines. Een gebruikersactie in de webtoepassing Microsoft Dynamics 365 of een aanroep van een SDK-methode door een invoegtoepassing of andere toepassingsresultaten in een bericht dat naar de webservice van de organisatie wordt verzonden. Het bericht bevat informatie over de bedrijfsentiteit en informatie over de kernbewerking. Het bericht wordt doorgegeven door middel van de pipeline voor gebeurtenisuitvoering, waar het kan worden gelezen of gewijzigd door de kernbewerking van het platform en eventuele geregistreerde invoegtoepassingen.

Notitie

Er worden meerdere webservices gehost door het Microsoft Dynamics 365-platform, maar alleen gebeurtenissen die worden geactiveerd door de organisatie en OData-eindpunten, kunnen ertoe leiden dat invoegtoepassingen worden uitgevoerd.

In dit onderwerp

Architectuur en gerelateerde onderdelen

Pipelinefasen

Berichtverwerking

Registratie van invoegtoepassingen

Opname in databasetransacties

Architectuur en gerelateerde onderdelen

In de volgende afbeelding wordt de algehele architectuur van het Microsoft Dynamics 365-platform geïllustreerd met betrekking tot synchrone en asynchrone gebeurtenisverwerking.

Architectuur voor gebeurtenisverwerking

Verwerkingsdiagram van synchrone en asynchrone gebeurtenissen

De uitvoeringspipeline voor gebeurtenissen verwerkt gebeurtenissen synchroon of asynchroon. De kernbewerking van het platform en eventuele invoegtoepassingen die zijn geregistreerd voor synchrone uitvoering, worden direct uitgevoerd. Synchrone invoegtoepassingen die voor de gebeurtenis zijn geregistreerd, worden in een goed gedefinieerde volgorde uitgevoerd. Invoegtoepassingen die voor asynchrone uitvoering zijn geregistreerd, worden door de agent van de asynchrone wachtrij in een wachtrij geplaatst en later uitgevoerd door de asynchrone service.

Belangrijk

Ongeacht of een invoegtoepassing synchroon of asynchroon wordt uitgevoerd, is er een tijdslimiet van twee minuten voor de uitvoering van een (bericht)aanvraag. Als de uitvoering van uw invoegtoepassingslogica de tijdslimiet overschrijdt, treedt een System.TimeoutException-uitzondering op. Als een invoegtoepassing meer verwerkingstijd nodig heeft dan de limiet van twee minuten, kunt u overwegen een werkstroom of een ander achtergrondproces te gebruiken om de taak uit te voeren. Deze limiet van twee minuten geldt alleen voor invoegtoepassingen die zijn geregistreerd om onder gedeeltelijke trust te worden uitgevoerd, ook wel de sandbox genoemd.Meer informatie:Isolatie, trusts en statistieken van invoegtoepassingen

Pipelinefasen

De gebeurtenispipeline wordt in meerdere fasen verdeeld, waarvan er vier beschikbaar zijn voor de registratie van aangepast ontwikkelde invoegtoepassingen of invoegtoepassingen van derden. Meerdere invoegtoepassingen die in elke fase zijn geregistreerd, kunnen tijdens registratie van de invoegtoepassing verder binnen de fase worden geordend (gerangschikt).

Gebeurtenis

Fasenaam

Fasenummer

Beschrijving

Voorafgaand aan gebeurtenis

Voor validering

10

Fase in de pipeline voor invoegtoepassingen die moet worden uitgevoerd voorafgaand aan de hoofdbewerking door het systeem. Invoegtoepassingen die in deze fase zijn geregistreerd, kunnen buiten de databasetransactie worden uitgevoerd.

System_CAPS_security Beveiliging Opmerking

De pre-validatiefase treedt op voorafgaand aan de beveiligingscontroles die worden uitgevoerd om te controleren of de aanroepende of aangemelde gebruiker de juiste machtigingen heeft om de bewerking uit te voeren.

Voorafgaand aan gebeurtenis

Voor bewerking

20

Fase in de pipeline voor invoegtoepassingen die moet worden uitgevoerd voorafgaand aan de hoofdbewerking door het systeem. Invoegtoepassingen die in deze fase zijn geregistreerd, worden uitgevoerd binnen de databasetransactie.

Kernbewerking van platform

MainOperation

30

De hoofdbewerking van het systeem tijdens de transactie, zoals maken, bijwerken, verwijderen, enzovoort. Er kunnen in deze fase geen aangepaste invoegtoepassingen worden geregistreerd.Uitsluitend voor intern gebruik.

Na gebeurtenis

Na bewerking

40

Fase in de pipeline voor invoegtoepassingen die moet worden uitgevoerd na de hoofdverwerking. Invoegtoepassingen die in deze fase zijn geregistreerd, worden uitgevoerd binnen de databasetransactie.

Berichtverwerking

Als toepassingscode of een werkstroom een Microsoft Dynamics 365-webservicemethode aanroept, treedt een statuswijziging in het systeem op die een gebeurtenis activeert. De informatie die als parameter wordt doorgegeven aan de webservicemethode, wordt intern verpakt in een OrganizationRequest-bericht en verwerkt door de pipeline. De informatie in het OrganizationRequest-bericht wordt doorgestuurd naar de eerste invoegtoepassing die voor deze gebeurtenis is geregistreerd, waar deze kan worden gelezen of gewijzigd alvorens te worden doorgestuurd naar de volgende geregistreerde invoegtoepassing voor die gebeurtenis, enzovoort. Invoegtoepassingen ontvangen de berichtinformatie in de vorm van een context die wordt doorgegeven aan de Execute-methode van de invoegtoepassingen. Het bericht wordt ook doorgestuurd naar de kernbewerking van het platform.

Registratie van invoegtoepassingen

Invoegtoepassingen kunnen worden geregistreerd voor uitvoering vóór en na de kernbewerking van het platform. Invoegtoepassingen die vóór de gebeurtenis zijn geregistreerd, ontvangen het OrganizationRequest-bericht eerst en kunnen de berichtinformatie wijzigen voordat het bericht wordt doorgestuurd naar de kernbewerking. Nadat de bewerking van het kernplatform is voltooid, wordt het bericht OrganizationResponse genoemd. De respons wordt doorgegeven aan de na de gebeurtenis geregistreerde invoegtoepassingen. Invoegtoepassingen na de gebeurtenis kunnen het bericht wijzigen voordat een kopie van de respons wordt doorgegeven aan eventuele geregistreerde asynchrone invoegtoepassingen. Ten slotte wordt het antwoord als resultaat gegeven aan de toepassing of werkstroom die de oorspronkelijke aanroep van de webservicemethode heeft gedaan.

Aangezien één Microsoft Dynamics 365-server meer dan één organisatie kan hosten, is de uitvoeringspipeline organisatiespecifiek. Er is een virtuele pipeline voor elke organisatie. Invoegtoepassingen die met de pipeline zijn geregistreerd, kunnen slechts bedrijfsgegevens voor één organisatie verwerken. Een invoegtoepassing die is ontworpen om te werken met meerdere organisaties, moet worden geregistreerd met de uitvoeringspipeline van elke organisatie.

Opname in databasetransacties

Invoegtoepassingen worden al dan niet uitgevoerd binnen de databasetransactie van het Microsoft Dynamics 365-platform. Of een invoegtoepassing deel uitmaakt van de transactie, is afhankelijk van hoe de berichtaanvraag wordt verwerkt door de pipeline. U kunt controleren of de invoegtoepassing binnen de transactie wordt uitgevoerd door de eigenschap IsInTransaction te lezen die wordt overgenomen van IPluginExecutionContext, zoals doorgegeven aan de invoegtoepassing. Als een invoegtoepassing in de databasetransactie wordt uitgevoerd en toestaat dat een uitzondering wordt teruggegeven aan het platform, wordt de hele transactie teruggedraaid. Fase 20 en 40 maken gegarandeerd deel uit van de databasetransactie en fase 10 kan deel uitmaken van de transactie.

Een geregistreerde invoegtoepassing die wordt uitgevoerd tijdens de databasetransactie en die een uitzondering teruggeeft aan het platform, annuleert de kernbewerking. Dit resulteert in een terugdraaien van de kernbewerking. Bovendien wordt elke vóór en elke na de gebeurtenis geregistreerde invoegtoepassing die nog niet is uitgevoerd, en elke werkstroom die wordt geactiveerd door de gebeurtenis waarvoor de invoegtoepassing was geregistreerd, niet uitgevoerd.

Zie ook

Inleiding tot het gebeurtenisframework
Isolatie, trusts en statistieken van invoegtoepassingen
Plug-ins registreren en inzetten
Asynchrone service in Microsoft Dynamics 365

Microsoft Dynamics 365

© 2017 Microsoft. Alle rechten voorbehouden. Auteursrecht