Suggerimenti sui plug-in con poco codice e problemi noti di Microsoft Dataverse (anteprima)

[Questo argomento fa parte della documentazione non definitiva, pertanto è soggetto a modifiche.]

Questo articolo descrive i suggerimenti e i problemi noti quando si utilizzano plug-in con poco codice in Microsoft Dataverse.

Importante

  • Questa è una funzionalità di anteprima.
  • Le funzionalità di anteprima non sono destinate ad essere utilizzate per la produzione e sono soggette a restrizioni. Queste funzionalità sono disponibili prima di una versione ufficiale in modo che i clienti possano ottenere l'accesso iniziale e fornire dei commenti.

Gestire i problemi generali di runtime

Se riscontri problemi con il plug-in di runtime, modifica nuovamente il plug-in con poco codice. Quindi i problemi IntelliSense sull'espressione della formula vengono visualizzati nell'editor del plug-in con poco codice. Segui le linee guida visualizzate per correggere il problema, quindi salva nuovamente il plug-in.

Presta attenzione quando si utilizza l'assegnazione post-operazione

L'esecuzione del plug-in con poco codice potrebbe riscontrare questo errore durante l'utilizzo di Patch in una post-operazione: Execution failed for PowerPlexPlugin: System.ServiceModel.FaultException 1[Microsoft.Xrm.Sdk.OrganizationServiceFault] This low-code plugin's execution was cancelled because the plugin logic caused an infinite loop. Correct the plugin logic and try again.

L'utilizzo Patch in uno scenario post-operazione deve essere effettuato con cautela per evitare cicli infiniti. Un'operazione Patch avvia una nuova transazione. Ad esempio, se un trigger di aggiornamento per MyTable richiama Patch(MyTable, ThisRecord, ...), questa operazione potrebbe comportare un ciclo di aggiornamento ricorsivo.

Ecco un paio di esempi di operazioni che possono evitare questo problema:

  • Patch(CurrentTable, SomeOtherRecord, ... ) // For example, updating a manager's contact from a contact record.
  • Patch(OtherTable, SomeOtherRecord, ... ) // Operations on a completely different table.

Gestisci il timeout di due minuti

Per le operazioni che continuano per due minuti o più, puoi ricevere questo errore:

Execution failed for PowerPlexPlugin: System.ServiceModel.FaultException1[Microsoft.Xrm.Sdk.OrganizationServiceFault]: Operation not allowed as plugin execution exceeded maximum allowed time (Fault Detail is equal to Exception details: limit your callbacks .. Create, Update)

Quando si utilizzano plug-in Dataverse con poco codice è importante gestire in modo efficace il timeout di due minuti:

  • Limita il numero di operazioni Patch e Collect all'interno dei tuoi plug-in, soprattutto se hai altri plug-in già registrati su quella tabella, il che può influire sulle prestazioni dei tuoi plug-in.
  • Monitora le prestazioni. Tieni d'occhio le prestazioni dei tuoi plug-in e considera l'utilizzo delle funzionalità di tracciamento e registrazione all'interno di Dataverse per tenere traccia dei tempi di esecuzione e degli errori. Seguendo queste linee guida, puoi garantire che i plug-in con poco codice funzionino correttamente nell'ambiente Dataverse senza interruzioni causate dal timeout di due minuti. Maggiori informazioni: Tracciamento e registrazione

Risposta non riuscita ricevuta da APIM

Se ricevi questo messaggio di errore, che può essere restituito dalla gestione API (APIM), modifica semplicemente il plug-in e quindi salvalo nuovamente. Il salvataggio inizializza l'autenticazione APIM e il plug-in inizia a essere eseguito correttamente.

Execution failed for PowerPlexPlugin: Failed response received from APIM; StatusCode: NotFound; ResponseContent: { "statusCode": 404, "message": "Resource not found" } Method: POST; RequestUri: https://canada-001.azure-apim.net/invoke; StatusCode: NotFound; ResponseContent: { "statusCode": 404, "message": "Resource not found" }; HeadersString: Headers - 'Access-Control-Allow-Methods': 'System.String[]'; 'Access-Control-Allow-Origin': 'System.String[]'; 'Access-Control-Max-Age': 'System.String[]'; 'Access-Control-Expose-Headers': 'System.String[]'; 'Date': 'System.String[]'; Access to APIM expires..edit and save the plugin

Vedi anche

Utilizzare i plug-in con poco codice in Dataverse