Wskazówki i znane błędy dotyczące plug-inów Microsoft Dataverse o niskiej zawartości kodu (wersja zapoznawcza)
[Ten temat pochodzi ze wstępnej wersji dokumentacji i może ulec zmianie.]
W tym artykule opisano wskazówki i znane problemy podczas pracy z plug-inami o niskim kodzie w aplikacji Microsoft Dataverse.
Ważne
- Jest to funkcja w wersji zapoznawczej.
- Funkcje w wersji zapoznawczej nie są przeznaczone do użytku w środowiskach produkcyjnych i mogą mieć ograniczoną funkcjonalność. Te funkcje są udostępniane przed oficjalnym wydaniem, dzięki czemu klienci mogą szybciej uzyskać do nich dostęp i przekazać opinie na ich temat.
Obsługa ogólnych kwestii związanych z uruchamianiem
Jeśli wystąpią problemy z wtyczką uruchamiania, należy ponownie edytować wtyczkę o niskim kodzie. Następnie zagadnienia intellisense dotyczące wyrażenia formuły są wyświetlane w edytorze plug-in o niskiej zawartości kodu. Postępuj zgodnie ze wskazówkami, aby naprawić problem, które są również wyświetlane, a następnie ponownie zapisz plug-in.
Należy zachować ostrożność podczas stosowania łatek operacji Post
Wykonanie plug-in o niskim kodzie może napotkać ten błąd podczas korzystania z Patch
w operacji Post: 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.
Korzystanie z Patch
w scenariuszu po operacji musi być wykonywane ostrożnie, aby uniknąć nieskończonych pętli. Operacja Patch
inicjuje nową transakcję. Na przykład, jeśli wyzwalacz aktualizacji dla MyTable
wywoła Patch(MyTable, ThisRecord, ...)
, operacja ta może spowodować rekurencyjny cykl aktualizacji.
Oto kilka przykładów operacji, które pozwalają uniknąć tego problemu:
Patch(CurrentTable, SomeOtherRecord, ... ) // For example, updating a manager's contact from a contact record.
Patch(OtherTable, SomeOtherRecord, ... ) // Operations on a completely different table.
Obsługa dwuminutowego limitu czasu
W przypadku operacji trwających dwie minuty lub dłużej może wystąpić ten błąd:
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)
Podczas pracy z niskokodowymi plug-inami Dataverse ważne jest efektywne zarządzanie dwuminutowym limitem czasu:
- Ogranicz liczbę operacji
Patch
iCollect
wewnątrz swoich plug-inów, zwłaszcza jeśli masz już zarejestrowane inne plug-in'y względem tej tabeli, co może wpłynąć na wydajność twoich plug-in'ów. - Monitorowanie wydajności. Miej oko na wydajność swoich plug-inów i rozważ użycie funkcji śledzenia i rejestrowania w Dataverse, aby śledzić czasy wykonania i awarie. Postępując zgodnie z tymi wskazówkami, można zapewnić płynne działanie plug-inów o niskim kodzie w środowisku Dataverse bez przerw spowodowanych dwuminutowym limitem czasu. Więcej informacji: Śledzenie i rejestrowanie
Nieudana odpowiedź otrzymana od APIM
Jeśli otrzymasz ten komunikat o błędzie, który może zostać zwrócony z zarządzania API (APIM), po prostu edytuj plug-in, a następnie zapisz ponownie. Zapisanie inicjalizuje uwierzytelnianie APIM i plug-in zaczyna wykonywać się pomyślnie.
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