Partager via


Conseils relatifs aux plug-ins basse code de Microsoft Dataverse 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 les problèmes connus lors de l’utilisation de plug-ins à code faible dans Microsoft Dataverse.

Important

  • Les plug-ins low-code instantanés ne sont plus prioritaires et ne sont pas fournis en tant que fonctionnalité. Les plug-ins low-code instantanés sont remplacés par des fonctions. Pour plus d’informations, voir Fonctions dans Microsoft Dataverse (version préliminaire)
  • Il s’agit d’une fonctionnalité en préversion.
  • Les fonctionnalités d'évaluation ne sont pas destinées à une utilisation en production et peuvent être restreintes. Ces fonctionnalités sont disponibles avant une publication officielle afin que les clients puissent obtenir un accès anticipé et fournir des commentaires.

Gérer les problèmes d’exécution généraux

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.

Utilisez la prudence lors de l’utilisation de la mise à jour corrective post-opération

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 Patch dans un scénario post-opération doit être effectuée avec précaution pour éviter les boucles infinies. Une Patch opération lance 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 timeout de deux minutes

Pour les opérations qui continuent pendant 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 utilisez des plug-ins dataverse à faible code, il est important de gérer efficacement le délai d’expiration de deux minutes :

  • Limitez votre nombre d'opérations Patch et Collect à l'intérieur de vos plug-ins, en particulier si d'autres plug-ins sont déjà inscrits sur ce tableau, ce qui peut affecter les performances de vos plug-ins.
  • Surveillez les performances. Gardez un œil sur les performances de vos plug-ins et envisagez d’utiliser des fonctionnalités de suivi et de journalisation dans Dataverse pour suivre les temps d’exécution et les échecs. En suivant ces instructions, vous pouvez vous assurer que vos plug-ins à faible code s’exécutent sans interruption dans l’environnement Dataverse sans interruption causée par le délai d’expiration de deux minutes. Pour plus d’informations : Traçage et journalisation

Réponse ayant échoué reçue de APIM

Si vous recevez ce message d’erreur, qui peut être retourné par la gestion des API (APIM), modifiez simplement le plug-in, puis réenregistrer. L’enregistrement initialise l’authentification APIM et votre plug-in commence à s’exécuter correctement.

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

Voir aussi

Utiliser des plug-ins à code faible dans Dataverse