One Dynamics One Platform (ODOP) – One User Experience & Runtime6 min read

In this article, we will focus on three different user experiences: Finance and Operations apps, Model-Driven apps, and Canvas apps. With the One User experience, there are two goals we are going after.

First, the ability to mix and match the assets. We have already mentioned one of the One Dynamics One Platform principles in the ODOP overview – don’t rewrite if that is not necessary. Hence, regardless of where your interface’s assets exist (Finance and Operations, Model-Driven, or Canvas apps), the idea is to allow users to continue using the user interface regardless of where an app is being built.

The second goal is around consistent user experience. F&O apps, Model-Driven apps, and Canvas apps have different controls, visual styles, and components. Meaning, One User Experience has to unify cohesive experience regardless of which app style is being used.

One User Experience – Mix and Match

Canvas apps can already be embedded inside the Finance & Operations apps. The mix-and-match option is already available to enrich your F&O experience. It can be done in several ways, mainly:

  1. through personalization either as a new tab page or as a brand-new form from the dashboard;
  2. as a developer, you can do that through the Power Apps host control.

As for Model-Driven apps, they can also be embedded in Finance & Operations. This came with the full-page apps feature, which became mandatory with the most recent (October) release.

And, as for Finance & Operations, this is the most recent functionality and you can start to embed F&O pages inside of Model Driven apps directly. However, it only works for the linked Dataverse environment.

One User Runtime

One User Runtime is about handling business data during runtime and creating end-to-end business process orchestration between front-office and back-office applications. There are a bunch of templates available to manage master data, transaction data, and e2e business processes with Finance & Supply Chain via Dual Write.

Citizen-developer extensibility in your organization is empowered to extend the Finance & Operations scenarios on the low-code platform via virtual tables, Business Events, Power Automate, Power Pages, and Power Apps. Usually, the business analysts and the domain experts of your organization play the role of citizen developers. 

Pro-developer extensibility in Power Platform also helps build custom experiences for both existing as well as new Finance & Operations scenarios where Dataverse extensibility uses plug-ins, Virtual Tables & Business Events.

That said, you can connect F&O data with Dataverse in two ways.

Connecting Data

You can use Dual Write, Virtual Table, or both to connect your Finance & Operations data with Dataverse. Dual-write is a capability that enables tightly coupled real-time interaction between database and F&O, where data can flow bidirectionally – when create, update or delete action on a record takes place in Dataverse an equivalent create, update, or delete is triggered on F&O within the same transaction scope and vice versa. Dual-write infrastructure is extensible to tune the data even to flow one way as well. 

Now, within Virtual Tables, the F&O tables do not physically reside inside a Dataverse, but they are exposed virtually, and any create/update/delete action on record directly reflects on the F&O tables in real-time.

Connecting Business Logic

When it comes down to business logic to connect your data, there are two mechanisms available, and the first one is Data Events. Data events are events that can be triggered during create, update or delete operations on native tables. For virtual tables, these events are enabled via oncreated, onupdated, and ondeleted operations for virtual tables – i.e. external systems.

On the other hand, we have Business Events which are used to trigger any events when there is a state change happening or when certain criteria are met while executing a business logic. For example, when there is a business operation happening like invoice posting, payment approval, or a collection letter is sent – you may want an event to be triggered. And, if the integrating systems are subscribing to this event, they can trigger additional business logic based on these state changes.

Also, Dual-write Virtual Table business events and Data events are complementing functions and they can work together. Or, you can use a combination of these capabilities to accomplish your cross-application business scenarios.

Connecting Business Concepts

Business concepts like a customer, product, contract, address, currency, etc. are the fundamental building blocks of a business scenario. When you are using both front-office Customer Engagement apps and back-office Finance & Operations apps in your business eco-system, these basic concepts must be connected to create data and process harmony to your cross-application scenarios.

For example, if you are handling an SMB sales motion using Dynamics 365 Sales application, you will be onboarding customers to your sales channel with pre-context about the customer – whether a customer is a foreign national or not, what is his place of origin, what is the spending limit and so on. Such info provides sales intel to apply a discount or specific price to a customer.

When you are using both Sales and Commerce applications together in your business ecosystem, you would need the customer concept and the data model to be harmonized in a way that the data coming from the SMB sales motion and the data coming from the eCommerce portal can reside in harmony within the D365 system and can talk to each other seamlessly.

Based on the common-based usage patterns, the MS team harmonized the list of concepts between CE applications and F&O applications. These templates are available when you are using Dual-write capability to start your cross-application usage journey:

  • Legal Entity concept in Dataverse;
  • Integrated customer master;
  • Integrated vendor master;
  • Awareness to organization hierarchy;
  • Access to customer loyalty cards and reward points;
  • Unified product master;
  • Integrated sites and warehouses;
  • Access to Finance and Tax Reference data;
  • Integrated Quote to cash flow;
  • Integrated procurement to pay flow;
  • Sync on-demand with supply chain price engine;
  • Sync on-demand with the commerce price engine;
  • On-hand inventory and ATP dates;
  • Integrated in-house assets for field servicing;
  • Integrated worker, job, and position;
  • Party and global address book in dataverse;
  • Notes integration.