CDS 中预过滤的表/实体、系统视图或存储过程(基于 Dynamics CRM DB)

Posted

技术标签:

【中文标题】CDS 中预过滤的表/实体、系统视图或存储过程(基于 Dynamics CRM DB)【英文标题】:Pre-filtered tables / entities, Systems Views or Stored Procedures in CDS (based on Dynamics CRM DB) 【发布时间】:2020-06-09 10:36:16 【问题描述】:

问题: 我将 CRM 通过 Common Data Service (CDS) 连接到 PowerBI,但我无法将视图(系统或个人)从 Dynamics 拉入 PowerBI。

试过了: 当然,我可以通过 PowerBI 中的 CDS 连接器获取整个 Dynamics Entities,但我无法选择我准备好的视图。

情况: 目前,我们在 SQL 中使用我们的 Dynamics 数据库的镜像来运行 PowerBI 的数据查询(当有人提取数百万行数据以刷新他们的 BI 报告时,不会影响 Dynamics 服务器的性能。)我们创建使用 Dynamics CRM 的数据集成工具复制我们的 Dynamics 数据库。 我们在 SQL 数据库(下面的“....database.windows.net”图像)中设置的视图(和存储过程)是我们允许用户访问以运行他们的报告的地方。 (我没有扩展视图/存储过程,但它们在那里)

解决方案:Image of SQL code & errors 不必使用数据集成工具将我们的动态数据库传递到我们的 SQL 数据库而是使用 Common Data Service 会更有效,但是,在 CDS 中我似乎也无法创建:

观看次数

存储过程

我了解 CDS 是一种访问数据的方式,而不是数据库,但我们希望更好地控制用户可以访问哪些数据。也就是说,我们只想向他们展示我们选择的内容,这是他们使用 Dynamics 中的角色和权限能够看到的内容的子集。

这里有一篇关于我们如何设置 Dynamics - CDS 集成的文章:https://www.powerobjects.com/blog/2020/05/20/use-sql-to-query-data-from-cds-and-dynamics-365-ce/

【问题讨论】:

任何后续问题? 【参考方案1】:

一些事实,你可能知道这些,为了清楚起见仍然分享:

    不支持(不推荐)在 CRM 数据库中创建对象(如视图/SP),即使在过去的内部部署中也是如此。现在到目前为止 CRM 在线数据库无法访问,在 5 月 6 日 MBA 峰会推出的 CDS 数据库查询功能预览(半熟)之前,只有使用 Scribe 或 DES 进行复制是一种方法(我相信您的*.database.windows.net 就是这样)。 CRM 视图与数据库视图不同。 CRM 视图(个人/系统视图)只是预定义的高级 find fetchxml 查询,存储在 savedqueryuserquery 实体中。这些可以使用 CRM Org 服务或 SDK 执行。 过去,我们用于查询 s-s-rS 报告中的过滤视图,这些报告维护 CRM 数据安全模型的完整性(如用户拥有、BU 团队共享等)和 s-s-rS fetchxml 报告沿用期待。但是 PowerBI 报告 RLS 是不够的,当它们建立在那些没有“过滤视图”的复制数据库之上时。至少您可以在那些复制的数据库中创建像 SP/视图这样的对象,但由于 CDS 直接查询功能仍处于预览阶段 - 我们可以期待更多类似的功能(我仍然怀疑!?但至少文档回答)当它是 GA(99 %煮熟)。

我仍在等待 CDS 数据库直接查询以完整的功能和文档进入 GA。

【讨论】:

以上是关于CDS 中预过滤的表/实体、系统视图或存储过程(基于 Dynamics CRM DB)的主要内容,如果未能解决你的问题,请参考以下文章

如何将复选框添加到 CDS 视图的过滤器栏

mysql基础

使用存储过程从视图中检索或过滤数据是不是比使用存储过程从表中获取或过滤数据更快?

简述什么是视图

Oracle 基础——视图

使用ABAP CDS视图创建服务