Pipeline di esecuzione evento

 

Data di pubblicazione: gennaio 2017

Si applica a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Il sottosistema di elaborazione eventi di Microsoft Dynamics 365 esegue i plug-in in base al modello di esecuzione della pipeline del messaggio. Un'azione dell'utente nell'applicazione Web Microsoft Dynamics 365 o in una chiamata del metodo da parte di un plug-in o di un'altra applicazione dà come risultato un messaggio inviato al servizio Web dell'organizzazione. Il messaggio contiene le informazioni di entità aziendali e le informazioni dell'operazione principale. Il messaggio viene passato tramite la pipeline di esecuzione dell'evento dove può essere letto o modificato dall'operazione principale della piattaforma e da tutti i plug-in registrati.

Nota

Mentre sono disponibili numerosi servizi Web ospitati dalla piattaforma Microsoft Dynamics 365, solo gli eventi attivati dall'organizzazione e dagli endpoint OData possono provocare l'esecuzione dei plug-in.

In questo argomento

Architettura e componenti correlati

Fasi pipeline

Elaborazione messaggio

Registrazione del plug-in

Inclusione nelle transazioni del database

Architettura e componenti correlati

Nella figura seguente viene illustrata l'architettura generale della piattaforma Microsoft Dynamics 365 rispetto all'elaborazione eventi sincrona e asincrona.

Architettura di elaborazione eventi

Diagramma di elaborazione eventi sincrona e asincrona

Questa pipeline di esecuzione eventi elabora gli eventi in modo sincrono o asincrono. L'operazione principale della piattaforma e dei plug-in registrati per l'esecuzione sincrona viene eseguita immediatamente. I plug-in sincroni registrati per l'evento sono eseguiti in un ordine ben definito. I plug-in registrati per l'esecuzione asincrona sono messi in coda dell'agente della coda asincrono e sono eseguiti in un secondo momento dal servizio asincronia.

Importante

A prescindere che un plug-in venga eseguito in modo sincrono o asincrono, esiste un limite di tempo di 2 minuti imposto nell'esecuzione di una richiesta (messaggio). Se l'esecuzione della logica del plug-in supera il limite di tempo, viene generata un'eccezione System.TimeoutException. Se l'elaborazione da parte di un plug-in richiede più di due minuti, puoi utilizzare un flusso di lavoro o un altro processo in background per completare l'attività desiderata. Il limite di due minuti vale solo per i plug-in registrati per essere eseguiti in condizioni di parziale attendibilità, vale a dire in modalità sandbox.Ulteriori informazioni:Isolamento di plug-in, attendibilità e statistiche

Fasi pipeline

La pipeline dell'evento viene suddivisa in più fasi, di cui 4 sono disponibili per registrare i plug-in di terze parti o sviluppati in modo personalizzato. Più plug-in che sono registrati in ogni fase possono essere ulteriormente ordinati (allineati) in tale fase durante la registrazione del plug-in.

Evento

Nome fase

Numero fase

Descrizione

Pre-evento

Convalida preliminare

10

Fase nella pipeline per i plug-in da eseguire prima dell'operazione di sistema principale. I plug-in registrati in questa fase possono essere eseguiti al di fuori della transazione del database.

System_CAPS_security Sicurezza Nota

La fase di convalida preliminare viene eseguita prima dei controlli di sicurezza eseguiti per verificare che l'utente chiamante o collegato disponga delle autorizzazioni appropriate per eseguire l'operazione desiderata.

Pre-evento

Operazione preliminare

20

Fase nella pipeline per i plug-in da eseguire prima dell'operazione di sistema principale. I plug-in registrati in questa fase vengono eseguiti nella transazione del database.

Operazione principale della piattaforma

MainOperation

30

Operazione principale interna alla transazioni del sistema, ad esempio creazione, aggiornamento, eliminazione e così via. Non è possibile registrare alcun plug-in personalizzato in questa fase.Solo per uso interno.

Post-evento

Operazione successiva

40

Fase nella pipeline per i plug-in da eseguire dopo l'operazione principale. I plug-in registrati in questa fase vengono eseguiti nella transazione del database.

Elaborazione messaggio

Quando un codice dell'applicazione o un flusso di lavoro richiama un metodo del servizio Web Microsoft Dynamics 365 si verifica un cambiamento nel sistema che genera un evento. Le informazioni passate come parametro al metodo del servizio Web vengono impacchettate internamente fino a un messaggio di OrganizationRequest e vengono elaborate dalla pipeline. Le informazioni nel messaggio OrganizationRequest sono comunicate al primo plug-in registrato per tale evento dopo possono essere lette o modificate prima di passare al plug-in successivo registrato per tale evento e così via. I plug-in ricevono le informazioni del messaggio nella forma di contesto passato al metodo Execute. Il messaggio viene inoltre passato all'operazione principale della piattaforma.

Registrazione del plug-in

I plug-in possono essere registrati per essere eseguiti prima o dopo l'operazione di piattaforma principale. I plug-in registrati pre-evento ricevono il messaggio OrganizationRequest prima e possono modificare le informazioni del messaggio prima che venga passato all'operazione principale. Dopo aver terminato l'operazione principale di piattaforma, il messaggio viene detto OrganizationResponse. La risposta viene passata ai plug-in post-evento registrati. I plug-in post-evento hanno la possibilità di modificare il messaggio prima che una copia della risposta venga passata ai plug-in asincroni registrati. Infine, la risposta viene restituita all'applicazione o al flusso di lavoro che ha richiamato la chiamata del metodo del servizio Web originale.

Poiché un singolo server Microsoft Dynamics 365 consente di ospitare più organizzazioni, la pipeline di esecuzione è specifica dell'organizzazione. Esiste una pipeline virtuale per ogni organizzazione. Plug-in registrati con la pipeline possono elaborare solo i dati aziendali per un'organizzazione singola. Un plug-in che è progettato per l'utilizzo con più organizzazioni deve essere registrato con la pipeline di esecuzione di ogni organizzazione.

Inclusione nelle transazioni del database

I plug-in possono o non possono essere eseguiti nella transazione del database della piattaforma Microsoft Dynamics 365. Se un plug-in fa parte della transazione dipende da come la richiesta del messaggio viene elaborata dalla pipeline. È possibile controllare se il plug-in viene eseguito in transazione leggendo la proprietà IsInTransaction ereditata da IPluginExecutionContext passata al plug-in. Se un plug-in è in esecuzione nella transazione del database e consente che un'eccezione venga passata di nuovo alla piattaforma, verrà eseguito il rollback dell'intera. I passaggi 20 e 40 fanno certamente parte della transazione del database mentre la fase 10 potrebbe far parte della transazione.

Qualsiasi plug-in registrato eseguito durante la transazione di database e che passa un'eccezione nuovamente alla piattaforma annulla l'operazione principale. Ciò provoca un rollback dell'operazione principale. Inoltre, qualsiasi plug-in registrato di pre-evento o post-evento non ancora eseguito e qualsiasi flusso di lavoro che viene attivato dallo stesso evento per cui è stato registrato il plug-in non verrà eseguito.

Vedere anche

Introduzione al framework degli eventi
Isolamento di plug-in, attendibilità e statistiche
Registrare e distribuire plug-in
Servizio asincrono in Microsoft Dynamics 365

Microsoft Dynamics 365

© 2017 Microsoft. Tutti i diritti sono riservati. Copyright