自定义表定义

通过定义或更改表定义,可以控制表的功能。 若要查看环境的表定义,请使用元数据浏览器。 浏览环境中的表定义

本文介绍如何以编程方式处理表。 若要在 Power Apps 中使用表,请参阅 Dataverse 中的表

可以使用 sdk for .NET、Dataverse SDK for Python 或 Web API 来创建表。 以下信息适用于所有三种方法。

方法 Interface 了解详细信息
网络应用程序接口 EntityMetadata 实体类型 使用 Web API 创建和更新表定义
用于 .NET 的 SDK EntityMetadata 类 使用代码创建自定义表
检索、更新和删除表
用于 Python 的 Dataverse SDK client.tables 使用元数据自定义表和列

创建、检索、更新和删除表定义

使用表定义的方式取决于所使用的服务。

消息 网络应用程序接口 .NET SDK 用于 Python 的 SDK
CreateEntity POST使用请求发送数据来创建表。 CreateEntityRequest 类 用于 client.tables.create 创建自定义表及其列(可选)。
DeleteEntity DELETE使用请求删除表。 DeleteEntityRequest 类 用于 client.tables.delete 删除自定义表。
RetrieveAllEntities 使用 GET 请求检索表数据。 RetrieveAllEntitiesRequest 类 用于 client.tables.list 列出表定义。
RetrieveEntity RetrieveEntity 函数 RetrieveEntityRequest 类 用于 client.tables.get 检索表定义。
UpdateEntity 使用 PUT 请求更新表。 UpdateEntityRequest 类 当前不支持。 用于Python的 SDK 不提供表更新方法。
RetrieveMetadataChanges
Metadata.Query 命名空间 中的对象一起使用,以创建一个查询,以有效地检索和检测对特定表定义的更改。 详细信息: 查询架构定义
RetrieveMetadataChanges 函数 RetrieveMetadataChangesRequest 类 当前不支持。 用于Python的 SDK 不提供调用此函数的方法。

创建自定义表时可用的选项

以下列表描述了创建自定义表时可用的选项。 只有在创建自定义表时,才能设置这些属性。

选项 说明
创建为自定义活动 使用 SDK for .NET 或 Web API 时,通过设置IsActivity属性来创建一个活动表。 有关详细信息,请参阅 自定义活动
表名称 存在两种类型的名称。 自定义表必须具有自定义前缀:

LogicalName:所有小写字母中设置的表名称版本的名称。

SchemaName:用于创建数据库表的名称。 此名称可以是混合大小写。 使用的大小写设置为使用强类型编程或使用 REST 终结点时生成的对象的名称。

注意:如果逻辑名称与架构名称不同,架构名称将替代为逻辑名称设置的值。

在特定解决方案的上下文中创建应用程序中的表时,使用的自定义前缀是解决方案的 Publisher 一个集。 以编程方式创建表时,将自定义前缀设置为长度为 2 到 8 个字符(所有字母数字字符)的字符串,并且必须以字母开头。 不能以 mscrm 开头。 最佳做法是使用发布者定义的自定义前缀,该解决方案与之关联,但不会强制实施此最佳做法。 必须在自定义前缀和逻辑或架构名称之间包含下划线字符。
所有权 使用属性 OwnershipType 设置表记录的拥有方式。 使用 OwnershipTypes 枚举OwnershipTypes 枚举类型 设置表所有权的类型。 自定义表 OrgOwned 的唯一有效值为或 UserOwned。 有关详细信息,请参阅 表所有权
主列 使用 SDK for .NET,使用 CreateEntityRequest.PrimaryAttribute 属性设置主列。

使用 Web API,定义表的 JSON 必须包含一个 StringAttributeMetadata 实体类型IsPrimaryName 属性设置为 true。

在这两种情况下,字符串列的格式都必须为 Text。 主列的值是在查找任何相关表时显示的值。 因此,列的值应表示记录的名称。

启用表功能

以下列表描述了表功能。 创建表或稍后启用这些功能时,可以设置这些功能。

注释

启用这些功能后,无法禁用这些功能。

Capability 说明
业务流程流 设置为 IsBusinessProcessEnabled true 以启用业务流程表。
Notes 创建与 Annotation 表的关系,并启用窗体中包含 备注 区域。 通过包括注释,还可以向记录添加附件。

使用 sdk for .NET,使用 CreateEntityRequestUpdateEntityRequestHasNotes 属性

使用 Web API 设置 EntityMetadata.HasNotes 属性
活动 创建与 ActivityPointer 表的关系,以便所有活动类型表都可以与此表关联。

通过使用 SDK for .NET,请使用 CreateEntityRequestUpdateEntityRequestHasActivities 属性。

