---
source_url: https://itmustbecode.com/finance-and-operations-virtual-entity-manager-for-xrmtoolbox/
title: Finance and Operations Virtual Entity Manager for XrmToolBox
date: 2024-02-25T14:52:19+00:00
categories:
  - blog
  - projects-and-tools
tags:
  - dataverse
  - finance-and-operations
  - xrmtoolbox
word_count: 1787
reading_time_minutes: 9
type: posts
---

As Microsoft pursues its One Dynamics, One Platform initiative, substantial investments are made to integrate the **D365 Finance and Operations** suite with the **Power Platform** and **Dataverse**.

These includes the ability to surface most F&O tables as **[virtual entities](https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/power-platform/virtual-entities-overview?WT.mc_id=DX-MVP-5004959)** in Dataverse. Bringing full CRUD capabilities, but also opening up the whole Power Platform ecosystem to **consume and act** on F&O data. Think Power Automate, Model-driven and Canvas Apps, PCF Controls, Power Pages, etc.

While experimenting with Finance and Operations virtual entities, I found **gaps** in the tooling and processes required to enable and manage them. This led to the inception of my latest tool for the [XrmToolBox](https://www.xrmtoolbox.com/), the **[FinOps Virtual Entity Manager](https://github.com/drivardxrm/Driv.XTB.FinOpsVirtualEntityManager)**.

{{< figure src="./image-4.png" alt="" caption="" >}}

{{< figure src="./1708538864135.jpg" alt="" caption="" >}}

Here are the main features that I'll explain later on :

\- 📋List/Filter available Finance and Operations entities  
\- 👁️Enable/Disable visibility of entities in Dataverse (Virtual entity enabled)  
\- 🔁Enable/Disable change tracking of entities  
\- 🔄Refresh entity metadata  
\- 🤝Integrated with the Metadata Browser Companion from [Tanguy Touzart](https://www.linkedin.com/in/tanguytouzard/) to explore virtual entities attributes

But first, let's put things in context.

## My ode to XrmToolBox

For most Power Platform developers, the [**XrmToolBox**](https://www.xrmtoolbox.com/) needs no introduction. But if you come from the F&O world you might not be familiar with this ecosystem and could be wondering what the fuss is all about.

To make a long story short, the **XrmToolBox** is a versatile and robust toolkit for Dynamics 365 and Power Platform professionals developed and maintained an by [Tanguy Touzart](https://www.linkedin.com/in/tanguytouzard/).

With its user-friendly interface to organize environment **connections** and extensive range of powerful **plugins** developed by the community, the XrmToolBox helps users to streamline development, customization, administration and troubleshooting tasks within Power Platform environments.

Quite frankly, I think I can count on my fingers the days that I haven't opened the toolbox on my day to day activities. Some of these tools have literally saved my **sanity** more than once.

Also as a tool author myself, the platforms provides a level of **reach and exposure** that would be impossible to achieve independently, thanks to its widespread use.

So, wait no more and install the toolbox and be sure to download the **FinOps Virtual Entity Manager** (...and my other tools at the same time... _shameless plug_ 😏 )

{{< figure src="./image-5.png" alt="" caption="" >}}

## Background and Pre-requisites

Even if they are often marketed together (under the **Dynamics 365** umbrella), Finance and Operations and Power Platform / Dataverse are two entirely distinct product offerings. Each possesses its own unique architecture and serves vastly different purposes.

For the digital archeologists, Finance and Operations is derived from Dynamics AX whereas PP/Dataverse get its roots from Dynamics CRM and has dramatically evolved to the current PaaS (Platform as a service) that we know and love today.

In an effort to integrate and bring these 2 products together, the product team have made it quite easy to integrate a Finance and Operations environment to a PP/Dataverse environment through the **Lifecycle Services** portal. This setup goes beyond the scope of this blog post but you can find relevant info here.

🔗 [Enable Power Platform Integration - Finance & Operations \| Dynamics 365 \| Microsoft Learn](https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/power-platform/enable-power-platform-integration?WT.mc_id=DX-MVP-5004959)

🔗 [One Dynamics One Platform - Dataverse C# Plugin for Dynamics 365 F&O — PowerAzure365](https://www.powerazure365.com/blog-1/one-dynamics-one-platform-dataverse-c-plugin-for-dynamics-365-fampo)

Once the integration completed you can appreciate a new **Finance and Operations URL** when navigating to the linked Dataverse environment from the **Power Platform Admin Center** (PPAC)

{{< figure src="./image-6.png" alt="" caption="" >}}

{{< figure src="./image-7.png" alt="" caption="" >}}

This is where the fun begins 😎.

## Connecting to the Tool

I won't go in details on how to setup connections for the XrmToolBox, it's a vast topic, but here is an helpful link

🔗 [Connecting to an environment · XrmToolBox](https://www.xrmtoolbox.com/documentation/for-users/connecting-to-an-organization/)

Once connected to an FinOps/Dataverse linked environment, if you fire up the **FinOps Virtual Entity Manager**, you'll be presented with the respective URLs of the Dataverse and the FinOps environments.

{{< figure src="./image-21.png" alt="" caption="" >}}

By clicking on the **Load/refresh** entities the list of **Available Finance and Operations entities** will be loaded on screen.

> If you are interested on what is happening under the hood, I simply fetch the data from the **mserp\_financeandoperationsentity** table that is itself a Virtual entity that is created part of the FinOps/Dataverse integration.
>
> As you can see here, I'm querying the entity using **[SQL 4 CDS](https://www.xrmtoolbox.com/plugins/MarkMpn.SQL4CDS/)** by [Mark Carrington](https://www.linkedin.com/in/markmpn/), another essential tool of the xrmTooolBox.
>
> {{< figure src="./image-22.png" alt="" caption="" >}}

## Navigating through the entities

There are about 3000 exposed entity coming from FinOps, so its important for the tool to be able to filter the tables to give a better user experience.

The tool, currently supports filter on the physical name, visible (virtual enabled) and change tracking enabled fields.

{{< figure src="./image-9.png" alt="" caption="" >}}

## Act on selected Finance and Operations entities

By selecting a table from the list of available entities, this will populate the side-pane with the table info and give users the possibility to take action on certain parameters of the table.

{{< figure src="./image-10.png" alt="" caption="" >}}

### 👁️Enable/Disable visibility (Virtual entity enabled)

Enabling **visibility** of a F&O table will automatically expose that table as a Virtual entity in Dataverse. The new virtual entity will be prefixed with **mserp\_** in the environwement.

{{< figure src="./image-14.png" alt="" caption="" >}}

{{< figure src="./image-11.png" alt="" caption="" >}}

In the PowerApps maker portal you will see the table like this.

{{< figure src="./image-12.png" alt="" caption="" >}}

From now on, the bar is open for that table on Dataverse side. you can for example :

- **Query** the data from Dataverse like any other native tables
- **Act** on the data with Power Automate, Dataverse plugins, Custom APIs
- Create **rich user interfaces** with full CRUD capabilities like Model Driven apps, Canvas apps and Power Pages.
- Create **relationships** between native Dataverse tables and FinOps tables ( _that one is pretty_ impressive)

{{< figure src="./image-13.png" alt="" caption="" >}}

{{< figure src="./image-19.png" alt="" caption="" >}}

> _Note that the security/licensing context is not bypassed here, all consuming users need to be properly configured in Finance and Operations._

###   
🔁Enable/Disable change tracking of entities

For certain scenarios like Synapse link / Fabric integration of the tables data, its necessary to enable the **change tracking** at the virtual table level.

Unfortunately the switch to enable change tracking is grayed out if you want to set it up at the table level in the maker portal.

{{< figure src="./image-17.png" alt="" caption="" >}}

By using the tool you can easily enable the change tracking of the FinOps virtual entity.

{{< figure src="./image-15.png" alt="" caption="" >}}

The virtual entity will then show up with the **Track Changes** switch enabled in the maker portal.

{{< figure src="./image-18.png" alt="" caption="" >}}

> As mentioned by [Nurlin Aberra](https://www.linkedin.com/in/nurlin-aberra-7b99121/) in a [recent post](https://www.linkedin.com/pulse/feasible-employ-t-sql-querying-dynamics-365-fo-virtual-nurlin-aberra-wumzf/?trackingId=Fc2OC0H1RxCBsL4TRqhWLw%3D%3D), if you run into errors while activating the change tracking property, you might want to check these requirements on the Finance and Operation side
>
> [Row version change tracking for tables and data entities - Finance & Operations \| Dynamics 365 \| Microsoft Learn](https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/data-entities/rowversion-change-track#enable-row-version-change-tracking-for-data-entities)
>
> {{< figure src="./image-23.png" alt="" caption="" >}}

###   
🔄Refresh entity metadata

If fields are added on an F&O tables afterward, you will want to update the metadata of the virtual entity, this is where you will use the **Refresh Metadata** switch on the entity

{{< figure src="./image-16.png" alt="" caption="" >}}

I haven't really tried it but, it speaks for itself.

## Explore Metadata

This feature is among my top favorites in the tool, mostly because I only had to write one single line of code to integrate my tool with the awesome [**Metadata Browser Companion**](https://www.linkedin.com/pulse/welcome-metadata-browser-companion-tanguy-touzard/) tool from [Tanguy Touzart](https://www.linkedin.com/in/tanguytouzard/).

The end-result is quite slick IMHO as the user doesn't even notices that there is a second tool involved. Kudos to Tanguy for making his tool extendable.

{{< figure src="./metadatabrowsercompanion.gif" alt="" caption="" >}}

As you can see, clicking on the **Explore with Metadata Browser** opens the companion tool and we can drill-down on all the available metadata of the virtual entity including the newly created relationships demonstrated earlier

{{< figure src="./image-20.png" alt="" caption="" >}}

## TakeAway

That's it for now, I hope the tool will be helpful to some of you, as I really think it fills a gap. Please reach out if you have any comments or have any ideas for improvements, feedback is greatly appreciated ( _link to the github repo below_).

🔗 [drivardxrm/Driv.XTB.FinOpsVirtualEntityManager: XrmToolBox tool to manage Finance and Operations Dataverse Virtual Entities (github.com)](https://github.com/drivardxrm/Driv.XTB.FinOpsVirtualEntityManager)

Speaking of the FinOps/Dataverse convergence, I see a lot of **potential** especially on the edges of the Finance and Operations ERP. Some scenarios like data entry, acting on business events and reporting might benefit from the Power Platform in the long run.

Also please note that I consider myself a **total newbie** on Finance and Operations, as I've only recently been exposed to it. Therefore, the views expressed in this post might be tainted by the Power Platform lens which is what I know best. I would love hear from Finance and Operations experts on that topic and understand what challenges they foresee with such architectural approaches.

Until then...

## Links
{{< linkcard url="https://github.com/drivardxrm/Driv.XTB.FinOpsVirtualEntityManager" title="GitHub - drivardxrm/Driv.XTB.FinOpsVirtualEntityManager: XrmToolBox tool to manage Finance and Operations Dataverse Virtual Entities" summary="XrmToolBox tool to manage Finance and Operations Dataverse Virtual Entities - drivardxrm/Driv.XTB.FinOpsVirtualEntityManager" image="/linkcards/940cc6f8811a3aec.png" domain="github.com" new_tab="true" nofollow="true" >}}

{{< linkcard url="https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/power-platform/enable-power-platform-integration?WT.mc_id=DX-MVP-5004959" title="Enable Power Platform Integration - Finance & Operations | Dynamics 365" summary="This article explains how to enable the Microsoft Power Platform integration by using Microsoft Dynamics Lifecycle Services for finance and operations apps and Dataverse." image="https://learn.microsoft.com/en-us/media/open-graph-image.png" domain="learn.microsoft.com" new_tab="true" nofollow="true" >}}

{{< linkcard url="https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/power-platform/virtual-entities-overview?WT.mc_id=DX-MVP-5004959" title="Virtual entities overview - Finance & Operations | Dynamics 365" summary="This article provides general information about virtual entities for finance and operations apps." image="https://learn.microsoft.com/en-us/media/open-graph-image.png" domain="learn.microsoft.com" new_tab="true" nofollow="true" >}}


{{< linkcard url="https://www.xrmtoolbox.com/" title="Home · XrmToolBox" summary="XrmToolBox is a Windows application that connects to Microsoft Dataverse. Dynamics 365 Customer Engagement (CE) applications, like Dynamics 365 for Sales, Service or Talent also use Microsoft Dataverse as their foundational data service. XrmToolBox, provides tools to ease customization, configuration and operation tasks for anything built on Microsoft Dataverse, including Dynamics 365 CE (formerly CRM) and model-driven PowerApps. It is shipped with more than 30 tools to make administration, customization or configuration tasks easier and less time consuming. And more than 100 other tools are available in the Tool Library." image="/linkcards/6f96dbb8987f563d.png" domain="www.xrmtoolbox.com" new_tab="true" nofollow="true" >}}


{{< linkcard url="https://www.xrmtoolbox.com/documentation/for-users/connecting-to-an-organization/" title="Connecting to an environment · XrmToolBox" summary="XrmToolBox is able to connect to any kind of environment from Microsoft Dynamics CRM 2011 to Microsoft Dynamics 365 for Customer Engagement and Power Apps Common Data Service, using one of the available connection methods." image="/linkcards/6f96dbb8987f563d.png" domain="www.xrmtoolbox.com" new_tab="true" nofollow="true" >}}


{{< linkcard url="https://www.xrmtoolbox.com/plugins/MarkMpn.SQL4CDS/" title="SQL 4 CDS · XrmToolBox" summary="SQL 4 CDS allows you to use standard SQL syntax to query and manipulate your data and metadata in Dataverse / D365." image="/linkcards/6f96dbb8987f563d.png" domain="www.xrmtoolbox.com" new_tab="true" nofollow="true" >}}


{{< linkcard url="https://www.linkedin.com/pulse/welcome-metadata-browser-companion-tanguy-touzard/" title="Welcome to Metadata Browser companion" summary="Today, I’m releasing my first companion for XrmToolBox. What? You don’t know what a XrmToolBox companion is? It’s a compact tool designed to be used aside other tools in XrmToolBox." image="https://media.licdn.com/dms/image/D4E12AQHcOWOz4XZmow/article-cover_image-shrink_720_1280/0/1664546581938?e=2147483647&v=beta&t=QO4kd1lNc0oNjw4UcAm9fBQ2J-4bL3Mb8_vkKsVzsDo" domain="www.linkedin.com" new_tab="true" nofollow="true" >}}


{{< linkcard url="https://www.powerazure365.com/blog-1/one-dynamics-one-platform-dataverse-c-plugin-for-dynamics-365-fampo" title="One Dynamics One Platform - Dataverse C# Plugin for Dynamics 365 F&O — PowerAzure365" summary="An article part of the One Dynamics One Platform convergence : on the Dev side : How to deploy a Dataverse C# Plugin for a Virtual Table of Dynamics 365 Finance Operations." image="/linkcards/ff1ed046ee4e7c97.png" domain="www.powerazure365.com" new_tab="true" nofollow="true" >}}


{{< linkcard url="https://www.linkedin.com/pulse/feasible-employ-t-sql-querying-dynamics-365-fo-virtual-nurlin-aberra-wumzf/?trackingId=KcFT2x12TBW5vyWN73Pa6Q%3D%3D" title="Is it feasible to employ T-SQL for querying Dynamics 365 FO virtual entities and executing advanced queries?" summary="Could T-SQL queries be employed to access Dynamics 365 FO virtual entities? Although querying Dataverse tables is known, can Dynamics 365 FO virtual entities be queried would it be possible to perform joins across different Dynamics 365 FO virtual entities, along with aggregate functions ? Initially" image="https://media.licdn.com/dms/image/D4D12AQGqt9rCy3a-Cg/article-cover_image-shrink_720_1280/0/1708636725295?e=2147483647&v=beta&t=wWQtt5ts412qErt_KGxOnBKOWSHhH_-WL_AAAgt8eDs" domain="www.linkedin.com" new_tab="true" nofollow="true" >}}

Image by [PublicDomainPictures](https://pixabay.com/users/publicdomainpictures-14/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=20333) from [Pixabay](https://pixabay.com//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=20333)


