在 Microsoft Dynamics 365 中引入实体

 

发布日期: 2017年1月

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

实体用于在 Microsoft Dynamics 365 中建立业务数据模型和管理业务数据。 例如,可以使用客户、市场活动和事件(案例)等实体跟踪和支持销售、市场营销和服务活动。 实体具有一组属性,每个属性表示一个特定类型的数据项。 例如,客户实体具有 NameAddressOwnerId 属性。 从概念上讲,实体类似于数据库表,实体属性对应于表列。 在 Microsoft Dynamics 365 中创建实体记录(或记录)类似于在数据库表中添加行。 实体划分成三个类别:系统、业务和自定义。 作为处理业务数据的开发人员,您将使用业务和自定义实体。Microsoft Dynamics 365 使用系统实体处理所有内部流程,如工作流和异步作业。 不能删除或自定义系统实体。

业务实体是默认安装的 Microsoft Dynamics 365 的一部分,它们显示在自定义用户界面中。 例如,客户、联系人和信件都是业务实体。 安装 Microsoft Dynamics 365 后,可以向其中添加自定义实体以满足组织的特定业务需求。 在 Microsoft Dynamics 365解决方案中,可以将业务和自定义实体以及属性设置为可自定义或不可自定义。 可以通过以下方式修改可自定义实体:重命名可自定义实体、添加新属性或更改各种设置,如重复检测或队列支持设置。 不能修改不可自定义的实体。 有关自定义、非托管和托管解决方案以及托管属性的详细信息,请参阅使用解决方案打包和分发扩展

如果使用的是早期绑定编程模型,则实体由类表示,如表示客户实体的 Account 类。 实体属性由类特性表示。 此类由 CrmSvcUtil 工具生成。 有关详细信息,请参阅在代码中使用早期绑定实体类。 另外,可以使用动态方法编写处理实体数据的程序。 有关详细信息,请参阅在代码中使用晚期绑定实体类

备注

在 Microsoft Dynamics 365 SDK 文档中,术语“实体属性”(entity attribute) 可以与术语“属性”(attribute) 和术语“特性”(property)(类属性)(class property) 互换使用。

本主题内容

实体元数据

对实体记录执行的操作

实体所有权

记录状态和状态

实体图像

实体元数据

Microsoft Dynamics 365 组织的元数据包含实体、属性以及实体之间的关系的定义。 有关详细信息,请参阅Microsoft Dynamics 365 中的元数据和数据模型。 作为开发人员,有许多案例表明能够查找组织的所有元数据是很有用的。 您可以采用许多方法查找和参考元数据:

您可以创建下列类型的实体间关系:一对多、多对一和多对多。 多对多关系的记录存储在相交实体中。 定义关系后,可以使用 AssociateRequest 消息或 Associate 方法创建指定记录之间的链接,使用 DisassociateRequest 消息或 Disassociate 方法删除指定记录之间的链接。

在一对多关系和多对一关系中,对父实体记录执行的一些操作会影响子实体记录。 具有级联行为的操作包括:分配、删除、合并、分享、取消共享和重定父级。 有关详细信息,请参阅实体关系行为

实体元数据中使用的名称

实体、属性和关系具有几个不同的名称。 下表列出在元数据中使用的各种名称。

客户

说明

显示名称

向用户显示的名称。

显示集合名称

复数形式的显示名称。 这仅适用于实体。

逻辑名称

实体或属性的唯一名称。 此名称全部小写。

架构名称

架构名称在创建时指定。 此名称必须是唯一的。 它用于创建逻辑名称。 此名称应采用 Pascal 大小写格式。 架构名称用于在使用早期绑定编程时为实体创建类。

备注

对于在解决方案上下文中创建的自定义实体、属性和关系,逻辑和架构名字中的自定义前缀是在 Publisher.CustomizationPrefix 属性中定义的。 对于以编程方式创建的实体,将自定义前缀设置为长度介于两个和八个字符之间并且全部是字母数字字符的字符串,并且它以字母开头, 而不能以“mscrm”开头。 有关实体元数据自定义和命名约定的详细信息,请参阅自定义实体元数据

对实体记录执行的操作

每个实体均支持多种不同的操作,例如创建或删除记录,或者将记录分派给另一用户或团队。 并非对所有实体类型或属性都允许执行所有这些操作。 对于每个属性,元数据定义是否支持给定的操作。 例如,属性的属性,如通过 IsValidForCreateIsValidForReadIsValidForUpdate 可以判定是否可以创建、检索或更新属性。详细信息:对属性的有效操作

若要执行操作,可以调用 IOrganizationService 中的方法之一。 例如,若要在 Microsoft Dynamics 365 中创建记录,可以将 IOrganizationService.Create 方法或 IOrganizationService.Execute 方法与相应的 CreateRequest 消息结合使用。 您必须具有所需的特权和访问权限才能执行这些操作。 有关详细信息,请参阅Microsoft Dynamics 365 的安全模型

下表列出允许对业务和自定义实体记录执行的操作以及可用于执行这些操作的方法和消息。

操作​​

说明

