【问题标题】:Getting Dynamics CRM Metadata获取 Dynamics CRM 元数据
【发布时间】:2019-04-18 20:51:55
【问题描述】:

我正在使用 Microsoft Dynamics CRM 2016 On Premise,我正在尝试获取一些特定的元数据,基本上是通过 SQL Server 获取给定实体的字段物理名称、显示名称(标签)和字段值。这是我到目前为止的查询:

 select  a.PhysicalName, I.Label
 from  [dbo].[Attribute] a
 inner join [dbo].[Entity] e on e.EntityId=a.EntityId
 inner join [dbo].[LocalizedLabel] l on l.ObjectId = a.AttributeId
 where e.Name='DesiredEntityName'

通过此查询,我可以从给定实体中获取字段和显示的标签,但是我看不到如何连接和获取每个字段的值列表。

【问题讨论】:

  • 您是否在寻找选项集又名选项列表值?然后查看stringmap表。
  • 我需要来自指定实体(表)的所有字段(物理名称)加上显示的名称(标签)及其值,而不是选项集值。

标签: sql-server dynamics-crm


【解决方案1】:

您必须从 stringmap 表中查询所有选项列表(选项集)值将被存储。

SELECT AttributeValue as Value, Value as Label
FROM StringMap s
JOIN EntityLogicalView e on s.ObjectTypeCode = e.ObjectTypeCode
WHERE AttributeName = 'DesiredAttributeName'
AND e.Name = 'DesiredEntityName'
ORDER BY DisplayOrder

Retrieve Option Set Metadata Via SQL

编辑:

我明白你现在想要什么了。当您将数据导出到 Excel 时,您基本上需要模仿 Product 正在执行的操作。

当您使用数据库表或视图或过滤视图执行以下查询时,您希望显示名称为 ALIAS。

SELECT name AS [Account Name], telephone1 AS [Business Phone]  from Account

问题是 Schema Name telephone1 在存储帐户记录数据的表中很容易获得,而 Display Name Business Phone 存储在多个不同的Entity、Attribute、LocalizedLabel 等表。

您可能必须执行自己的视图或查询连接才能实现此目的。

【讨论】:

  • 谢谢 Arun,但我不需要选项集值,我知道如何检索它们,我需要的是来自指定实体(表)的所有字段(物理名称)加上显示的名称(标签)和他们的价值观
  • @Poyson1 元数据不同,存储表的值也不同。如果您想要帐户,则会有经过过滤的帐户视图,其中包含强加的 crm 安全模型和帐户表。字段元数据将存储在属性表中,数据存储在相应的帐户表中
  • 带有属性包(字段名称)的数据透视表和相应的所需表怎么样,我知道这是可能的,但问题是如何使它们的顺序相同,因为所有字段都应该按相同的顺序排序命令。我不知道你有没有跟着我这个想法......
  • @Poyson1 我相信你想要的是,在 Excel 中的高级查找中从 crm 实体导出数据并在数据透视表中进行切片。当您从 sql 执行时,只会出现模式名称,您只想拉显示标签。这是你的问题吗?
  • 我不想通过高级查找、重复的显示名称(标签)引发和错误来做到这一点,这就是为什么我想通过从所需实体中选择所有字段并添加一些来直接从数据库创建查询每个字段的标签如何。我正在尝试使用 Pivot/Unpivot。如果您有类似的解决方案,请在此处发布。谢谢。
猜你喜欢
  • 2020-10-22
  • 1970-01-01
  • 2023-03-16
  • 2021-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-29
相关资源
最近更新 更多