Lógica personalizada
O Microsoft Dataverse fornece várias maneiras diferentes de executar lógica personalizada.
Várias opções estão disponíveis para aplicar a lógica de negócios personalizada no Dataverse, incluindo:
- Regras de negócios
- Fluxos de trabalho clássicos
- Fluxos da nuvem do Power Automate
- Fluxo do processo empresarial
- Colunas calculadas
- Colunas cumulativas
- Plug-ins
- Assemblies de fluxo de trabalho personalizado
- Ações personalizadas
- API personalizada
- Script de cliente
- Componentes de código do Power Apps component framework
- Integração entre Barramento de Serviço do Azure e Hubs de Eventos
- Webhooks
- Plug-ins low-code para Copilot
- Plug-ins de IA do Copilot
Criar lógica personalizada
O arquiteto da soluções deverá ser capaz de decidir qual componente do Microsoft Power Platform será usado e onde ele será usado na solução. Nenhuma regra é imposta a essa decisão, pois cada opção tem os próprios prós e contras.
Por exemplo, as seguintes limitações podem ocorrer:
- Você não pode disparar fluxos do Power Automate a partir de colunas calculadas ou cumulativas.
- As colunas cumulativas são recalculadas somente a cada hora.
- As regras de negócios só podem acessar as colunas no formulário da própria tabela.
- Os fluxos de trabalho clássicos não podem acessar linhas em relacionamentos um para muitos.
- Os dados alterados por uma regra de negócios não disparam um evento OnChange que foi criado com JavaScript.
Esta lista de limitações não está completa.
Ter uma abordagem sem/pouco código ou code-first não é a tática correta. Você precisa decidir cada situação em seus próprios méritos. Reconhecer os recursos dessas opções é um pré-requisito para um aspirante a arquiteto de soluções.
Processamento síncrono x assíncrono
A lógica personalizada pode ser implementada de forma síncrona ou assíncrona. Os arquitetos de soluções precisam considerar se as operações lógicas personalizadas devem ser executadas de forma síncrona ou assíncrona.
Quando as operações são executadas de forma síncrona, a tela do usuário fica bloqueada até que todas as operações sejam concluídas. As operações podem modificar os dados antes ou depois de serem salvos no banco. As chamadas síncronas adicionam uma sobrecarga mínima ao processamento, mas todas as operações em uma transação síncrona são limitadas a um total de dois minutos. Esse limite é fixo e não pode ser alterado. Os plug-ins e os fluxos de trabalho clássicos do Dataverse podem ser executados de forma síncrona. As regras de negócios são executadas de forma síncrona quando o escopo é definido como Tabela.
Quando as operações são executadas de forma assíncrona, a tela do usuário é retornada depois que os dados são salvos no banco. A operação será adicionada a uma fila e será executada posteriormente, o que pode variar entre alguns segundos, vários minutos ou até horas, dependendo da carga de trabalho. Assíncrono significa que os usuários precisarão atualizar a tela para ver os resultados. Ocorre sobrecarga adicional na execução de trabalhos assíncronos. A plataforma cria linhas nas tabelas AsyncOperation e WorkflowLog. Essas linhas são atualizadas quando a operação é iniciada, à medida que ela progride e depois de concluída. As linhas podem ser configuradas para serem excluídas automaticamente. Os plug-ins e os fluxos de trabalho clássicos do Dataverse podem ser executados de forma assíncrona. Os fluxos da nuvem do Power Automate são executados de forma assíncrona.
Processamento do cliente x servidor
Os arquitetos de soluções precisam entender onde a lógica é realizada.
As fórmulas de aplicativo de tela, o script de formulário baseado em modelo, regras de negócios e a lógica do Power Apps component framework ocorrem na interface do usuário, e o usuário verá o resultado imediatamente. No entanto, essa lógica é imposta somente no aplicativo no qual a lógica é implementada.
Os plug-ins, os fluxos da nuvem do Power Automate, os fluxos de trabalho clássicos e as regras de negócios (com escopo definido como Tabela) ocorrem somente quando os dados são enviados para o servidor por um aplicativo, um fluxo ou uma chamada à API. O usuário vê somente os resultados da lógica personalizada de serviço em seu aplicativo após a atualização dos dados. A lógica do servidor é imposta quando qualquer aplicativo, fluxo ou API é usado.
O Microsoft Power Platform impõe limites quanto ao número de chamadas que podem ser feitas. O arquiteto de soluções precisa desenvolver a solução com esses limites em mente.