Table of contents
1.
Introduction 
1.1.
Tables with complex business logic 
1.2.
Code plug-ins
1.2.1.
Use plug-ins to extend business processes
1.2.2.
When to use plug-ins
1.2.3.
Advantage of plug-ins
1.2.4.
Disadvantage of plug-ins
1.3.
Real-time workflows
1.3.1.
Classic Dataverse background workflows
1.4.
Impacting license requirements when adding complex business logic
2.
Restricted tables
3.
Licensing Examples 
3.1.
Table Creation 
3.2.
Create apps using Power Apps 
3.3.
Use apps 
3.4.
Create flows using power automate 
3.5.
Use Flows 
4.
Complex tables installed with Dynamics 365 apps
5.
Frequently Asked Questions
5.1.
What variations of cloud deployment models are there?  
5.2.
What are Azure event hubs? 
5.3.
What is an Azure cloud shell?
5.4.
What are the services offered by Azure?   
5.5.
Can a Virtual Machine in a Classic Deployment Virtual Network be created using Azure Resource Manager?
6.
Conclusion 
Last Updated: Mar 27, 2024

License requirements for tables in Microsoft Dataverse

Career growth poll
Do you think IIT Guwahati certified course can help you in your career?

Introduction 

This article will discuss the license requirements in Microsoft dataverse and code plug-ins, real-time workflows, and different licensing examples. 

Most of the tables in the Microsoft Dataverse can be used by app developers to build apps and processes for customers who have Power Apps or Power Automate licenses, including custom tables and tables from the Common Data Model.

Introduction image.

Some tables in Dynamics 365 (Dynamics 365 Sales, Customer Service, Field Service, Marketing, or Project Service Automation) include complicated business logic or are linked to apps that interact with customers and demand a particular license from app users. This section offers licensing details for tables with complex business logic and tables connected to Dynamics 365 applications (restricted tables).

Tables with complex business logic 

Users of an app or flow that uses these tables must have a Power Apps or Power Automate license because these tables contain the following intricate server-side functionality. 

  • Code plug-ins
  • Real-time workflows

Code plug-ins

Use plug-ins to extend business processes

You can upload a.NET assembly called a plug-in to the Microsoft Dataverse. Classes in an assembly can register for particular events (or steps) in an event framework. The class's code gives you a mechanism to react to the Event so that you can improve or alter the platform's default behavior.

The IPlugin interface must be implemented by the classes in the assembly that can be registered to a step. This interface only exposes the Execute function. Contextual information is supplied to the Execute method in response to an event with a class registered. You can: enter the Execute method

  • Reject the Event and notify the user of an error
  • Make adjustments to the operation's data.
  • Use the Organization Service to launch additional tasks to add automation.

The execution of plug-ins can be set to either synchronous or asynchronous. A synchronous plug-in makes the operation wait until the plug-code in is finished. This impacts the system's perceived performance. An asynchronous plug-in queues up its actions and only executes them once the operation is finished, allowing it to complete without disruption. 

When to use plug-ins

People typically contrast plug-ins and workflows as options for applying proprietary business logic. The capabilities of workflows and plug-ins significantly overlap. Workflows and plug-ins can perform identical functions, but the reverse is not true. However, this does not imply that you should only employ plug-ins for tasks that a process cannot handle. Without the use of plug-ins, requirements can be met in various ways.

  • Workflows can use customized workflow extensions (also known as "workflow activities"), which let you write code to build reusable conditions and actions that can be applied across different workflows.
     
  • Rollup and calculated fields offer functionality that was previously only possible through workflows.
     
  • Similar to workflows, custom actions enable the creation of reusable messages that may be accessed from the web service endpoints or other processes.
     
  • Data can be pushed to external systems utilizing Webhooks and Azure Service Bus connection, where logic can be applied using various resources.
     
  • Numerous functions previously carried out through plug-ins are now available through Power Automate.

 

You have a wide range of choices. To decide which one meets your needs the best, you should assess each one.

 

Advantage of plug-ins

The key benefits of plug-ins are as follows:

  • Plug-ins work efficiently. The most effective way to implement business logic is with a well-written plug-in.
     
  • Plug-ins are capable. Many developers would rather utilize their expertise and skills to design logic and use their ability to interact directly in code with internal or external services. A skilled plug-in developer is capable of producing a lot.

Disadvantage of plug-ins

  • A developer's specialized abilities are needed to create and manage plug-ins. Due to the high cost of developers, many firms do not have access to one when needed. Business processes can evolve quickly, and the system can adapt rapidly by offering alternatives to support change without needing a developer.
     
  • Abuse of plug-ins is possible. The performance of the environment can be significantly impacted by a plug-in that has been improperly written. The immense power of plug-ins must be used with caution and thought for how they may affect the system as a whole.

