Microsoft Dataverse з базовим кодуванням плагінів, поради та відомі проблеми (підготовча версія)
[Цей розділ є документацією для попередньої версії, і його буде змінено.]
У цій статті описано поради та відомі проблеми під час роботи з плагінами з базовим кодуванням Microsoft Dataverse.
Важливо
- Це функція попереднього перегляду.
- Підготовчі функції призначені для невиробничого використання і можуть бути обмежені. Ці функції доступні до офіційного випуску, щоб клієнти могли ознайомитися з ними заздалегідь і залишити відгуки.
Маркер загальні проблеми з часом виконання
Якщо ви зіткнулися з проблемами з динамічним плагіном, повторно відредагуйте плагін з базовим кодуванням. Потім проблеми з виразом формули intellisense відображаються в редакторі плагінів з базовим кодуванням. Дотримуйтесь вказівок, щоб виправити проблему, яка також відображається, а потім повторно збережіть плагін.
Будьте обережні при використанні латок після операції
Ваше з базовим кодуванням виконання плагіна може зіткнутися з цією помилкою при використанні Patch
в пост-операції: 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.
Використання Patch
в післяопераційному сценарії повинно виконуватися з обережністю, щоб уникнути нескінченних циклів. Операція Patch
ініціює нову транзакцію. Наприклад, якщо для MyTable
виклику запускається Patch(MyTable, ThisRecord, ...)
тригер оновлення, ця операція може призвести до рекурсивного циклу оновлення.
Ось кілька прикладів операцій, які допоможуть уникнути цієї проблеми:
Patch(CurrentTable, SomeOtherRecord, ... ) // For example, updating a manager's contact from a contact record.
Patch(OtherTable, SomeOtherRecord, ... ) // Operations on a completely different table.
Маркер двохвилинний тайм-аут
Для операцій, які тривають дві хвилини або довше, може з’явитися таке повідомлення про помилку:
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)
При роботі з Dataverse плагінами з базовим кодуванням важливо ефективно керувати двохвилинним тайм-аутом:
- Обмежте кількість плагінів
Patch
іCollect
виконання операцій усередині, особливо якщо у вас уже зареєстровано інші плагіни в цій таблиці, що може вплинути на продуктивність ваших плагінів. - Слідкуйте за продуктивністю. Слідкуйте за продуктивністю своїх плагінів і розгляньте можливість використання можливостей відстеження та ведення журналу всередині Dataverse для відстеження часу виконання та збоїв. Дотримуючись цих рекомендацій, ви можете гарантувати, що ваші плагіни з базовим кодуванням працюють безперебійно в Dataverse середовищі без перебоїв, спричинених двохвилинним тайм-аутом. Більше інформації: Трасування та ведення журналу
Невдала відповідь отримана від APIM
Якщо ви отримали це повідомлення про помилку, яке можна повернути з керування API (APIM), просто відредагуйте плагін, а потім збережіть його знову. Збереження ініціалізує автентифікацію APIM, і ваш плагін починає успішно виконуватися.
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