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
eCollect
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