Compartilhar via


Dicas de plug-ins de baixo código do Microsoft Dataverse e problemas conhecidos (versão prévia)

[Este tópico faz parte da documentação de pré-lançamento e está sujeito a alterações.]

Este artigo descreve dicas e problemas conhecidos ao trabalhar com plug-ins de baixo código no Microsoft Dataverse.

Importante

  • Os plug-ins instantâneos de low-code não são priorizados e não estão sendo entregues como um recurso. Os plug-ins instantâneos de low-code são substituídos por funções. Mais informações: Funções no Microsoft Dataverse (versão preliminar)
  • Esse é um recurso de visualização.
  • Os recursos de versão preliminar não foram criados para uso em ambientes de produção e podem ter funcionalidade restrita. Esses recursos estão disponíveis antes de um lançamento oficial para que os clientes possam obter acesso antecipado e fornecer comentários.

Lidar com problemas gerais de runtime

Se você enfrentar problemas de plug-in de runtime, edite novamente o plug-in low-code. Em seguida, os problemas do Intellisense na expressão da fórmula serão exibidos no editor de plug-in low-code. Siga as diretrizes para corrigir o problema que também é mostrado, e em seguida, re-salve o plug-in.

Tenha cuidado ao aplicar patches pós-operação

A execução do plug-in low-code pode encontrar este erro ao usar Patch em uma pós-operação: 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.

O uso Patch em um cenário pós-operação deve ser feito com cuidado para evitar loops infinitos. Uma Patch operação inicia uma nova transação. Por exemplo, se um gatilho de atualização para MyTable invocar Patch(MyTable, ThisRecord, ...), essa operação poderá resultar em um ciclo de atualização recursivo.

Aqui estão alguns exemplos de operações que podem evitar esse problema:

  • Patch(CurrentTable, SomeOtherRecord, ... ) // For example, updating a manager's contact from a contact record.
  • Patch(OtherTable, SomeOtherRecord, ... ) // Operations on a completely different table.

Lidar com o tempo limite de dois minutos

Para operações que continuam por dois minutos ou mais, você pode receber este erro:

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)

Ao trabalhar com plug-ins de baixo código do Dataverse, é importante gerenciar o tempo limite de dois minutos com eficiência:

  • Limite o número de operações Patch e Collect dentro de seus plug-ins, especialmente se você tiver outros plug-ins já registrados nessa tabela, o que pode afetar o desempenho de seus plug-ins.
  • Monitore o desempenho. Fique de olho no desempenho dos plug-ins e considere o uso de recursos de rastreamento e registro em log no Dataverse para acompanhar os tempos de execução e as falhas. Seguindo essas diretrizes, você pode garantir que seus plug-ins de baixo código sejam executados sem problemas no ambiente do Dataverse sem interrupção causada pelo tempo limite de dois minutos. Mais informações: Rastreamento e registro em log

Resposta com falha recebida do APIM

Se você receber essa mensagem de erro, que pode ser retornada do APIM (gerenciamento de API), basta editar o plug-in e, em seguida, reenviá-lo. Salvar inicializa a autenticação APIM e o plug-in começa a ser executado com êxito.

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

Consulte também

Usar plug-ins de baixo código no Dataverse