Real-time workflows

Classic Dataverse background workflows

Without a user interface, business processes are automated through workflows. Workflow processes typically start with automation that doesn't involve user interaction.

Run this process in the background (recommended) check box must be selected to establish background workflows, as seen in the following image.

Microsoft Dynamics CRM

Source


Examine the list of plug-in assemblies and processes defined in your environment to determine whether or not you applied complicated business logic to your tables. following the installation of a Dynamics 365 program, for a list of tables that might contain server-side logic (such as Dynamics 365 Sales or Dynamics 365 Customer Service)

Impacting license requirements when adding complex business logic

Developers of apps can add real-time workflows and code plug-ins to tables in Dataverse, but doing so may alter the license conditions for users of already-deployed apps. When adding complex business logic to a table, app developers should exercise caution and determine which apps use the database and whether their users possess the necessary licenses. 

Restricted tables

Restricted tables aren't found in Dataverse's standard tables; instead, they're part of one of Dynamics 365's customer interaction apps (such as Dynamics 365 Sales, Customer Service, Field Service, Marketing, or Project Service Automation) or an outside solution. For instance, the aim, entitlement, and knowledge article tables.

If users want to add, modify, or remove rows from tables linked to the functionality of Dynamics 365 apps (such as Dynamics 365 Sales or Dynamics 365 Customer Service), they must have the necessary license for those apps. 

Licensing Examples 

Ninja1and Ninja2 is utilizing Power Apps to build apps and are storing their data in Dataverse.

Table Creation 

  • Microsoft reserves the right to define and create new restricted tables for Dynamics 365 apps; users cannot build new restricted tables (such as Dynamics 365 Sales or Dynamics 365 Customer Service).
     
  • Users can create custom tables with a license for Dynamics 365, Power Apps, or Power Automate.
     
  • With the appropriate Dynamics 365 app license, a user can add rows to existing restricted tables.

Create apps using Power Apps 

  • With a Dynamics 365 license, Ninja1and Ninja2 can construct a canvas or model-driven app that accesses restricted tables.
     
  • With a Dynamics 365 or Power Apps license, Ninja1and Ninja2 can construct a canvas or model-driven program that accesses custom data.

Use apps 

Two canvas apps are on Ninja1's wish list:

  • App 1 makes use of the Appointment database as well as a custom table for relevant data.
  • The Appointment table, a limited table, is used by App 2 and the Work Order table.

 

Two model-driven apps are Ninja2's preferences:

  • The Appointment table is used by App 3 together with a custom table for storing associated data.
  • The Appointment table, which is a restricted table, is used by App 4 and the Work Order table.

 

Ninja2 and Ninja1 require the following permits:

  • Ninja1can utilize App 1 if she has a Power Apps license or a Dynamics 365 app license
  • Ninja1can only use App 2 with a Dynamics 365 app license since the app accesses a restricted table
  • Ninja2 can utilize App 3 with a Power Apps or a Dynamics 365 license.
  • Because App 4 accesses a restricted table, Ninja2 can only use it with a Dynamics 365 app license.

Create flows using power automate 

Now, let's see what happens when Ninja2 adds a real-time workflow to the custom table that both Ninja1 and Ninja2 use in their apps.

  • With a Dynamics 365 app license, Ninja2 can design a workflow that has access to restricted tables.
  • Either the Dynamics 365 app or a Power Automate license will allow Ninja1 and Ninja2 to design a workflow that accesses custom tables.

Use Flows 

  • With a Dynamics 365 app license, Ninja1 or Ninja2 can perform the workflow accessing restricted tables.
  • The Dynamics 365 app or a Power Automate license will allow Ninja1 or Ninja2 to perform the workflow that accesses custom tables.

Complex tables installed with Dynamics 365 apps

The tables with complicated server-side logic pre-installed as part of the installation of customer engagement apps for Dynamics 365 are included in the following table (Dynamics 365 Sales, Customer Service, Field Service, Marketing, and Project Service Automation). This list serves as a general direction. The list of complicated tables may change depending on the Dynamics 365 apps and versions installed in your environment. 

