通过定义或更改表定义,可以控制表的功能。 若要查看环境的表定义,请使用元数据浏览器。 浏览环境中的表定义。
本文介绍如何以编程方式处理表。 若要在 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,使用 CreateEntityRequest 或 UpdateEntityRequest HasNotes 属性使用 Web API 设置 EntityMetadata .HasNotes 属性 |
| 活动 | 创建与 ActivityPointer 表的关系,以便所有活动类型表都可以与此表关联。通过使用 SDK for .NET,请使用 CreateEntityRequest 或 UpdateEntityRequest HasActivities 属性。 使用 Web API 设置 EntityMetadata .HasActivities 属性 |
| 连接 | 将 IsConnectionsEnabled.Value 属性设置为 true,以便创建连接记录以将此表与其他连接表相关联。 若要了解有关连接的详细信息,请参阅“配置连接角色”和“使用连接”将记录相互链接。 |
| Queues | 使用 IsValidForQueue 属性添加对队列的支持。 启用此选项时,还可以将属性设置为 AutoRouteToOwnerQueue 在创建或分配此类型的记录时自动将记录移动到所有者的默认队列。 若要了解详细信息,请参阅 有关队列 和 队列表的详细信息。 |
| 电子邮件 | 设置 IsActivityParty 属性,以可以将电子邮件发送到此类型的记录中的电子邮件地址。
详细了解活动方。 |
可编辑表属性
以下列表显示了可以编辑的表属性。 除非 托管属性 不允许这些选项,否则可以随时更新它们。 详细了解托管属性
| 财产 | 说明 |
|---|---|
| 允许快速创建 | 用于 IsQuickCreateEnabled 为表启用快速创建表单。 必须先创建并发布快速创建表单,然后才能使用快速创建表单。
详细了解模型驱动应用快速创建表单注意: 活动表不支持快速创建表单。 |
| 访问团队 | 用于 AutoCreateAccessTeams 为访问团队启用表。 有关详细信息,请参阅 “关于与团队模板协作 ”。 |
| 主要图像 | 如果表具有图像列,则可以通过使用 PrimaryImageAttribute启用或禁用在应用程序中显示该图像。
了解如何使用代码处理图像列定义 |
| 更改显示文本 |
托管属性IsRenameable可防止在应用程序中更改显示名称。 您仍可以通过更新 DisplayName 和 DisplayCollectionName 属性以编程方式更改标签。 |
| 编辑表说明 |
托管属性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 唯一标识表的名称。 此名称通常与 <EntitySetName 。
详细了解实体集名称 |
自定义表支持的消息
自定义表支持与系统表相同的基本消息。 可以使用的邮件集取决于自定义表是用户拥有的还是组织拥有的。 用户拥有的表支持共享,因此可以使用消息,例如 GrantAccess, ModifyAccess和 RevokeAccess。