您可以在具有一对多或多对一表关系的表之间映射列(也称为属性)。 列映射可以为在另一个行的上下文中创建的行设置默认值。
假设用户要为属于特定客户的员工的某个人添加一个新的联系人行。 他们可以通过两种方式完成此事:
- 困难的是,人们可以直接在应用程序中导航,从头开始创建新的联系人行。 但是,他们需要设置父帐户并输入几项信息,例如地址和电话信息,这些信息可能与父帐户相同,这可能很耗时,并且会带来错误的机会。
- 最简单的方法是从客户表入手,然后使用窗体上的联系人子网格,然后选择 + 来添加联系人。 界面首先引导用户查找任何现有相关联系人,以免意外创建重复行。 如果找不到现有行,则可以选择“ 新建 ”并创建新的联系人行。 新的联系人行窗体将包含客户的任何映射属性值(如地址和电话信息)作为默认值。 用户可以在保存行前编辑这些值。
当映射 1:N 表关系的表列时,主表行中数据的某些项目将被复制到新的相关表窗体以设置用户在保存前可以编辑的默认值。
备注
- 这些映射仅在保存记录之前设置行的默认值。 用户可以在保存之前编辑值。 传输的数据是该时间点的数据。 如果源数据稍后发生更改,则数据不会同步。
- 这些映射不会应用于使用工作流或对话进程创建的相关行。 它们不会自动应用于使用代码创建的新行,尽管开发人员可以使用名为
InitializeFrom(InitializeFrom 函数 或 InitializeFromRequest 类)的特殊消息来使用可用映射创建新行。 - 这些映射不适用于应用没有与 Microsoft Dataverse 的活动网络连接时打开的新的相关表窗体,父查找列除外。
- 在脱机模式下使用应用时,不支持表之间的列映射。 更多信息,请参阅模型驱动应用的 Mobile Offline 限制中列出的限制。
查看可映射列
映射列在 1:N 或 N:1 表关系的上下文中进行,因此,您首先需要查看 1:N 或 N:1 表关系。
查看和映射表列的唯一方法是使用经典解决方案资源管理器。
- 登录Power Apps,然后选择所需的环境。
- 从左侧面板上选择解决方案,然后打开所需的解决方案。
- 在命令栏中选择切换到经典模式。 解决方案将在经典解决方案资源管理器中打开。
- 展开实体,展开所需的表,然后展开关系类型,可以是 1:N 关系或 N:1 关系,然后打开要查看或编辑列映射的关系。
- 列映射实际上未在表关系中定义,但它们在经典解决方案资源管理器关系用户界面中公开。 并非每个 1:N 表关系都有它们。 在类型下拉列表中,选择可映射,只显示具有可映射列的关系。
- 双击要查看或编辑列映射的关系。 将打开一个浏览器页面以显示关系属性。
- 选择左侧导航中的映射选项卡。 将显示关系的映射。
添加新映射
- 在查看可映射列的同时,选择命令栏上的新建。 此时将显示创建字段映射对话框。
- 选择要映射的一个源表列和一个目标表列,如 address1_city 用于账户与联系人表的关系。
- 选择确定以关闭对话框。
- 由于列映射不是元数据,因此必须在更改生效前发布它们。
自动生成列映射
您还可以通过从其他操作菜单选择生成映射来自动生成映射。
当创建自定义表并希望利用映射时,请使用生成映射。 但是,使用系统表自动生成映射时要小心,因为要替换默认映射可能会带来问题。
警告
使用生成映射自动生成映射时,会删除任何现有映射,代之以建议映射,建议映射仅基于具有相似名称和数据类型的列。 如果对系统表使用此方法,则可能会丢失一些应有的映射。 对于自定义表,这一功能有助于节省时间,因为可以更轻松地删除任何不需要的映射,并添加生成映射时未创建的其他映射。
映射的数据种类和规则
以下规则显示了可以映射的数据类型:
- 两个列必须属于同一类型,而且必须采用相同的格式。
- 目标列的长度必须等于或大于源列的长度。
- 目标列不能已映射到其他列。
- 源列必须在窗体上可见。
- 目标列必须是一个可供用户在其中输入数据的列。
- 无法映射类型
partylist的地址 ID 值或列。 - 如果映射到窗体上未显示的列或从该列进行映射,则在将列添加到窗体之前,不会完成映射。
- 如果列是选择项,则每个选项的整数值应完全相同。
备注
如果需要映射选择项列,建议您将两个列都配置为使用相同的全局选择项。 否则,可能难以手动让两个单独的选项集保持同步。 如果每个选项的整数值未正确映射,则可以在数据中引入问题。 详细信息:创建和编辑 Microsoft Dataverse 的全局选择项(选择列表)
删除映射
在
备注
系统和受管映射无法像未受管映射那样通过旧版解决方案资源管理器删除。
系统映射
无法删除系统生成的映射。 尝试删除系统生成的映射时,将显示如下错误:“无法创建或删除具有 ID <GUID> 的系统属性映射,从 '<name>' 到 '<name>',该映射属于具有 ID <GUID> 的实体映射,从 '<name>' 到 'X<name>'。”
若要删除系统生成的映射,请删除与映射关联的关系或查阅列,同时这也会删除映射。 详细信息: 删除关系
托管映射
如果映射是托管的,则无法删除映射。 若要删除映射,必须升级到在目标环境中引入此映射的解决方案。 操作方法:在开发环境中将未管理映射作为解决方案更新进行删除。 将解决方案导出为受管格式,以便导入下游环境。 详细信息: 升级或更新解决方案
另请参阅
使用解决方案资源管理器创建和编辑 1:N(一对多)或 N:1(多对一)表关系
开发人员文档:自定义表和列映射
开发人员文档:使用 Web API 从另一条记录创建记录
开发人员文档:设置主表行中的默认值