方法和/或消息

创建

创建特定实体类型的记录,包括自定义实体。

IOrganizationServiceCreate

CreateRequest

更新

修改记录的内容。

IOrganizationServiceUpdate

UpdateRequest

删除​​

删除记录。

IOrganizationServiceDelete

DeleteRequest

检索

检索记录。

IOrganizationServiceRetrieve

RetrieveRequest

多项检索

检索记录的集合。

IOrganizationServiceRetrieveMultiple

RetrieveMultipleRequest

分派​​

更改记录的所有权。 对于用户负责或团队负责的实体有效。

AssignRequest

共享​​

授予、修改或撤消另一用户或团队对记录的访问权限。 对于用户负责或团队负责的实体有效。

GrantAccessRequest

ModifyAccessRequest

RevokeAccessRequest

关联

在实体之间存在关系的情况下创建记录和记录集合之间的链接。

AssociateRequest

解除关联

在实体之间存在关系的情况下删除记录和记录集合之间的链接。

DisassociateRequest

设置状态

设置记录的状态。

SetStateRequest

创建

若要执行此操作,调用方必须具有Create message privileges。 访问权限不应用于创建操作,而是应用于创建之后的记录。

若要负责记录或检索新创建的记录,用户或团队还必须对新记录具有读取特权和访问权限。 例如,如果对客户具有创建特权,则可以创建客户记录并将其分派给另一用户或团队。 但是,您还必须对客户具有读取特权,对新记录具有访问权限,否则无法创建客户并成为新客户的负责人。

更新

若要执行此操作,调用方必须对要更新的实体记录具有Update message privileges和访问权限。

更新记录时,仅更新为其指定了数据或指定了 Null 值的属性。 所有其他值都保持不变。 另外,如果为不支持更新的属性指定了数据,则会被忽略。

删除​​

若要执行此操作,调用方必须对要删除的实体记录具有Delete message privileges和访问权限。

级联规则确定是否同时删除相关记录。 有关详细信息,请参阅实体关系行为

通常情况下,您只应删除误输入的记录。 对于某些记录类型,您可以停用或关闭记录,而不是将其删除。 并非所有记录类型都可以删除。

检索

若要执行此操作,调用方必须对检索的实体记录具有Retrieve message privileges和访问权限。

多项检索

若要执行此操作,调用方必须对检索的实体记录具有Retrieve message privileges和访问权限。

若要基于查询参数检索记录集合,您可以使用查询表达式或 FetchXML 查询语言。 查询表达式允许您使用类层次结构生成查询树。 使用查询表达式的方法会返回强类型记录的集合。 FetchXML 允许您使用 XML 语言生成查询。 FetchXML 会返回一个 XML 字符串。 因此,必须执行更多数据操作才能使用查询结果。 有关详细信息,请参阅使用 SDK 程序集通过查询检索数据

分派​​

对于用户负责或团队负责的实体,可以向新负责人分派记录。 有关详细信息,请参阅实体所有权。 若要执行此操作,调用方必须对实体记录具有Assign message privileges和访问权限。

级联规则确定是否同时将相关记录分派给另一用户。 有关详细信息,请参阅实体关系行为

将记录分派给另一用户或团队时,如果 ShareToPreviousOwnerOnAssign 属性设置为 true,则原来的负责人仍有权访问此记录。 但是,原来的负责人不再拥有此记录的所有权。

共享​​

对于用户负责或团队负责的实体,您可以与其他用户或团队共享纪录。 若要执行此操作,调用方必须有 GrantAccess message privilegesModifyAccess message privilegesRevokeAccess message privileges以及对实体记录的访问权限。

级联规则确定是否同时共享相关记录。 有关详细信息,请参阅实体关系行为

共享是 Microsoft Dynamics 365 用户根据需要向其他用户授予对客户信息的访问权限的一种方式。 例如,销售员可能决定与另一销售员共享商机,以便可以共同跟踪重要销售的进展。

可以使用 GrantAccessRequest 共享记录。 可以使用 ModifyAccessRequest 更改共享记录的方式。 可以使用 RevokeAccessRequest 取消记录的所有共享。

用户必须具有共享权限才能与 Microsoft Dynamics 365 中的任何其他用户共享与客户相关的记录(如联系人、客户、商机、案例和订单)。 共享记录时,您可以指定要针对共享记录授予的权利。

以下列表介绍了用于共享记录的规则:

  • 对记录具有共享权限的任何用户都可以与其他用户或团队共享该记录。

  • 对记录具有共享权限的任何用户都可以设置共享用户对该记录具有哪些访问权限。 这些访问权限控制共享记录的用户可以对该记录进行哪些类型的访问。

  • 可以对共享记录设置任何访问权限,例如读取或写入。

  • 共享同一记录的每个用户对共享记录可以拥有不同的访问权限。

  • 同一安全主体只能共享记录一次。 如果用户对记录具有共享权限,则可以共享该记录。

  • 对业务记录具有共享权限的任何用户都可以修改共享该记录的用户的访问权限。

  • 对业务记录具有共享权限的任何用户都可以取消已共享该记录的指定用户对该记录的共享。

  • 对业务记录具有共享权利的任何用户都可以取消以前共享该记录的所有用户对该记录的共享。

