Tipps zu Microsoft Dataverse-Low-Code-Plug-Ins und bekannte Problem (Vorschauversion)
[Dieses Thema ist Teil der Dokumentation zur Vorabversion und kann geändert werden.]
Dieser Artikel beschreibt Tipps und bekannte Probleme beim Arbeiten mit Low-Code-Plug-Ins in Microsoft Dataverse.
Wichtig
- Dies ist eine Vorschauversion.
- Die Vorschaufunktionen sind nicht für die Produktion vorgesehen und weisen möglicherweise eine eingeschränkte Funktionalität auf. Diese Funktionen stehen vor der offiziellen Version zur Verfügung, damit Kunden früher Zugriff darauf erhalten und Feedback geben können.
Umgang mit allgemeinen Laufzeitproblemen
Wenn bei Ihnen Plug-In-Laufzeitprobleme auftreten, bearbeiten Sie das Low-Code-Plug-In erneut. Anschließend werden die IntelliSense-Probleme Ihres Formelausdrucks im Low-Code-Plug-In-Editor angezeigt. Halten Sie an die ebenfalls angezeigten Leitlinien zum Beheben des Problems und speichern Sie das Plug-In anschließend erneut.
Vorsicht beim Patchen nach dem Vorgang
Bei der Ausführung Ihres Low-Code-Plug-Ins tritt möglicherweise dieser Fehler auf, wenn Sie nach einem Vorgangn Patch
verwenden: 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.
Lassen Sie bei der Verwendung von Patch
in einem Szenario nach einem Vorgang Vorsicht walten, damit keine Endlosschleifen entstehen. Ein Patch
-Vorgang initiiert eine neue Transaktion. Wenn beispielsweise ein Aktualisierungstrigger für MyTable
Patch(MyTable, ThisRecord, ...)
aufruft, kann dieser Vorgang zu einem rekursiven Aktualisierungszyklus führen.
Hier sind einige Beispiele für Vorgänge, mit denen Sie dieses Problem vermeiden können:
Patch(CurrentTable, SomeOtherRecord, ... ) // For example, updating a manager's contact from a contact record.
Patch(OtherTable, SomeOtherRecord, ... ) // Operations on a completely different table.
Umgang mit Zwei-Minuten-Timeouts
Bei Vorgängen, die zwei Minuten oder länger andauern, kann dieser Fehler auftreten:
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)
Beim Arbeiten mit Dataverse-Low-Code-Plug-Ins ist es wichtig, das Zwei-Minuten-Timeout effektiv zu verwalten:
- Begrenzen Sie die Anzahl Ihrer
Patch
- undCollect
-Vorgänge innerhalb Ihrer Plug-Ins, insbesondere, wenn Sie bereits andere Plug-Ins für diese Tabelle registriert haben, da dies die Leistung Ihrer Plug-Ins beeinträchtigen kann. - Überwachen Sie die Leistung Behalten Sie die Leistung Ihrer Plug-Ins im Auge und überlegen Sie sich, die Ablaufverfolgungs- und Protokollierungsfunktionen in Dataverse zu verwenden, um Ausführungszeiten und Fehler nachzuverfolgen. Wenn Sie diese Leitlinien einhalten, können Sie sicherstellen, dass Ihre Low-Code-Plug-Ins in der Dataverse-Umgebung reibungslos ausgeführt werden und nicht durch das Zwei-Minuten-Timeout unterbrochen werden. Weitere Informationen: Nachverfolgung und Protokollierung
Fehlgeschlagene Antwort von APIM erhalten
Wenn Sie diese Fehlermeldung erhalten, die vom API Management (APIM) zurückgegeben werden kann, bearbeiten Sie einfach das Plug-In und speichern Sie dann erneut. Durch das Speichern wird die APIM-Authentifizierung initialisiert und Ihr Plug-In wird erfolgreich ausgeführt.
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