Plug-in con poco codice
I plug-in con poco codice di Dataverse aiutano i creatori a centralizzare la logica di Power Fx e ad eseguirla on demand oppure in risposta a un evento di tabella di Dataverse. Con i plug-in con poco codice, i creatori possono usare Power Fx per qualcosa che in precedenza era possibile solo ricorrendo alla tradizionale codifica .NET.
È possibile creare plug-in con poco codice per risolvere due problemi comuni che potrebbero verificarsi durante la creazione di un'applicazione o di un'automazione:
Quando si crea un'app canvas di Microsoft Power Apps, è possibile ripetere le stesse espressioni di Power Fx più volte all'interno di una singola app o su varie app. Questa duplicazione crea una sfida di manutenzione perché, se è necessario aggiornare la logica, è necessario aggiornarla in più punti.
Creando un plug-in con poco codice, è possibile centralizzare la logica di Power Fx e riusarla da più applicazioni Power Apps o flussi di Microsoft Power Automate.
Quando si inserisce la logica all'interno di un'applicazione o di un flusso che crea o aggiorna una riga della tabella, la logica viene eseguita solo quando l'applicazione o il flusso crea o aggiorna la riga della tabella. Se qualcuno crea una nuova applicazione o flusso e dimentica di aggiungere la stessa logica, questa non viene eseguita. Di conseguenza, i dati non vengono elaborati da un insieme coerente di regole.
Creando un plug-in che viene eseguito su un evento di tabella, ad esempio quando qualcuno crea o aggiorna una riga, la logica viene sempre eseguita, indipendentemente dall'applicazione o dal flusso che crea o modifica i dati.
Plug-in on demand
I plug-in on demand vengono eseguiti solo quando vengono richiamati da un'espressione di Power Apps o da un passaggio di un flusso di Power Automate. Questo tipo di plug-in è denominato plug-in istantaneo. È istantaneo perché esegue la logica di Power Fx immediatamente e restituisce i risultati quando viene richiamato.
Quando si crea un plug-in istantaneo, è possibile fornire parametri di input che permettono di passare i dati al plug-in. La logica di Power Fx può usare questi parametri. I parametri aiutano a rendere la logica del plug-in di Power Fx indipendente dall'app che richiama il plug-in stesso. È anche possibile definire i parametri di output per consentire alla logica di Power Fx di restituire valori al chiamante del plug-in istantaneo.
Ad esempio, si consideri uno scenario in cui si dispone di numeri di conto e si desidera verificare se il valore del numero di conto è valido o meno. Ai fini di questo esempio, si supponga che i numeri di conto corretti debbano iniziare con due caratteri alfabetici (A-Z) seguiti da un numero di quattro cifre. Pertanto, il conto AA9999 sarebbe valido, mentre il conto A999CCC non sarebbe valido.
Per implementare questo esempio come plug-in con poco codice, si dovrà creare un plug-in istantaneo denominato IsValidAccountNumber. Quindi, si definirà un parametro di input AccountNumber come tipo di dati stringa. Si useranno le formule di Power Fx per valutare il contenuto di AccountNumber e determinare se è valido o meno. Successivamente, si definirà un parametro di output denominato Valid di tipo booleano per informare il chiamante se il numero di conto è valido. L'espressione avrà un aspetto simile a quello della seguente logica del plug-in di esempio:
{Valid: IsMatch(AccountNumber,"^[A-Za-z]{2}\d{4}$")}
Molte app e flussi potrebbero riusare questa logica di convalida dei dati, permettendo di riusare ogni volta la stessa logica. Ogni app o flusso potrebbe avere la flessibilità di determinare quando chiamare la convalida e come gestirla se il numero di conto non è valido.
Plug-in automatizzati
I plug-in automatizzati sono sempre collegati a un evento di riga di tabella di Dataverse, come creazione, aggiornamento o eliminazione. Dataverse esegue questo tipo di plug-in quando si verifica l'evento. Nessuna applicazione o flusso lo controlla. A differenza di un plug-in istantaneo, in cui è possibile fornire i parametri di input, i plug-in automatizzati hanno un solo parametro, la riga di dati, che è la destinazione dell'evento.
Analogamente all'esempio precedente, si consideri uno scenario in cui si vuole essere certi che la colonna Account Number su qualsiasi riga della tabella Service Request sia valida. Se la colonna non è valida, la modifica non dovrà essere consentita.
Per implementare questo scenario, creare un plug-in automatizzato e quindi associarlo alle operazioni di creazione e aggiornamento della tabella Service Request di Dataverse. La logica controlla il valore del numero di conto e, se non è valido, genera un errore che inibisce il completamento dell'operazione di Dataverse. L'espressione per il plug-in avrà un aspetto simile a quello della seguente logica di esempio:
If(!IsMatch(ThisRecord.contoso_accountnumber,"^[A-Za-z]{2}\d{4}$"), Error({ Kind: ErrorKind.Validation , Message: "Account number must be 6 characters that start with two letters followed by 4 digits" }))
Questa logica di convalida dei dati viene sempre eseguita, indipendentemente dal fatto che si crei o si aggiorni la riga da un'app, un flusso, un copilota oppure usando l'API di Dataverse dal codice tradizionale. Questa separazione rende i plug-in automatizzati una scelta eccellente per garantire che la logica venga eseguita in modo coerente.