您可以在具有一对多或多对一表关系的表之间映射列(也称为属性)。 列映射可以为在另一个行的上下文中创建的行设置默认值。
假设用户要为属于特定客户的员工的某个人添加一个新的联系人行。 他们可以通过两种方式完成此事:
- 困难的是,人们可以直接在应用程序中导航,从头开始创建新的联系人行。 但是,他们需要设置父帐户并输入几项信息,例如地址和电话信息,这些信息可能与父帐户相同,这可能很耗时,并且会带来错误的机会。
- 最简单的方法是从客户表入手,然后使用窗体上的联系人子网格,然后选择 + 来添加联系人。 界面首先会引导用户查找任何现有的相关联系人,这样就不会意外创建重复行。 如果没有找到现有行,则可以选择新建,创建一个新的联系人行。 新的联系人行窗体将包含客户的任何映射属性值(如地址和电话信息)作为默认值。 用户可以在保存行前编辑这些值。
当映射 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 用于账户与联系人表的关系。
- 选择确定以关闭对话框。
- 由于列映射不是元数据,因此必须在更改生效前发布它们。
自动生成列映射
您还可以通过从其他操作菜单选择生成映射来自动生成映射。
当创建自定义表并希望利用映射时,请使用生成映射。 但是,使用系统表自动生成映射时要小心,因为要替换默认映射可能会带来问题。
警告
使用生成映射自动生成映射时,会删除任何现有映射,代之以建议映射,建议映射仅基于具有相似名称和数据类型的列。 如果对系统表使用此方法,则可能会丢失一些应有的映射。 对于自定义表,这有助于节省时间,因为您可以更轻松地删除您不需要的任何映射,并可添加生成映射操作不会创建的其他任何映射。
映射的数据种类和规则
以下规则显示了可以映射的数据类型:
- 两个列必须属于同一类型,而且必须采用相同的格式。
- 目标列的长度必须等于或大于源列的长度。
- 目标列不能已映射到其他列。
- 源列必须在窗体上可见。
- 目标列必须是一个可供用户在其中输入数据的列。
- 不能映射地址 ID 值或
partylist
类型的列。 - 如果映射到未在窗体中显示的列或从其进行映射,则在将该列添加到窗体前,映射不会完成。
- 如果列是选择项,则每个选项的整数值应完全相同。
备注
如果需要映射选择项列,建议您将两个列都配置为使用相同的全局选择项。 否则,可能难以手动让两个单独的选项集保持同步。 如果每个选项的整数值未正确映射,则可能是数据中出现了问题。 详细信息:创建和编辑 Microsoft Dataverse 的全局选择项(选择列表)
删除映射
如果有不想应用的映射,可以选中它们,然后选择 。
另请参见
使用解决方案资源管理器创建和编辑 1:N(一对多)或 N:1(多对一)表关系
开发人员文档:自定义表和属性映射
开发人员文档:Web API 从另一个表创建新表