Application components and architecture

Completed

Finance and operations apps are based on a model-driven architecture. The core functionality and some major functional features are segregated into various models. Element-level dependency is defined among all these models, building a robust application architecture for finance and operations apps. Application architecture is divided into platform models and application-specific models.

Platform models

The platform models are:

  • Application platform
  • Application foundation
  • Test essentials

Application platform

Application platform is the core model to implement any functionality of finance and operations apps. Hence, this model is included as a referenced model by default when any custom model is created. It's not possible to remove the reference to this model.

The major application areas of the Application platform model are:

  • Runtime and Data access - The Application platform is the lowest model and contains the lowest level elements that communicate with the kernel.

  • Workflow and services - Workflow is a common functionality in finance and operations apps that represents a business process. It defines how a document flows, or moves, through the system by showing who must complete a task, make a decision, or approve a document. Standard workflows are already available for all apps. You can build custom workflows on the framework as desired.

    Application platform enables users to develop custom services for finance and operations apps. When a developer writes a custom service under a service group, the service group is always deployed on two endpoints:

    • SOAP endpoint
    • JSON endpoint

    Finance and operations apps also provide for OData Service and REST Metadata service, both of which can be used for integration purposes.

  • Client and Presentation - Finance and operations apps are designed to deal with complex business transactions in a user-friendly interface through different devices, such as laptops, tablets, or mobile phones. The web client, which users can access from their PC or laptop, is the most used interface. Several concepts are offered in the Presentation layer of the application, such as dashboard and workspace. These concepts are all configurable components that you can drill down to the core transaction in each module.

  • SSRS reporting - Each module of finance and operations apps has major standard reports, which are developed in SQL Server Reporting Services (SSRS). SSRS can connect to the business data of finance and operations apps and can create custom reports by using two methods:

    • Query based
    • Data provider

By using the query-based approach, you can develop simple reports. To develop complex business logic in reporting, the data provider approach is more appropriate.

Application foundation

The Application foundation model defines major functional features that are the foundation of other modules. The components of this model are the basic setup of the implementation.

  • Organization structure - An organization is a group of entities that work together to carry out a business process or achieve a goal. Organizational hierarchies represent the relationships between the organizations that make up the business. Different internal organizations are legal entities, operating units, and teams.

    • A legal entity is the most important configuration of any implementation that represents a registered and legislated legal structure. Legal entities can enter into legal contracts and are required to prepare statements that report on their performance.

    • An operating unit is an organization that is used to divide the control of economic resources and operational processes in a business.

    • A team is an organization in which the members share a common responsibility, interest, or objective. Teams can't be used in organizational hierarchies.

  • Number sequence - Use this component to generate readable, unique identifiers for master data records and transaction records that require identifiers. Number sequence in finance and operations apps has a robust framework that can regulate numbering based on individual/shared legal entity/operating unit combined with the fiscal calendar period.

  • Global address book - This component is a data model for contact information that's stored for all internal and external persons and organizations that the company interacts with. The data that's associated with party records includes the party's name, address, and contact information. It includes a directory of postal and electronic addresses of the organizations and individuals that interact with a business.

    Depending on the business context, a person or an organization might play more than one role, and the same postal address and electronic address might be used for all roles. In this case, a change of address in one role should appear in all other roles. The global address book stores and handles addresses globally.

  • Source document - The Source document framework provides functionality that's necessary to record business events and create accounting for the newly created document, such as accounting distributions and subledger journal entries.

Test essentials

Finance and operations apps have a robust test framework that help conduct different testing procedures. You can create a test module to manage test code by using FormAdaptors. After the base test module is in place, you can import Task Recorder to generate test code. When you import a Task Recorder recording XML file, test code will be generated by using FormAdaptors.

FormAdaptors are wrapper classes over forms that provide strongly typed APIs that you can use to test form functionality. Pre-generated FormAdaptors are available for each package for built-in forms. In the test module, you can add reference to the corresponding FormAdaptors for packages along with the Test Essentials package reference, which has helper methods to run test code.

For more information, see Test projects in Visual Studio.

Application-specific models

Many application-specific models are available, including Application suite, Ledger, Retail, and Case management.

Standard models for different functional features are also available. Application suite is the most important model that covers major functionality.

Application suite

Application suite sits on top of Application foundation, and it contains application-specific elements. The Application suite model contains components of Supply Chain Management, Human Resources, Finance, and more. For enhancement in those modules, new custom models are created that reference the Application suite.

Other models

Other models, such as Currency, Directory, Contacts, and more, cover individual functionalities that are available in the application stack. Based on the extensibility requirement, these models are referenced to enhance functional features.

Dynamics 365 product suite

Dynamics 365 is a business application that consists of several solutions, such as Sales, Marketing, Service, Finance, Commerce, and Supply Chain Management. The latter three are considered the finance and operations apps.