直接从 Azure Synapse Link for Dataverse 访问选择项标签
Microsoft Dataverse 提供丰富的可以直接在 Power Apps 中使用的元数据。 选择项(选择列表)是可以包含在表中的最常用的列类型之一。 它定义一组选项。 当一个选择项显示在窗体中时,将使用 drop-down list 控件。 可以定义一个选择项以使用其中定义的一组选项;选项集也可以使用其他地方(全局)定义的可供其他选择项列使用的一组选项。
有关选择项列的详细信息,请访问创建和编辑全局选择项概述。
创建 Azure Synapse Link 后,在 Azure Data Lake Storage Gen2 中名为 OptionsetMetadata 的文件夹中创建以下五个表:
- OptionsetMetadata
- GlobalOptionsetMetadata
- StateMetadata
- StatusMetadata
- TargetMetadata
StateMetadata 和 StatusMetadata 存储要检索的 State和 Status 选择项值。 TargetMetadata 存储要检索的表关系元数据。
列名称 | 数据类型 | 示例值 | 说明 |
---|---|---|---|
EntityName | 字符串 | 客户 | 当前 Dataverse 表的名称。 |
AttributeName | 字符串 | transactioncurrencyid | 当前的列名称 |
ReferencedEntity | 字符串 | transactioncurrency | 相关的 Dataverse 表名称 |
ReferencedAttribute | 字符串 | transactioncurrencyid | 相关的列名称 |
详细信息:表关系概述。
OptionsetMetadata 将本地选择项标签元数据存储在导入的 Dataverse 表中。 GlobalOptionsetMetadata 存储全局选择项标签元数据,采用相同的表架构加上额外一列 GlobalOptionSetName 格式,是表和选择项名称的组合。
列名称 | 数据类型 | 示例值 | 说明 |
---|---|---|---|
EntityName | 字符串 | 客户 | Dataverse 表名称。 |
OptionSetName | 字符串 | ownershipcode | 列名称。 |
选项 | Bigint | 1 | 创建选择项时用户指定的数字标签。 |
IsUserLocalizedLabel | 布尔值 | False | 默认返回 False。 |
LocalizedLabelLanguageCode | Bigint | 1033 | 选择项标签的语言代码,如 1033 表示英语(美国)或 1034 表示西班牙语(西班牙)。 |
LocalizedLabel | 字符串 | 公用 | 创建选择项时用户指定的文本标签。 |
GlobalOptionSetName(仅 GlobalOptionsetMetadata) | 字符串 | socialprofile_community | 表和选择项名称的组合 |
在 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>)
有关如何使用多个选项集值的详细信息,您必须使用使用通用表表达式。