Account

  • Agreement
  • Agreement Booking Date
  • Agreement Booking Incident
  • Agreement Booking Product
  • Agreement Booking Service
  • Agreement Booking Service Task
  • Agreement Booking Setup
  • Agreement Invoice Date
  • Agreement Invoice Product
  • Agreement Invoice Setup
  • Agreement Sub-Status
  • Bookable Resource
  • Bookable Resource Booking
  • Bookable Resource Booking Header
  • Bookable Resource Category
  • Bookable Resource Category Assn
  • Bookable Resource Characteristic
  • Bookable Resource Group
  • Booking Alert
  • Booking Alert Status
  • Booking Status
  • Characteristic
  • Competency Requirement (Deprecated)
  • Competitor
  • Contact
  • Customer Asset
  • Delegation
  • Expense
  • Field Computation
  • Field Service Price List Item
  • Filter
  • Follow
  • Incident Type
  • Incident Type Product
  • Incident Type Service
  • Incident Type Service Task
  • Integration Job
  • Integration Job Detail
  • Inventory Adjustment
  • Inventory Adjustment Product
  • Inventory Transfer
  • Invoice
  • Invoice Frequency
  • Invoice Line
  • Invoice Line Detail
  • Journal
  • Journal Line
  • Lead
  • Note
  • OData v4 Data Source
  • Opportunity
  • Opportunity Line
  • Opportunity Line Detail
  • Order
  • Order Invoicing Product
  • Order Invoicing Setup
  • Order Line
  • Payment
  • Payment Detail
  • Post Configuration
  • Post Rule Configuration
  • Postal Code
  • Price List
  • Price List Item
  • Product
  • Project
  • Project Approval
  • Project Contract Line Detail
  • Project Contract Line Milestone
  • Project Contract Line Resource Category
  • Project Contract Line Transaction Category
  • Project Parameter
  • Project Stages
  • Project Task Status User
  • Project Team Member Sign-Up
  • Purchase Order
  • Purchase Order Bill
  • Purchase Order Product
  • Purchase Order Receipt
  • Purchase Order Receipt Product
  • Purchase Order Sub Status
  • Queue Item
  • Quote
  • Quote Booking Incident
  • Quote Booking Product
  • Quote Booking Service
  • Quote Booking Service Task
  • Quote Booking Setup
  • Quote Invoicing Product
  • Quote Invoicing Setup
  • Quote Line
  • Quote Line Detail
  • Quote Line Milestone
  • Quote Line Resource Category
  • Quote Line Transaction Category
  • Quote Project Price List
  • Rating Model
  • Rating Value
  • Requirement Characteristic
  • Requirement Resource Category
  • Requirement Resource Preference
  • Requirement Status
  • Resource Request
  • Resource Requirement
  • Resource Requirement Detail
  • RMA
  • RMA Product
  • RMA Receipt
  • RMA Receipt Product
  • RMA Sub-Status
  • Role competency requirement
  • Role Price
  • RTV
  • RTV Product
  • RTV Sub-Status
  • Tax Code
  • Tax Code Detail
  • Time Entry
  • Time Group
  • Time Group Detail
  • Time Off Request
  • Transaction Category Price
  • User
  • View
  • Wall View
  • Warehouse
  • Work Order
  • Work Order Incident
  • Work Order Product
  • Work Order Service
  • Work Order Service Task
  • Work Order Sub-Status
  • Work template

Frequently Asked Questions

What variations of cloud deployment models are there?  

There are 3 cloud deployment models i.e public cloud, private cloud, and hybrid cloud. 

What are Azure event hubs? 

Azure Event Hubs is a data streaming and event intake platform for huge data sets. It can handle millions of events per second and process them quickly. It simplifies telemetry and Event stream data capture, storage, and playback.

What is an Azure cloud shell?

You can utilize the Azure Cloud Shell, a free interactive shell, to complete the tasks in this article. It comes with pre-installed and configured Azure tools that you may use with your account.

What are the services offered by Azure?   

Different services offered by Azure are Azure Event Grid, Azure Event Hubs, and Azure Service Bus. 

Can a Virtual Machine in a Classic Deployment Virtual Network be created using Azure Resource Manager?

This is not supported. A virtual machine established using classic deployment cannot be added to a virtual network using Azure Resource Manager. 

Conclusion 

This article discussed the license requirements in Microsoft dataverse and code plus-ins, real-time workflows, and different licensing examples. I hope you enjoy reading the blog. 

To study more about Microsoft Azure, you can refer to these articles on coding ninjas. 

Microsoft Azure 

Azure Backup

Azure Management Groups 

Azure Virtual Machine scale sets 

Refer to our Guided Path on Coding Ninjas Studio to upskill yourself in Data Structures and algorithmsCompetitive ProgrammingJavaScriptSystem DesignMachine learning, and many more! If you want to test your competency in coding, you may check out the mock test series and participate in the contests hosted on Coding Ninjas Studio! But if you have just started your learning process and are looking for questions asked by tech giants like Amazon, Microsoft, Uber, etc., you must look at the problemsinterview experiences, and interview bundle for placement preparations.

Nevertheless, you may consider our paid courses to give your career an edge over others!

Do upvote our blogs if you find them helpful and engaging!

Happy Learning!!

Coding Ninjas Logo

Live masterclass