实体关系行为

 

发布日期: 2017年1月

适用于: Dynamics 365 (online),Dynamics 365 (on-premises),Dynamics CRM 2016,Dynamics CRM Online

当存在一对多实体关系时,可以配置级联行为来保持数据完整性和自动执行业务流程。 本主题将说明一些关键概念并介绍如何配置这些级联行为。

在介绍如何配置实体关系行为之前,应考虑它如何应用于您的业务,这样做很有用。 三个关键概念是:

  • 保持数据完整性

  • 自动化业务流程

  • 级联行为

本主题内容

保持数据完整性

自动化业务流程

级联行为

配置实体关系行为

保持数据完整性

每个实体都可以具有定义有效记录的规则。 例如,Microsoft Dynamics 365 商机记录必须包括对潜在客户的引用。 当未添加现有客户或创建新客户记录时,用户无法创建新商机记录。

但是,如果删除代表客户的客户或联系人,将怎么样? 在这种情况下,可能的选择有:

  • 限制删除具有相关商机的客户记录的任何尝试。

  • 在删除相应客户记录时,级联删除操作,以便自动删除任何相关商机记录。

在 Microsoft Dynamics 365 中,对于将商机与客户相关联的一对多关系(例如 Opportunity.opportunity_customer_accountsContact.opportunity_customer_contacts),行为是级联删除操作。

在 Microsoft Dynamics 365 中为要使用的数据建模时,您会对要如何保持数据完整性做出类似的决定。

自动化业务流程

业务流程可能要求您对具有相关记录的记录执行操作。 例如,您可能需要将客户分派给新销售员。 如果该客户记录具有任何商机记录,则可以选择以下选项:

  • 不执行任何操作。 商机应继续由处理它们的人员负责。

  • 分派所有商机给新的销售员。 作为此客户记录的新负责人,销售员现在负责与该客户相关的所有商机。

  • 仅将可用商机分派给新销售员。 出于报告目的保留所有停用商机记录的负责人。

  • 仅将以前的客户负责人所负责的商机分派给新销售员。 这允许新销售员替代以前的负责人。

这些选项是您可以在 Microsoft Dynamics 365 中使用实体关系行为配置的常见选项。 如果您需要不同的行为,请考虑购买包含所需行为的解决方案,或开发插件来提供更多选项。

级联行为

这些配置选项称为级联行为,因为它们在相关实体的层次结构中级联。 例如,如果删除客户会导致删除相关商机,那么与商机相关的活动会怎样? 在 Microsoft Dynamics 365 中,活动类型实体的每个实体关系中定义的行为是它们也将被删除。

不过,并非所有实体都按此方式进行处理。 例如,订单和发票包含不应意外删除的重要业务数据。 它们的实体关系行为被配置为限制删除关联的客户或商机记录。 在删除具有相关订单或发票记录的客户或商机之前,您必须首先删除订单或发票。

在通过创建自定义实体为业务数据建模时,或使用现有 Microsoft Dynamics 365 系统实体时,应考虑所需的行为以及该行为对相关实体的整个层次结构的影响。

父级实体关系

可以具有 1:N 关系的每对实体之间可以具有多个 1:N 关系。 但只能将其中一个关系视为 实体关系。 有关所有可自定义父实体关系的列表,请参阅 TechNet:可自定义的父实体关系

父实体关系是下表的“父”列中的级联选项之一(在 CascadeType 中定义)为 true 的任何 1:N 实体关系。

操作​​

非父

删除键

Cascade

RemoveLink
Restrict

共享​​

Cascade
UserOwned
Active

NoCascade

取消共享

Cascade
UserOwned
Active

NoCascade

分派​​

Cascade
UserOwned
Active

NoCascade

重定父级

Cascade
UserOwned
Active

NoCascade

1:N 实体关系中的每个引用实体都具有一个引用属性,在该属性中,可将关系视为父关系。

例如,如果您新建一个自定义实体并添加与客户实体的 1:N 实体关系(其中自定义实体是引用实体),则可以将该实体关系的操作配置为使用“父”列中的选项。 如果您后来添加了自定义实体作为引用实体的另一个 1:N 实体关系,则只能将操作配置为使用“非父”列中的选项。