使用 Web API 设置 EntityMetadata.HasActivities 属性
连接 IsConnectionsEnabled.Value 属性设置为 true,以便创建连接记录以将此表与其他连接表相关联。 若要了解有关连接的详细信息,请参阅“配置连接角色”和“使用连接”将记录相互链接
Queues 使用 IsValidForQueue 属性添加对队列的支持。 启用此选项时,还可以将属性设置为 AutoRouteToOwnerQueue 在创建或分配此类型的记录时自动将记录移动到所有者的默认队列。 若要了解详细信息,请参阅 有关队列队列表的详细信息。
电子邮件 设置 IsActivityParty 属性,以可以将电子邮件发送到此类型的记录中的电子邮件地址。 详细了解活动方

可编辑表属性

以下列表显示了可以编辑的表属性。 除非 托管属性 不允许这些选项,否则可以随时更新它们。 详细了解托管属性

财产 说明
允许快速创建 用于 IsQuickCreateEnabled 为表启用快速创建表单。 必须先创建并发布快速创建表单,然后才能使用快速创建表单。 详细了解模型驱动应用快速创建表单
注意
活动表不支持快速创建表单。
访问团队 用于 AutoCreateAccessTeams 为访问团队启用表。 有关详细信息,请参阅 “关于与团队模板协作 ”。
主要图像 如果表具有图像列,则可以通过使用 PrimaryImageAttribute启用或禁用在应用程序中显示该图像。 了解如何使用代码处理图像列定义
更改显示文本 托管属性IsRenameable可防止在应用程序中更改显示名称。 您仍可以通过更新 DisplayNameDisplayCollectionName 属性以编程方式更改标签。
编辑表说明 托管属性IsRenameable可防止在应用程序中更改表说明。 您仍可以通过更新 Description 属性以编程方式更改标签。
启用 Outlook 阅读窗格 注意:该 IsReadingPaneEnabled 属性仅供内部使用。

若要启用或禁用 Office Outlook用户查看此表的数据的功能,请使用Outlook阅读窗格。 必须在应用程序中设置此属性。
启用邮件合并 用于IsMailMergeEnabled启用或禁用生成使用此表中数据的 Office Word合并文档的功能。
启用重复检测 用于 IsDuplicateDetectionEnabled 启用或禁用表的重复检测。 有关详细信息,请参阅 使用代码检测重复数据
启用 SharePoint 集成 用于IsDocumentManagementEnabled启用或禁用表SharePoint服务器集成。 有关详细信息,请参阅启用 SharePoint 文档管理以针对特定实体
启用适用于手机的 Dynamics 365 用于IsVisibleInMobile启用或禁用电话用户查看此表数据的Dynamics 365功能。
适用于平板电脑的 Dynamics 365 用于IsVisibleInMobileClient启用或禁用平板电脑用户查看此表数据的Dynamics 365功能。

如果表可用于平板电脑Dynamics 365,则可以用于IsReadOnlyInMobileClient指定记录的数据是只读的。
启用审核 用于 IsAuditEnabled 启用或禁用表的审核。 有关详细信息,请参阅 配置用于审核的表和列
添加或删除列 只要 托管属性CanCreateAttributes.Value 允许创建列,就可以将列添加到表中。 有关详细信息,请参阅 列定义
添加或删除视图 只要 托管属性CanCreateViews.Value 允许创建视图,就可以使用该 SavedQuery 表为表创建视图。
添加或删除图表 只要 托管属性CanCreateCharts.Value 允许创建图表, IsEnabledForCharts 并且表属性为 true,就可以使用 SavedQueryVisualization 表 为表创建图表。 有关详细信息,请参阅使用可视化效果查看数据(图表)。
添加或删除表关系 多个托管属性控制可以为表创建的关系类型。 有关详细信息,请参阅 表关系定义
更改图标 可以更改用于自定义表的图标。 有关详细信息,请参阅 更改模型驱动应用自定义表图标
可以更改分层关系 CanChangeHierarchicalRelationship.Value 控制是否可以更改托管解决方案中包含的关系的分层状态。 了解详细信息:定义和查询分层相关数据和查询分层数据
实体集名称 EntitySetName 指定用于使用 Dataverse Web API 唯一标识表的名称。 此名称通常与 <a0/> 相同,但不能更改。 只有在使用默认实体集名称编写任何代码之前,才应更改 EntitySetName详细了解实体集名称

自定义表支持的消息

自定义表支持与系统表相同的基本消息。 可以使用的邮件集取决于自定义表是用户拥有的还是组织拥有的。 用户拥有的表支持共享,因此可以使用消息,例如 GrantAccessModifyAccessRevokeAccess

另见

将 Web API 与表定义配合使用
使用 SDK for .NET 处理表定义