Pipeline di esecuzione evento
Data di pubblicazione: novembre 2016
Si applica a: Dynamics CRM 2015
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.
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
Indipendentemente dal fatto che un plug-in viene 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 per un plug-in è necessario più tempo di elaborazione rispetto al limite di tempo di 2 minuti, è possibile utilizzare un flusso di lavoro o un altro processo di background per completare l'attività desiderata. Il limite di 2 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.
|
||
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 CRM 2015
© 2017 Microsoft. Tutti i diritti sono riservati. Copyright