Introduction to developing with Microsoft Dataverse / Extending Microsoft Power Platform Microsoft Dataverse Flashcards
Microsoft Dataverse extensibility model
Di cosa è composto il Dataverse?
Metadata and solution-awareness
Dataverse è una piattaform software-as-a-service,
Il Dataverse fornisce un’architettura basata sui metadati per fornire flessibilità per creare tabelle personalizzate ed estendere le tabelle esistenti.
- Utilizzando questo approccio, siamo quindi in grado di trasportare facilmente le nostre personalizzazioni tra gli ambienti tramite una soluzione dichiarativa che possiamo mantenere come file zip o estrarre in file XML quando applichiamo il Solution Packager di Microsoft.
- Microsoft Solution Packager è lo strumento preferito per comprimere ed estrarre un file di soluzione in modo da poterlo archiviare nel repository di controllo del codice sorgente.
- Quando crei una tabella personalizzata, i metadati relativi a quella tabella, i suoi attributi e le relazioni con altre tabelle e i componenti dell’interfaccia utente (come form e viste) vengono archiviati come metadati nel sistema.
- Il Dataverse espone anche un endpoint RESTful di OData V4, noto come API Web, che può essere sfruttato per visualizzare e manipolare i metadati all’interno di un’istanza di Dataverse.
Microsoft Dataverse extensibility model
Cosa sono i Plugin?
.NET assemblies (plug-ins)
I plug-in sono classi di codice gestito registrate per essere eseguite quando si verificano eventi specifici.
- Quando si verifica l’evento, passano attraverso una pipeline di esecuzione del plug-in costituita da tre fasi:
- PreValidation,
- PreOperation
- PostOperation.
- Quando si registra un plug-in, è necessario scegliere in quale fase eseguire il codice.
- La fase da scegliere dipende dallo scopo dell’estensione. Non è necessario applicare tutta la logica aziendale in un unico passaggio.
-
I plug-in possono anche essere configurati per essere eseguiti in modo sincrono o asincrono.
- I plug-in sincroni : vengono eseguiti immediatamente in base allo stadio e all’ordine di esecuzione e l’intera operazione attenderà il completamento.
- I plug-in asincroni vengono eseguiti tramite un processo di sistema dopo il completamento dell’operazione e come tali possono essere registrati SOLO per la fase PostOperation.
- I plug-in possono anche essere sviluppati e registrati come Custom Workflow Activities. Le attività del CWA sono uno strumento che consente agli sviluppatori di produrre componenti riutilizzabili che possono essere sfruttati da un amministratore per eseguire Actions non fornite dall’out-of-the-box workflow editor
Microsoft Dataverse extensibility model
Cosa sono le API del dataverse?
APIs
Le API WEB fornisco servizi per accedere a dati aziendali, informazioni sull’organizzazione e metadati archiviati in Dataverse.
- Il servizio principale per accedere ai dati aziendali è denominato Organization Service.
- Sono disponibili due protocolli per consentire al codice dell’applicazione di accedere a questo servizio, ciascuno con il proprio endpoint Web: ODATA e SOAP.
-
Un’API Web RESTful fornisce l’accesso al protocollo ODATA V4 del servizio Web
- L’API Web è l’endpoint più moderno e preferito per il nuovo codice dell’applicazione,
-
SDK fornisce una libreria di classi e metodi per accedere all’endpoint SOAP.
- l’endpoint SOAP è più per applicazioni legacy e plug-in
Event framework
Cosa è L’event Framework?
Event framework overview
Dataverse espone gli eventi per indicare dove il processo è attualmente in esecuzione in termini di pipeline.
- Siamo in grado di gestire questi eventi per eseguire operazioni come:
- convalidare i dati,
- impedire il completamento delle transazioni
- automatizzare qualsiasi tipo di logica aziendale.
- Possiamo sottoscrivere questi eventi registrano gli assembly .NET (chiamati plug-in) per eseguire la logica ogni volta che si verifica l’evento specificato.
- Eseguiamo la registrazione utilizzando uno strumento chiamato Plugin Registration Tool.
Ad un livello elevato, la gestione degli eventi implica tre cose.
- Dobbiamo sottoscrivere un messaggio specifico che rappresenta il tipo di operazione (o evento) che si sta attualmente verificando (o sta per verificarsi) come Crea, Recupera, Aggiorna, ecc.
- Indicare dove in quella pipeline di eventi vorrebbe che la nostra logica venisse eseguita (cioè prima o dopo l’operazione). Possiamo anche gestire gli eventi prima che si verifichi la convalida, un metodo conveniente che puoi utilizzare per eseguire una logica di convalida avanzata che non puoi realizzare tramite regole di business o flussi di lavoro.
- Indicare la modalità di esecuzione che vorremmo eseguire la nostra logica (in modo sincrono o asincrono).
Event framework
Cosa sono gli Event Message?
Event messages
Dataverse espone molti messaggi che vengono pubblicati quando si verificano varie operazioni sui dati con l’ Organization Service.
Le operazioni di base sui dati esposte sul Dataverse sono:
- Create
- Retrieve
- RetrieveMultiple
- Update
- Delete
- Associate
- Disassociate
Ci sono vari messaggi che vengono esposti contestualmente, a seconda del tipo di tabella che stai gestendo. Ad esempio, se la mia tabella ha una colonna Rollup, posso implementare un gestore di eventi sul messaggio dell’evento CalculateRollupField
- In genere, possiamo trovare un inventario di questi messaggi personalizzati resi disponibili tramite Dataverse cercando nel Microsoft.Sdk.Messages namespace qualsiasi classe il cui nome finisca in \Request. Un altro modo per vedere quali messaggi sono disponibili per un determinato tipo di tabella è navigare tra le combinazioni tabella-messaggio tramite lo strumento di registrazione del plugin.
- Inoltre, possiamo creare ed esporre i nostri messaggi creando Actions personalizzate.
Event framework
Quali sono gli Eventi della pipeline del Event Framework e quando utilizzarli?
Event pipeline
Oltre a sottoscrivere un determinato messaggio o tipo di evento, Dataverse espone anche un modo per determinare dove nella pipeline è attualmente in esecuzione l’evento.
-
PreValidation event - L’evento PreValidation si verifica prima nella pipeline, prima che vengano eseguiti i controlli di sicurezza.
- È destinato all’uso per garantire che l’utente che esegue la transazione corrente disponga delle autorizzazioni corrette necessarie per eseguire l’operazione prevista.
- In qualità di sviluppatore, puoi utilizzare questo evento per eseguire la logica di convalida e annullare l’operazione prima che si verifichi la transazione.
- PreOperation event - Utilizzare questo evento se si desidera modificare i valori della tabella prima che venga salvata.
-
PostOperation event - Utilizzare questo evento per modificare le proprietà del messaggio prima che venga restituito al chiamante.
- Assicurati di NON applicare alcun aggiornamento alla tabella corrispondente a questo punto poiché attiverà un altro evento di aggiornamento!