Connect to Microsoft Dataverse
You can securely store your business data in Dataverse and build rich apps in Power Apps so that users can manage that data. You can also integrate that data into solutions that include Power Automate, Power BI, and data from Dynamics 365.
By default, the app connects to the current environment for Dataverse tables. If your app moves to another environment, the connector connects to data in the new environment. This behavior works well for an app using a single environment or an app that follows an ALM process for moving from Development to Test to Production.
When you add data from Dataverse, you can change the environment and then select one or more tables. By default, the app connects to data in the current environment.
If you select Change environment, you can specify a different environment to pull data from it instead of or in addition to the current environment.
The name of the selected environment appears under the tables list.
Visibility and access
When you select Change environment, you're presented with a list of environments. Though you might see an environment in the list, the security role(s) in the environment govern what you can do in that environment. For example, if you don't have read privileges, you won't be able to see the tables and records in the environment.
Power Apps data type mappings
The Microsoft Dataverse connector is more robust than the Dynamics 365 connector and approaching feature parity. The following table lists the data types in Power Apps, and how they map to data types in Dataverse.
|Power Apps||Microsoft Dataverse|
|DateTime||Date Time, Date and Time, Date Only|
|Number||Floating Point Number, Currency, Decimal Number, Duration, Language, TimeZone, Whole Number|
|Text||Email, Multiline Text, Phone, Text, Text Area, Ticker Symbol, URL|
Power Apps delegable functions and operations for Dataverse
These Power Apps operations, for a given data type, may be delegated to Dataverse for processing (rather than processing locally within Power Apps).
|Item||Number ||Text ||Choice||DateTime ||Guid|
|<, <=, >, >=||Yes||Yes||No||Yes||-|
|In (membership) (preview)||Yes||Yes||Yes||Yes||Yes|
|IsBlank||Yes ||Yes ||No ||Yes ||Yes|
|Sum, Min, Max, Avg ||Yes||-||-||No||-|
|CountRows  , CountIf ||Yes||Yes||Yes||Yes||Yes|
Numeric with arithmetic expressions (for example,
Filter(table, field + 10 > 100)) aren't delegable. Language and TimeZone aren't delegable.
Doesn't support Trim[Ends] or Len. Does support other functions such as Left, Mid, Right, Upper, Lower, Replace, Substitute, etc.
DateTime is delegable except for DateTime functions Now() and Today().
Supports comparisons. For example,
Filter(TableName, MyCol = Blank()).
The aggregate functions are limited to a collection of 50,000 rows. If needed, use the Filter function to select 50,000
CountRows on Dataverse uses a cached value. For non-cached values where the record count is expected to be under 50,000 records, use
For CountRows, ensure that users have appropriate permissions to get totals for the table.