Съвети за приставки с нисък код на Microsoft Dataverse и известни проблеми (преглед)

[Тази тема е предварителна версия на документацията и подлежи на промяна.]

Тази статия описва съвети и известни проблеми при работа с добавки с нисък код в 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 инициира нова транзакция. Например, ако задействане на актуализация за 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)

Когато работите с плъгини с нисък код на 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