Microsoft Dataverse 提供了可在 Power Apps 中直接使用的丰富元数据。 选择项(选择列表)是可以包含在表中的最常用的列类型之一。 它定义了一组选项。 在窗体中显示选项时,它使用下拉列表控件。 可以定义一个选择来使用本地(自身)定义的选项集,或使用在其他位置(全局)定义的选项集,这些选项集可以被其他选择列使用。
有关选择列的详细信息,请转到 “创建和编辑全局选项”概述。
创建 Azure Synapse Link 后,以下五个表在 Azure Data Lake Storage Gen2 中名为 OptionsetMetadata 的文件夹中创建:
- OptionsetMetadata
- GlobalOptionsetMetadata
- StateMetadata
- StatusMetadata
- TargetMetadata
StateMetadata 和 StatusMetadata 存储要检索 的状态 和 状态 选择值。 TargetMetadata 存储要检索的表关系元数据。
| 列名称 | 数据类型 | 示例值 | Description |
|---|---|---|---|
| 实体名称 | String | 帐户 | 当前 Dataverse 表名称。 |
| 属性名称 | String | 交易货币ID | 当前列名 |
| ReferencedEntity | String | transactioncurrency | 相关 Dataverse 表名称 |
| ReferencedAttribute | String | transactioncurrencyid | 相关列名称 |
详细信息: 表关系概述。
OptionsetMetadata 将本地选项标签元数据存储在导入的 Dataverse 表中。 GlobalOptionsetMetadata 存储全局选择标签元数据,并遵循相同的表架构,不过增加了一个额外的列,名为 GlobalOptionSetName,这是表和选择名称的组合。
| 列名称 | 数据类型 | 示例值 | Description |
|---|---|---|---|
| EntityName | String | 帐户 | Dataverse 的表名称。 |
| OptionSetName | String | ownershipcode | 列名称。 |
| 选项 | Bigint | 1 | 创建选择项时指定的用户数字标签。 |
| IsUserLocalizedLabel | 布尔 | 假 | 默认情况下返回 False。 |
| 本地化标签语言代码 | Bigint | 1033 | 所选标签的语言代码,如英语(美国)的 1033 或西班牙语(西班牙)的 1034。 |
| 本地化标签 | String | 公众 | 创建选择项时,用户指定的文本标签。 |
| GlobalOptionSetName(仅 GlobalOptionsetMetadata) | String | 社交档案_社区 | 表和选择名称的组合 |
在 Dataverse 表中,选择列包含用户指定的数值,与上述 OptionsetMetadata 表中的选项值相同。
先决条件
Azure Synapse Link for Dataverse。 本文假设已使用 Azure Synapse Link for Dataverse 从 Dataverse 导出数据。
访问选择元数据
- 选择所需的 Azure Synapse Link,然后选择命令栏上的 “转到 Azure Synapse Analytics”工作区 。
- 在左窗格中展开 湖泊数据库,选择 dataverse-environmentName-organizationUniqueName,然后展开 表。 列出的所有选择元数据都可用于分析。
使用无服务器 SQL 池处理 Dataverse 选项列。
- 右键单击数据库图标,然后选择“新建 SQL 脚本>”。
- 应用联接 SQL 脚本以将所选元数据与 Dataverse 表联接,并将视图存储在新数据库中。
用于联接选择元数据的示例 SQL 脚本
将 <DATABASE_NAME>、<COLUMN_NAME> 和 <TABLE_NAME> 替换为数据库、列和表的名称,以将数字选择值替换为有意义的文本标签
SELECT [LocalizedLabel] as [<COLUMN_NAME>]
FROM [<DATABASE_NAME>].[dbo].[<TABLE_NAME>_partitioned]
LEFT JOIN [<DATABASE_NAME>].[dbo].[OptionsetMetadata]
ON ([<DATABASE_NAME>].[dbo].[OptionsetMetadata].[Option] = [<DATABASE_NAME>].[dbo].[<TABLE_NAME>_partitioned].[<COLUMN_NAME>] AND [<DATABASE_NAME>].[dbo].[OptionsetMetadata].[OptionSetName] = <COLUMN_NAME>)
有关如何使用多个选项集值的详细信息,您必须使用使用通用表表达式。