Antes de iniciar a desenvolver no Dynamics 365 Finance and Operations é importante entender alguns conceitos básicos da estrutura do sistema, uma das mais importante é o funcionamento das Models (Modelos).
Em termos simples, models são pacotes de elementos que agrupam e organizam as funcionalidades, dados e personalizações no D365FO. Eles são usados para dividir e isolar as diferentes partes do sistema, permitindo uma maior flexibilidade e facilidade de gerenciamento.
Hierarquia Estrutural
As models fazem parte da Hierarquia Estrutural do Visual Studio para o Dynamics 365 Finance and Operations, os elementos dessa hierarquia são:
- Elements (Elementos) – Referem-se a componentes individuais que compõem uma solução ou aplicativo desenvolvido na plataforma. Esses elementos podem incluir tabelas, classes, formulários, relatórios, campos personalizados, consultas e outros artefatos que são usados para definir a lógica de negócios e a aparência da solução. Você pode visualizar esses elementos no Visual Studio através da AOT (Application Object Tree)
- Projects (Projetos) – São usados para organizar e gerenciar os elementos de uma Model, esses elementos podem estar presentes em zero ou mais projetos, porém cada projeto só pode estar vinculado a uma model.
- Models (Modelos) – Agrupam os elementos relacionados, como tabelas, classes, relatórios e outros artefatos. Elas servem como contêineres para organizar e implantar as customizações e extensões no sistema.
- Packages (Pacotes) – Um pacote é uma unidade de implantação e compilação de um ou mais models. Inclui metadados de modelo, binários e outros recursos associados. Um ou mais pacotes podem ser empacotados em um pacote implantável, e em seguida, implantado no ambiente usando o LCS (Lifecycle Services).

Tipos de Models
A arquitetura do sistema divide as Models em 2 tipos: Platform Models (Modelos de Plataforma) e Application-Specific Models (Modelos Específicas da Aplicação)
Platform models
- Application platform – É a model principal para implementar qualquer funcionalidade do D365FO. Portanto, esse modelo é incluído, por padrão, como uma referência sempre que qualquer modelo personalizado é criado. Não é possível remover a referência a esse modelo. Os principais componentes do Application platform são:
- Runtime e Acesso a dados
- Fluxo de trabalho (Workflow)
- Serviços (SOAP,OData,REST)
- Cliente e Apresentação
- Relatório SSRS
- Application foundation – Define os principais recursos funcionais que são a base de outros módulos. Os componentes desse modelo são a configuração básica da implementação:
- Estrutura da organização
- Sequência numéricaCatálogo de endereços global
- Documento de origem
- Test Essentials – Contém os elementos referentes a estrutura de testes disponível dentro do sistema que pode ser utilizada em conjunto com o Visual Studio.
Application-specific models
- Application suite – Este é a maior model pronta para uso, inclui grande parte dos metadados nas principais áreas de navegação do aplicativo, incluindo módulos como Contas a receber, Contas a pagar e Gerenciamento de depósito.
Para aprimorar esses módulos, foram criados models personalizadas que fazem referência ao Application suite. - Models Personalizadas – Models como Currency, Directory, Contacts, etc incluem funcionalidades individuais que estão disponíveis na pilha do aplicativo, com base no requisito de extensibilidade, esses modelos são referenciados para melhorar os recursos funcionais.
Hierarquia Entre Models
Agora que entendemos o que são Models, quais são os tipos e sabendo que as principais são Application platform, Application Foundation e Application Suite. Precisamos entender que elas possuem um nível hierárquico, ou seja, possuem dependência entre si para a execução do sistema, sendo assim, cada model é compilada em seu próprio assembly com dependências em assemblies de models de camada inferior.
- Application platform é a model localizada na base e contém os elementos de nível mais baixo que fazem interface com o kernel, ou seja, não depende de nenhum outro modelo. O Application Object Server (AOS) pode ser iniciado apenas com a Application Platform.
- Application Foundation fica no topo da Application Platform e contém funcionalidades de estrutura que são compartilhadas por todos os aplicativos.
- Application Suite fica no topo do Application Foundation e contém elementos específicos do aplicativo.

Essa estrutura permite o desenvolvimento modular, onde as alterações podem ser feitas no Application Suite e compiladas sem mexer no resto da pilha. Apenas os modelos com novas alterações precisam ser compilados, reduzindo bastante o tempo de compilação.
Conclusão
Para você que deseja começar a desenvolver no D365FO, entender o funcionamento das Models é essencial, elas desempenham um papel fundamental no funcionamento e personalização do sistema. Compreender sua estrutura hierárquica e os diferentes tipos de models disponíveis permite uma melhor organização, flexibilidade e extensibilidade do sistema.
Agora que você já entendeu como funcionam as Models, no próximo artigo irei mostrar como elas funcionam na prática e como podemos realizar a criação de uma Model e um projeto no Visual Studio.
Até a próxima.
