Поділитися через


Microsoft Dataverse Low-code плагіни: поради та відомі проблеми (попередній перегляд)

[Цей розділ є документацією для попередньої версії, і його буде змінено.]

У цій статті описано поради та відомі проблеми під час роботи з low-code плагінами Microsoft Dataverse.

Важливо

  • Це функція попереднього перегляду.
  • Підготовчі функції призначені для невиробничого використання і можуть бути обмежені. Ці функції доступні до офіційного випуску, щоб клієнти могли ознайомитися з ними заздалегідь і залишити відгуки.

Вирішення загальних проблем під час виконання

Якщо ви зіткнулися з проблемами з динамічним плагіном, повторно відредагуйте плагін із низьким кодом. Після цього проблеми intellisense у виразі формули відображаються в редакторі плагінів з низьким кодом. Дотримуйтеся вказівок, щоб виправити проблему, яка також відображається, а потім повторно збережіть плагін.

Будьте обережні, використовуючи виправлення після операції

Ваш low-code плагін може зіткнутися з цією помилкою під час використання 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, ...) update, ця операція може призвести до рекурсивного циклу оновлення.

Ось кілька прикладів операцій, які допоможуть уникнути цієї проблеми:

  • 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 low-code плагінами важливо ефективно керувати двохвилинним тайм-аутом:

  • Обмежте кількість плагінів 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

Див. також

Використовуйте low-code плагіни в Dataverse