Pipeline voor gebeurtenisuitvoering
Gepubliceerd: november 2016
Is van toepassing op: Dynamics CRM 2015
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.
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 2 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.
|
||
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 CRM 2015
© 2017 Microsoft. Alle rechten voorbehouden. Auteursrecht