Microsoft Dataverse conseils sur les plug-ins low-code et problèmes connus (aperçu)
[Cette rubrique fait partie de la documentation en version préliminaire et peut faire l'objet de modifications.]
Cet article Décrit les conseils et problèmes connus pour travailler avec des plug-ins low-code dans Microsoft Dataverse.
Important
- Cette fonctionnalité est en version préliminaire.
- Les fonctionnalités préliminaires ne sont pas destinées à une utilisation en production et peuvent avoir des fonctionnalités restreintes. Ces fonctionnalités sont disponibles avant une publication officielle afin que les clients puissent y accéder de façon anticipée et fournir des commentaires.
Gérer les problèmes généraux d’exécution
Si vous rencontrez des problèmes de plug-in d’exécution, rééditez le plug-in low-code. Ensuite, les problèmes Intellisense sur votre expression de formule sont affichés dans l’éditeur de plug-in low-code. Suivez les instructions pour corriger le problème qui s’affichent également, puis réenregistrez le plug-in.
Soyez prudent lorsque vous utilisez des correctifs post-opératoires
L’exécution de votre plug-in low-code peut rencontrer cette erreur lors de l’utilisation de Patch
dans une post-opération : 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’utilisation de Patch
dans un scénario post-opératoire doit être effectuée avec prudence pour éviter des boucles infinies. Une Patch
opération initie une nouvelle transaction. Par exemple, si un déclencheur de mise à jour pour MyTable
invoque Patch(MyTable, ThisRecord, ...)
, cette opération peut entraîner un cycle de mise à jour récursif.
Voici quelques exemples d’opérations qui peuvent éviter ce problème :
Patch(CurrentTable, SomeOtherRecord, ... ) // For example, updating a manager's contact from a contact record.
Patch(OtherTable, SomeOtherRecord, ... ) // Operations on a completely different table.
Gérer le délai d’attente de deux minutes
Pour les opérations qui durent deux minutes ou plus, vous pouvez recevoir cette erreur :
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)
Lorsque vous travaillez avec Dataverse plugins low-code, il est important de gérer efficacement le délai d’expiration de deux minutes :
- Limitez votre nombre d’opérations
Patch
etCollect
dans vos plug-ins, surtout si d’autres plug-ins sont déjà enregistrés dans cette table, ce qui peut affecter les performances de vos plug-ins. . - Analyser les performances. Gardez un œil sur les performances de vos plug-ins et envisagez d’utiliser les fonctionnalités de traçage et de journalisation Dataverse pour suivre les temps d’exécution et les échecs. En suivant ces consignes, vous pouvez garantir que vos plug-ins low-code fonctionnent correctement dans l’environnement Dataverse sans interruption causée par le délai d’attente de deux minutes. Pour plus d’informations : Traçage et journalisation
Échec de réponse reçue de l’APIM
Si vous recevez ce message d’erreur, qui peut être renvoyé par la gestion des API (APIM), modifiez simplement le plug-in, puis enregistrez-le à nouveau. L’enregistrement initialise l’authentification APIM et votre plug-in commence à s’exécuter avec succès.
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