关联

若要执行此操作,调用方必须对要更新的记录具有Associate message privileges和访问权限。

关联在一个事务中为指定关系创建指定记录和指定集合中每个记录之间的多个关联。

对于一对多关系,此方法将相关记录中的 ReferencingAttribute 设置为指定记录的 ID。

对于多对多关系,此方法在关系的相交表中创建一个记录,该记录包含被引用记录和引用记录的 ID。 相交表的名称在关系的 IntersectEntityName 特性中定义。

解除关联

若要执行此操作,调用方必须对要更新的记录具有Disassociate message privileges和访问权限。

解除关联是关联操作的反向操作,通过更新被引用记录和引用记录并在适当的时候删除相交记录可执行此操作。 有关详细信息,请参阅关联。

设置状态

若要执行此操作,调用方必须对要更新的记录具有SetState message privileges和访问权限。SetStateRequest 消息更新实体记录的 StateCodeStatusCode 属性。

实体所有权

存在多种类型的实体所有权。 大多数实体(包括自定义实体)都由组织、用户或团队负责。 有一些业务实体不具有负责人,如折扣类型(折扣表),它的所有权由其父实体折扣定义。 所有权的类型定义可以对记录执行的一些操作。 实体的所有权在元数据特性 OwnershipType 中定义。 下表列出所有权属性。

所有权类型

说明

由组织负责

包含的数据所涉及的内容属于整个组织或者可以由整个组织查看。 不能分派或共享由组织负责的实体。 例如,产品由组织负责。 这些实体具有名为 organizationid 的属性。

由业务部门负责

属于业务部门的实体。 这些实体具有名为 owningbusinessunit 的属性。

用户或团队负责

已分派给用户或团队。 这些实体包含的数据与客户(如客户或联系人)相关。 可以根据用户或团队的业务部门定义安全性。 这些实体具有名为 owningteamowninguser 的属性。

无​​

这些实体不由另一实体负责。

有关用户或团队所有权的其他信息

可以使用 AssignRequest 消息更改记录的所有权。 有关详细信息,请参阅分派​​。 您可以使用 ReassignObjectsOwnerRequestReassignObjectsSystemUserRequest 消息对负责人的所有记录执行批量重新分派。

备注

通过将所有权限制为用户或团队,可以限制数据只能由组织中的授权用户访问。 但是,通过与其他用户和团队共享实体记录,可以将数据访问权限扩展到这些用户和团队。 还可以将记录分派给另一用户或团队。 与组织负责的实体相比,通过配置用户负责的实体或团队负责的实体的安全性,可以提高您对安全角色的访问级别。 组织负责的实体的安全角色具有两个访问级别:无和全局。 用户负责或团队负责的实体有五种访问级别:全局、深层、本地、基本和无。

记录状态和状态

大多数业务实体均具有两个用于跟踪记录状态的特性。 这两个特性为 StateCodeStatusCode,前者在 Web 应用程序中称为“状态”,后者在 Web 应用程序中称为“状态描述”。StateCodeStatusCode 属性值链接在一起。StateCode 属性在内部用于表示实体的状态。StatusCode 属性用于将此值显示给最终用户。 实体的有效状态代码集不可自定义,但状态代码可自定义。 对于案例实体和自定义实体,您可以为状态之间的有效转换定义其他标准。 有关详细信息,请参阅 自定义实体属性元数据定义自定义状态模型转换

实体图像

某些系统实体具有图像属性。 您可以向自定义实体添加图像属性。 当实体具有图像属性时,您可以设置 PrimaryImageAttribute 属性以控制是否将在应用程序中显示图像。 当在 Web 应用程序中显示图像时,Web 应用程序的用户可以上载实体记录的图片。 以下系统实体具有图像属性。 默认情况下,启用这些标有星号的实体以便在应用程序中显示它们。

客户 *

知识库文章

市场活动

事件

竞争对手 *

连接

联系人 *

合同

交易记录币种

电子邮件服务器配置文件

目标

发票

潜在顾客 *

邮箱

商机产品

销售订单

组织

产品 *

发布商 *

队列

资源 *

销售宣传资料

区域

系统用户 *

详细信息:图像数据属性

另请参阅

管理和安全实体
使用元数据生成实体关系图
定义自定义状态模型转换
实体关系图的关键
在 Microsoft Dynamics 365 中对业务数据建模
自定义实体关系元数据
实体关系行为
Microsoft Dynamics 365 中的元数据和数据模型
使用含有 Dynamics 365 元数据的组织服务
使用解决方案打包和分发扩展
组织服务实体
Microsoft Dynamics 365 的安全模型
示例:设置和检索实体图像
示例:为组指定记录
示例:共享 GrantAccess、ModifyAccess 和 RevokeAccess 消息
示例:合并两个记录
示例:验证记录状态和设置记录状态
示例:汇总与特定记录相关的记录

Microsoft Dynamics 365

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