直接从 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

在 Azure Synapse Analytics 中创建的带有选择项列的表

StateMetadataStatusMetadata 存储要检索的 StateStatus 选择项值。 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 表和选择项名称的组合

OptionsetMetadata 和 GlobalOptionsetMetadata 表架构。

在 Dataverse 表中,选择项列包含用户指定的数值,与上述 OptionsetMetadata 表中的选项值相同。

先决条件

Azure Synapse Link for Dataverse。 本文假设您已经使用 Azure Synapse Link for Dataverse 从 Dataverse 导出了数据。 

访问选择项元数据

  1. 选择所需的 Azure Synapse Link,在命令栏上选择 转到 Azure Synapse Analytics 工作区 。  
  2. 在左侧窗格中展开 湖数据库,选择 dataverse-environmentName-organizationUniqueName,然后展开 。  列出的所有选择项元数据均可用于分析。

使用无服务器 SQL 池使用 Dataverse 选择项列。

  1. 右键单击数据库图标,然后选择新建 SQL 脚本 > 空脚本
  2. 应用联接 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>)

有关如何使用多个选项集值的详细信息,您必须使用使用通用表表达式