通常这意味着,对于每个实体对,只有一个父关系。 有些情况下,引用关系中的引用属性可能包括对多种类型的实体的引用。

例如,Opportunity 实体具有称为 customerid 的引用属性,其中可能存储对联系人或客户记录的引用。 在这种情况下,有两个单独的父 1:N 实体关系。

对于可使用 regardingobjectid 引用属性进行关联的实体,任何活动实体(例如任务、传真、电话联络等)都具有一组类似的父实体关系。

配置实体关系行为

使用 CreateOneToManyRequestUpdateRelationshipRequest 时,在请求的正文中包括 OneToManyRelationshipMetadata 类的实例。 在该类的 CascadeConfiguration 属性中,使用 CascadeConfiguration 类。

CascadeConfiguration 类包含的属性表示可能对一对多实体关系中的被引用实体执行的操作。 可以为每个属性分派 CascadeType 枚举的值之一。

应用程序标签

说明

可用

可用项的级联

对与被引用的实体记录相关联的所有可用的引用实体记录执行操作。

级联

全部级联

对与被引用的实体记录相关联的所有引用实体记录执行操作。

无级联

无级联

不执行任何操作。

移除链接

移除链接

移除与被引用的实体记录相关联的所有引用实体记录的引用属性值。

限制

限制

当存在引用实体时,阻止删除被引用的实体记录。

用户负责项

用户负责项的级联

对被引用的实体记录的用户所负责的所有引用实体记录执行操作。

CascadeConfiguration 类包含以下属性,这些属性表示可能对一对多实体关系中的被引用实体执行的操作。

操作​​

说明

有效选项

Assign

更改被引用的实体记录负责人。

Active
Cascade
NoCascade
UserOwned

Delete

删除被引用的实体记录。

备注

此操作的选项受限。

Cascade
RemoveLink
Restrict

Merge

此记录与另一条记录合并。

备注

对于可合并的被引用实体,Cascade 是唯一的有效选项。 在其他情况下,使用 NoCascade。

Cascade
NoCascade

Reparent

请参阅下方 关于重定父级操作。

Active
Cascade
NoCascade
UserOwned

Share

当被引用的实体记录与其他用户共享时。

Active
Cascade
NoCascade
UserOwned

Unshare

当取消被引用实体记录的共享时。

Active
Cascade
NoCascade
UserOwned

关于重定父级操作

重定父级操作非常类似于共享操作,只是它涉及的是继承的读取访问权限而不是显式读取访问权限。

备注

有关继承的访问权限的详细信息,请参阅如何使用基于记录的安全性来控制对 Microsoft Dynamics 365 中记录的访问,特别是共享和继承部分。

重定父级操作发生在您更改父关系中的引用属性值之时。 发生重定父级操作时,相关实体继承的读取访问权限的适用范围可能发生更改。 与重定父级操作相关的级联操作是更改该实体记录及其相关的任何实体记录的读取访问权限。 有关如何将实体关系配置为父关系的详细信息,请参阅父级实体关系。

例如,基于 CustomerId 引用属性的商机和客户之间存在父关系。 如果您是客户的负责人,并且存在与该客户相关的商机,则您将继承对该商机及其相关的任何记录的读取访问权限。 如果商机的 CustomerId 引用属性值更改为引用其他客户,则当 Reparent 操作为 Cascade 时,该客户的负责人将继承对商机的读取访问权限。 如果将 Reparent 操作设置为 NoCascade,则可以禁用读取访问权限的这种自动继承行为。 可以使用 Active 或 UserOwned 选项来指定筛选器,以筛选受访问权限更改影响的记录。 对于使用父关系与商机相关的任何记录,重定父级操作在这些实体关系中级联,并且基于为重定父级操作设置的筛选器继承读取访问权限。

另请参阅

一对多关系
使用含有 Dynamics 365 元数据的组织服务
自定义实体元数据
自定义实体属性元数据
自定义实体关系元数据
自定义实体和属性映射
自定义标签以支持多种语言
如何使用基于记录的安全性来控制对 Microsoft Dynamics 365 中记录的访问
示例:创建和检索实体关系

Microsoft Dynamics 365

© 2017 Microsoft。 保留所有权利。 版权