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