Plug-in automatizzati
I plug-in automatizzati con poco codice favoriscono l'esecuzione della logica di Power Fx in risposta a eventi di tabella di Microsoft Dataverse. Quando si crea il plug-in, è possibile scegliere una tabella di Dataverse e l'evento da gestire.
Si può scegliere di eseguire la logica del plug-in in base a uno o più dei seguenti eventi:
Creato: quando qualcuno crea una riga della tabella di Dataverse.
Aggiornato: quando qualcuno modifica una riga della tabella di Dataverse, comprese le colonne.
Eliminato: quando qualcuno elimina una riga della tabella di Dataverse.
Se si vuole che la stessa logica venga eseguita su più tabelle, sarà necessario creare plug-in separati per ciascuna tabella.
Quando viene eseguito il plug-in
Per impostazione predefinita, la logica del plug-in viene eseguita dopo che si è verificato l'evento come post-operazione. Ad esempio, se si sceglie l'evento Creato, la logica viene eseguita dopo la creazione della riga in Dataverse. Questo evento è utile se si vogliono creare righe di dati correlate nel plug-in. Ad esempio, se il plug-in viene eseguito durante la creazione di righe nella tabella Progetto, la logica potrebbe aggiungere automaticamente l'utente che ha creato la riga come membro del team di progetto.
Se si esegue il plug-in dopo aver creato la riga, non è possibile verificare se la riga è valida e quindi interrompere la creazione. Nella sezione Opzioni avanzate è possibile modificare l'opzione Momento dell'esecuzione in modo che sia precedente anziché successivo all'operazione. Questa impostazione fa sì che la logica del plug-in venga eseguita prima della creazione della riga, in modo da poter interrompere la creazione restituendo un Error(). Nell'esempio seguente, si vuole impedire l'eliminazione di una riga dalla tabella Contact se lo Stato è Attivo. Per svolgere questa attività, è necessario registrare il plug-in prima dell'operazione dell'evento Eliminato nella tabella Contact. La logica controllerà se la riga di dati è inattiva; in caso contrario, indicherà all'utente che deve prima disattivare la riga. L'esempio seguente mostra l'espressione per il plug-in:
If(ThisRecord.Status = 'Status (Contacts)'.Active, Error("You must deactivate the row first"))
Un altro caso d'uso per configurare il plug-in per l'esecuzione prima dell'operazione è quando la logica del plug-in deve modificare la riga prima che venga creata. Scegliendo di aggiornare una riga prima di crearla, è possibile evitare il sovraccarico di un aggiornamento aggiuntivo perché il sistema aggiorna la riga prima di salvarla in Dataverse. Ad esempio, si desidera contrassegnare qualsiasi riga della tabella Contact creata con (Test Data) come suffisso della colonna Last Name. È possibile eseguire questa attività impostando un plug-in nella tabella Contact per l'evento Creato e la fase precedente all'operazione. La formula avrà un aspetto simile alla logica di esempio seguente.
Set('Last Name', Concatenate(ThisRecord.'Last Name',"(Test Data)"))
Si consideri un altro esempio di utilizzo di plug-in automatizzati per implementare la logica di business, in cui si vuole creare la seguente logica automatizzata su una tabella Progetto.
Convalidare colonne specifiche nella riga Progetto prima che venga creata.
Derivare un codice progetto da altri dati sulla riga per poi archiviarlo sulla riga al momento della creazione della riga stessa.
Creare automaticamente una riga Team di progetto (nella tabella Team di progetto separata) che la logica associa alla riga Progetto creata in questa tabella Progetto, aggiungendo l'utente creatore come membro iniziale del team.
Il precedente oggetto visivo propone l'implementazione di tre plug-in con poco codice per soddisfare i requisiti. Tutti e tre i plug-in vengono eseguiti sull'evento Creato della tabella Progetto. L'elenco seguente descrive il motivo per cui ciascun plug-in è configurato per la fase specifica.
Convalida progetto: questo plug-in viene eseguito prima dell'operazione perché si desidera interrompere la creazione della riga Progetto se esistono dati non validi.
Aggiornamento codice progetto: questo plug-in viene eseguito prima dell'operazione in modo da poter modificare la riga Progetto per aggiungere il codice progetto prima che qualcuno crei la riga di dati in Dataverse. Sebbene sia possibile combinare questa logica nel plug-in Convalida, mantenerla separata potrebbe risultare più gestibile.
Aggiunta autore a tabella del team di progetto: questo plug-in deve essere eseguito dopo l'operazione perché è necessario che la riga Progetto sia presente in Dataverse in modo da poterla associare alla nuova riga Team di progetto creata.
Automazioni multiple sullo stesso evento
Quando si creano plug-in con poco codice da eseguire su un evento, accertarsi di considerare altre automazioni che vengono attivate sullo stesso evento per la stessa tabella. Dataverse rende possibile l'esecuzione di flussi e plug-in di codice tradizionale di Power Automate sugli stessi eventi. Si potrebbe avere un plug-in con poco codice, un plug-in di codice tradizionale e un flusso di Power Automate in esecuzione simultaneamente sulla stessa combinazione tabella/evento. Prima di aggiungere l'automazione, è necessario sempre valutare quale automazione esistente si sta verificando e quindi accertarsi che non vi siano conflitti.
Occorre inoltre considerare l'impatto della logica inserita nei plug-in che potrebbe causare l'esecuzione di altri plug-in o flussi. Ad esempio, se si aggiorna la riga di dati dopo l'operazione nella logica del plug-in, ciò potrebbe attivare altre automazioni. Assicurarsi di specificare solo le colonne di cui occorre modificare i valori.
Evitare i cicli infiniti
I plug-in con poco codice vengono eseguiti sul trigger di evento Aggiornato se i valori sulla riga di dati cambiano. Se il plug-in viene eseguito dopo l'operazione e la logica aggiorna la stessa riga che ha attivato il plug-in, si provoca un ciclo infinito che determinerà l'esito negativo dell'operazione. Se è necessario aggiornare la riga che ha avviato l'evento, usare invece un plug-in nella fase precedente all'operazione.