Here you will learn and understand the advantages & disadvantages of using Virtual Tables in Power Apps / Dynamics 365. Before we start, make sure to subscribe to CRM Crate so that you can stay up to date in the field of Power Platform.
In Power Apps, a virtual entity or a table is a representation or abstraction of data that doesn’t physically exist within the Dataverse database. Instead, it is a dynamic table that retrieves and displays data from an external data source such as OData v4 in real-time. Virtual tables leverage external data sources through the OData v4 Data Provider, allowing users to interact with and manipulate data seamlessly within the Power Apps environment. By creating virtual tables, users can integrate and work with data from external systems without the need to store it in the Dataverse. This provides a flexible and efficient way to access and utilize information from diverse sources directly within the Power Apps interface, enhancing the platform’s capabilities for building robust and interconnected applications.
Advantages of Virtual Tables in Power Apps
Below are the key advantages of using Virtual Tables:
- Efficient Data Retrieval: Virtual tables allow you to create queries that fetch only the necessary data from external sources. By specifying filters and conditions, you can optimize data retrieval, reducing the amount of data transferred between Power Apps and the external data source. This is crucial for improving app responsiveness, especially when dealing with large datasets.
- Support For Delegation: Virtual tables play a vital role in supporting delegation in Power Apps. Delegation allows certain operations to be pushed to the data source, ensuring that data processing occurs on the server side rather than in the app. This is particularly important when working with large datasets, as it helps maintain optimal performance.
- Latency Improvement: By utilizing virtual tables, you can minimize the latency associated with fetching data from external sources. Power Apps can delegate certain operations to the data source, ensuring that data processing occurs closer to the source. This reduces the time it takes to retrieve and display information within the app.
- Minimized Resource Consumption: Instead of loading entire datasets into Power Apps, virtual tables allow you to fetch and work with only the specific data required for a given scenario. This minimizes the consumption of resources, both in terms of network bandwidth and app memory, leading to a more resource-efficient application.
- Real-time Data Access: Virtual entities provide real-time access to data from external sources through the OData v4 Data Provider. This ensures that users can work with the latest information without the need for data synchronization.
- No Data Duplication: Since virtual entities don’t store data within the CDS or Dataverse, there’s no need for redundant storage. This helps in avoiding data duplication and ensures that users interact directly with the original data source.
- Smooth Integration with External Systems: Virtual entities enable seamless integration with external systems, allowing users to work with data from diverse sources within the Power Apps environment. This is especially useful when building applications that need to interact with external databases, services, or APIs.
Disadvantages of Virtual Tables in Power Apps
Below are some limitations of using Virtual Tables:
- Non-Supporting Data Types: The Dataverse supports various field data types, but the limitation with Virtual Table is that they do not support Files / Attachment, Image and Lookup field data type.
- Minimum Data Type Dependency: To create a virtual table, the designated table or list should have a minimum of one string field serving as the primary field and one GUID field. The absence of these fields will prevent virtual table creation, triggering an error during the retrieval of table details.
- Field Data Size Limitation: A validation error will occur, and the operation will fail if a create/update operation on a virtual table’s text column exceeds 4000 characters, the maximum allowed length. This restriction applies when the source table has a character limit greater than this threshold.
- Pagination: Queries on virtual tables are restricted to returning 1000 records. If you have a 1:N or N custom multi-table (polymorphic) relationship with a virtual table, any query surpassing this limit will result in failure, accompanied by an error. To address this limitation, consider employing filtering in your query to reduce the size of the record set.
- Audit History: Virtual Tables lack audit functionality, as Dataverse can exclusively execute and store audit data for locally stored information.
- Rollup & Calculated Field Support: Virtual tables do not support the calculation of rollups and calculated fields. This limitation arises because rollups involve server-side calculations in Dataverse, necessitating the storage of data locally.
- Microsoft Entra ID: The Microsoft Entra ID or Azure Active Directory virtual table provided by Microsoft only allows read access.
- Data Management: Data import and export functionality of table data isn’t supported for virtual tables.
- Lack of offline support: Virtual tables may not support offline data access as the data source is stored externally and retrieved using APIs.
- Filtering Data: Filtering capabilities of Virtual Tables are less compared to the standard Dataverse tables. This can affect your application in terms of creating complex queries.
- Dependency On External Application: Since the data source is residing outside of Dataverse, you will always have to keep a track on the external application as any small changes done on the external data source can impact the functionality in Dataverse.