Советы по малокодовым подключаемым модулям 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 Management (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

См. также

Использование малокодовых подключаемых модулей в Dataverse