创建和编辑实体关系
发布日期: 2016年11月
适用于: Dynamics CRM 2015
实体关系定义记录如何在数据库中相互关联。 在最简单的级别,向实体中添加查找字段将在两个实体之间形成一个新的 1:N(一对多)关系,并允许您将该查找字段放到窗体中。 利用查找字段,用户可以将该实体的多个“子”记录与单个“父”实体记录关联。
除了简单地定义记录如何相互关联以外,1:N 实体关系还提供可解决以下问题的数据:
在删除某个记录时,是否还应删除与该记录相关的所有记录?
分派记录时,是否还需将与该记录相关的所有记录分派给新负责人?
在某个现有记录的上下亠中创建新的相关记录时,如何简化数据录入流程?
查看某个记录的用户如何才能查看关联的记录?
实体还可以参与 N:N(多对多)实体关系,其中两个实体的任意数量的记录可以彼此关联。
本主题内容
评估是使用实体关系还是连接
实体关系类型
创建和编辑 1:N 实体关系
映射实体字段
创建和编辑 N:N(多对多)关系
设置关系的托管属性
评估是使用实体关系还是连接
实体关系是对数据库进行更改的元数据。 这些查询关系允许查询以便非常高效地检索相关数据。 使用实体关系可以定义能定义实体或者大多数记录可以使用的正式关系。 例如,没有潜在客户的商机不是非常有用。 “商机”实体还与“竞争对手”实体有 N:N 关系。 此使得可以将多个竞争添加到商机中。 您可能需要获取此数据,并创建显示竞争对手的报表。
在称为连接的记录之间还存在其他不太正式的各种关系。 例如,了解两个联系人是否结婚,是工作外的朋友关系,或者是为另一个客户工作的联系人,可能会很有用。 大多数业务不使用这种信息生成报表,或者要求数据此类信息,因此可能不值得创建实体关系。
实体关系类型
在查看解决方案资源管理器时,可能会想到有三种类型的实体关系。 实际上,只有下表中所示的两种关系。
关系类型 |
说明 |
---|---|
1:N(一对多) |
在这种实体关系中,“主要实体”的一个实体记录可以根据相关实体上的查找字段与多个其他“相关实体”记录关联。 在查看主要实体记录时,可以看到与其关联的相关实体记录的列表。 |
N:N(多对多) |
依赖于特殊“关系实体”(有时称为交叉实体)的实体关系,所以,一个实体的多个记录可以与另一个实体的多个记录关联。 在查看 N:N 关系中的任一实体的记录时,可以看到与其相关的另一个实体的所有记录的列表。 |
N:1(多对一)关系类型存在于解决方案资源管理器用户界面中,因为解决方案资源管理器会显示按实体分组的视图。 1:N 关系实际上存在于实体之间,并将每个实体称为主要实体或相关实体。 相关实体(有时称为子实体)有一个查找字段,可用于存储对主要实体(有时称为父实体)中的记录的引用。 N:1 关系只是从相关实体角度来看的 1:N 关系。
创建和编辑 1:N 实体关系
创建 1:N 关系最轻松的方法是为实体创建一个新的查找字段。 这样一来,只要在简单地设置查找字段的公用字段值以及在将“类型”设置为“查找”时设置两个其他选项。 这另外两个字段是“目标记录类型”和“关系名称”。
在 1:N 关系中,“目标记录类型”选择“主要实体”。 “关系名称”会根据关系中的两个实体自动生成。 通常甚至不需要对此进行编辑此;但需要时也可编辑。 实体关系的名称包含解决方案发布商为您当前使用的解决方案提供的自定义前缀。
备注
如果您在意自定义前缀,请确保您工作所在的解决方案上下文与所需前缀的解决方案发布商关联。
但是,在通过创建查找字段创建 1:N 关系时,会为您设置一些默认值。 如果要编辑关系中提供的一些选项,必须找到关系并对其编辑。
无法为所有实体创建自定义 1:N 关系。 如果是这种情况,就无法选择使用解决方案资源管理器来创建新的自定义实体关系了。 如果使用元数据浏览器,则可以根据 CanBePrimaryEntityInRelationship 和 CanBeRelatedEntityInRelationship 属性筛选实体列表。 有关更多信息,请参阅 使用元数据浏览器。
1:N 关系的定义有四个部分:关系定义、查找字段、主要实体的导航窗格项、关系行为。
创建或编辑实体之间的 1:N 关系
转到“设置”>“自定义”。
选择“自定义系统”。
在“组件”下,展开“实体”,然后展开所需实体。
选择“1:N 关系”。
若要编辑关系或查看关系的详细信息,请选择关系,然后在“操作”工具栏上选择“其他操作”,再选择“编辑”。
- 或 -
若要添加新的关系,请选择“新建一对多关系”。
重要
如果“新建一对多关系”没有出现在“操作”工具栏上,则不可以为实体创建新的 1:N 关系。
对于新的关系,可在“关系定义” 部分,在“相关实体” 列表中,选择要关联的实体。
备注
为相关实体集指定一个“名称” 字段默认值。 如果您在保存之前更改“相关实体”,则“名称”字段的值将相应更改。
选择这是否为可搜索或不可搜索。
在“查找字段”部分,为“显示名称”字段中指定值。
重要
指定相关“显示名称”集默认值为“名称”字段。 如果您在保存之前更改查找字段的“显示名称”,则“名称”字段的值不会改变。 因此,请在保存之前,确保“名称” 是有意义的。
在“字段要求”列表中,选择一个选项以指定在保存记录之前字段的数据要求。
在“主要实体的导航窗格项”部分,请在“显示选项”列表中选择显示关联视图或自定义标签的选项。
在“关系行为”部分,可在“行为类型”列表中选择以下选项之一:
父。 在两个实体之间的父级关系中,对父实体记录执行的任何操作也可以对与首要(父)实体记录相关的所有子实体记录执行。
引用。 在两个实体之间的引用关系中,可以导航到任何相关实体,但对一个实体执行的操作并不会影响另一个实体。
引用,限制删除。 在两个实体之间的“引用,限制删除”关系中,您可以导航到任何相关记录。 对父记录执行的操作并不会应用到子记录,但是存在子记录时不能删除父记录。 注意,存在相关记录时不能删除记录。
可配置的级联。 在两个实体之间的可配置的级联关系中,可选择与每一组可能的操作关联的行为。
重要
如果将上述操作的所有行为设置成与为其他“行为类型”关联的操作的行为相匹配,当保存关系时,“行为类型”自动设置为匹配类型。
详细信息:MSDN:配置实体关系行为
选择“保存并关闭”以关闭“关系”窗体。
完成自定义后,发布自定义项:
若要只发布当前编辑的组件的自定义项,请在操作”工具栏上,选择“发布”。
若要同时发布所有未发布组件的自定义项,在导航栏或导航窗格中,请选择“操作”,然后在命令工具栏上选择“发布所有自定义”。
备注
在与级联的相关系统实体的关系中,自定义实体不能为主要实体。 这表示在主要自定义实体和相关系统实体间不能与设置为“全部级联”、“可用项的级联”或“用户负责项的级联”的任何操作具有关系。
如果新关系中的相关实体已作为其他关系(该其他关系具有设置为“全部级联”、“可用项的级联”或“用户负责项的级联”的任意操作)中的相关实体而存在,则任何新关系都不能具有设置为“全部级联”、“可用项的级联”或“用户负责项的级联”的任意操作。 这将避免创建具有多个父项的关系。
在更改用户界面元素或执行实体的窗体脚本后,必须发布相应更改才能应用这些更改。 将立即应用更改 Microsoft Dynamics 365 数据架构的任何自定义项(例如自定义实体、关系或字段)。
如果关系属于托管解决方案一部分时,托管解决方案的开发人员可以限制您自定义关系。
安装解决方案或发布自定义项会干扰常规的系统操作。 我们建议您以对用户造成的干扰最少为宗旨,合理安排解决方案导入时间。
关系定义
根据您是从解决方案资源管理器选择创建“新建一对多关系”还是“新建多对一关系”,将预填充“主要实体”或“相关实体”。 您只需选择另一个。“名称”字段的默认值是根据解决方案发布商的自定义前缀以及您选择参与关系的实体的名称预填充的。 如果需要,可以对此进行编辑。 如果在两实体之间创建多个自定义关系,并为两个关系使用相同的自定义前缀,则自动生成的名称值将不是唯一的,您将无法保存新关系。 您必须编辑名称将其与任何现有名称区别开来,才能将其保存。 一旦保存,就无法更改。
如果不希望此实体关系在“高级查找”中出现,可将“可搜索”值设置为“否”。
查找字段
这些字段是所有字段都具有共同属性,但“可搜索”、“字段安全性”和“审核”除外。 若要编辑使用实体关系创建的这些查找字段的值,必须在创建实体关系后单独查找并编辑查找字段。详细信息:创建和编辑字段
根据经验,“显示名称”应对应于主要实体显示名称。
主要实体的导航窗格项
主要实体可以通过展开导航窗格显示相关实体的列表。 此组中的选项控制如何以及是否显示此列表。 还可以使用窗体编辑器编辑这些导航项;通过使用 JavaScript,开发人员可以在窗体显示时将更改应用于这些项。
字段 |
说明 |
---|---|
显示选项 |
|
自定义标签 |
如果选择“使用自定义标签”作为 显示选项,请输入要使用的自定义标签,而不是相关实体的复数名称。 |
显示区域 |
|
显示顺序 |
此数字控制导航项在所选显示区域中的位置。 允许的数字范围从 10,000 开始。 具有较低值的导航窗格项出现在具有较高值的其他关系上方。 |
关系行为
在 1:N 关系中,可以控制关系的行为方式以支持组织的业务规则。 您为什么要这样做? 让我们看一个示例。
假定您有一位新销售员,您希望向其分派一些当前分派给另一位销售员的现有商机。 每个商机记录可能有一些与其关联的任务活动。 您可以轻松地找到要重新分派的可用商机,并将其分派给新销售员。 但是,对于与这些商机关联的任何任务活动,会发生什么情况? 您是否打开每项任务,并决定是否也应将其分派给新销售员? 可能不需要。 您可以让关系自动应用一些标准规则。 这些规则只适用于与您要分派的商机关联的任务记录。 实体关系的名称为“商机_任务”。 您的选择是:
重新分派所有可用任务。
重新分派所有任务。 这是默认行为。
不重新分派任务。
重新分派当前分派给前一个商机负责人的所有任务。
关系可以控制对主要实体记录的记录执行的操作如何向下级联到所有相关实体记录。 操作和可能的行为如下表中所示。
操作 |
说明 |
可能的行为 |
||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
分派 |
当主要实体记录更改了所有权时,会发生什么情况? |
|
||||||||||||||||||||||||
共享 |
当主要实体记录共享时,会发生什么情况? |
|
||||||||||||||||||||||||
取消共享 |
当主要实体记录停止共享时,会发生什么情况? |
|
||||||||||||||||||||||||
重定父级 |
在主要实体记录中的父类型关系的查找字段值发生更改时,会发生什么情况? 父类型关系是对所有操作使用“全部级联”的关系。可自定义的父实体关系 列出了可自定义的父系统关系。 |
|
||||||||||||||||||||||||
删除键 |
当删除主要实体记录时,会发生什么情况? |
|
||||||||||||||||||||||||
合并 |
当主要实体记录与其他记录合并时,会发生什么情况? |
可以配置其中的每个操作以控件操作如何通过 1:N 实体关系向下级联与主要实体记录相关的记录。 下表列出了行为选项。
这些操作在关系内的应用方式可以使用下表中介绍的“行为类型”字段值进行分类或应用。
对可以设置的行为的限制在定义实体关系时,应当记住一些限制。
映射实体字段假设您要为属于特定客户的员工的某个人添加一个新的联系人记录。 您可以通过两种方式完成此事。 您可以导航到“销售”>“联系人”,然后从头开始创建新的联系人记录。 但是,随后您需要设置上级单位,并输入可能与上级单位相同的多个信息项(如地址和电话信息)。 这可能会很耗时间,并会增加出错的机会。 最简单的方法是从客户实体入手,然后使用窗体上的“联系人”子网格,直接单击 (+) 来添加联系人。 它将先指引您查找现有的相关联系人,因此不会无意中创建重复的记录。 如果没有找到现有记录,则可以直接单击“新建”,创建一个新的联系人记录。 区别在于,客户记录中的有些数据项将会复制到新联系人窗体中来设置可在保存前编辑的某些默认值。 这样可以在输入数据时节省大量时间,并有助于减少错误。 实体和属性映射 显示为 Microsoft Dynamics 365 设置的所有默认映射。 备注 这些映射不会应用于使用工作流或对话流程创建的相关记录。 它们不会自动应用于使用代码创建的新记录,但开发人员可以使用一条名为 MSDN:InitializeFromRequest 的特殊消息,使用可用映射来创建新记录。 根据列表创建新记录时设置的默认值实际上是在实体关系中定义的,但是会在关系用户界面中公开。 并非每个 1:N 实体关系都有它们。 在查看某个实体的 1:N(或 N:1)实体实体列表时,可以按类型筛选显示的关系。 您可以选择“全部”、“自定义”、“可自定义”或“可映射”。 “可映射”实体关系提供的访问权限允许映射实体字段。 下列规则显示了可以映射的数据种类。
备注 如果需要映射选项集字段,建议您将两个字段都配置为使用相同的全局选项集。 否则,可能难以手动让两个单独的选项集保持同步。 如果每个选项的整数值未正确映射,则可能是数据中出现了问题。详细信息:创建和编辑全局选项集 创建或编辑字段之间的映射
备注
自动生成字段映射您还可以自动生成映射,但在对系统实体执行此操作时,应小心从事。 请在创建自定义实体并要使用映射时使用此选项。 在查看映射列表时,在“更多操作”菜单中选择“生成映射”。 这会删除所有现有的映射,并代这以建议的映射;这些建议的映射基于具有类似名称和数据类型的字段。 如果对系统实体使用此方法,则可能会丢失一些应有的映射。 对于自定义实体,这有助于节省时间,因为您可以更轻松地删除您不需要的任何映射,并可添加生成映射操作不会创建的其他任何映射。 创建和编辑 N:N(多对多)关系1:N 实体关系确立记录之间的层次结构。 对于 N:N(多对多)关系,则没有明确的层次结构。 没有要配置的查找字段或行为。 使用 N:N 关系创建的记录可以视为对等项,关系是互惠的。 对于 N:N 关系,会创建一个名炎 Relationship(或 Intersect)实体的特殊实体。 此实体与每个相关实体都有关系,并且定义关系所必需的必要 ID 值。 不能向关系实体添加自定义字段。 创建 N:N 关系的过程基本上就是选择两个要参与到关系中的实体,然后为每个实体定义相应列表在每个实体的窗体的导航窗格中的提供方式。 这些选项与用于 1:N 实体关系中的主要实体的选项相同。详细信息:主要实体的导航窗格项 并非所有实体可用于 N:N 关系。 如果“新建多对多关系”按钮未出现,则无法使用此实体创建新的 N:N 关系。 如果您使用元数据浏览器,则可筛选将 CanBeInManyToMany 值设置为 true 实体。详细信息:使用元数据浏览器 创建或编辑实体之间的 N-N 关系
设置关系的托管属性托管属性 仅适用于以下情况:字段包括在某个托管解决方案中,并将该解决方案导入到另一个组织。 利用这些设置,解决方案开发人员可以对他们希望允许安装托管解决方案的人在自定义某个实体关系时要拥有的自定义级别有一定的控制。 若要设置关系的托管属性,请单击菜单栏上的“托管属性”按钮。 对于关系,唯一的托管属性是“可以自定义”。 这一个设置控制可对实体关系做出的所有更改。 另请参阅创建和编辑元数据 © 2016 Microsoft Corporation。 保留所有权利。 版权 |