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

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

У цій статті описано поради та відомі проблеми під час роботи з компонентами plug-in із низьким кодом у Microsoft Dataverse.

Важливо

  • Плагіни з миттєвим низьким вмістом коду мають депріоритезацію та не надаються як функція. Миттєві 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 ініціює нову транзакцію. Наприклад, якщо активатор оновлення викликає MyTablePatch(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)

При роботі з low-code плагінами 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

Дивись також

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