属性映射(在 N:1 关系上)未包含在导出中?

Attribute mappings (on N:1 relationships) not included in export?

MS CRM 2015 允许您在实体之间的关系上指定属性映射。 例如。对于下面显示的 "contact_customer_accounts" 关系,它定义了在通过客户的 "related contacts" 视图添加新联系人时,应将客户的哪些属性复制到联系人。

但是,当我更改此类映射(并发布所有自定义设置)时,它不会作为我的解决方案(或默认解决方案,就此而言)的一部分导出。 当我比较映射更改前后的 customizations.xml 文件时,它们(对于相关部分)完全相同 - 这些信息似乎不是导出的一部分?

我也找到了 Customization solutions file schema,它似乎也没有提到任何关于属性映射的内容。

我认为此信息应该是解决方案导出的一部分 - 有人知道为什么不是吗?

更新: 我在我的组织中导入了我的解决方案(包括帐户和联系人)并发布了。然后从 "contact_customer_accounts" 关系中删除一半映射并再次发布。最后导入相同的解决方案并再次发布:删除的映射没有return。

所以我认为可以肯定地说解决方案不包含映射信息。

正如 Joseph Duty 指出的那样,属性映射存储在 ImportExportXml/EntityMaps 下的 customizations.xml 文件中(有关如何使用它们,请参阅 Customization solutions file schema)。 但是,导出解决方案时,它们似乎不包含任何 "system" 关系,仅包含至少一个实体是自定义实体的关系。所以这可能就是为什么我的映射更改没有最终出现在解决方案导出中。

好消息是您可以手动将这样的映射添加到 customizations.xml 文件中,导入后,您会看到映射出现在这些实体之间的所有关系中:

<EntityMaps>
  <EntityMap>
    <EntitySource>account</EntitySource>
    <EntityTarget>contact</EntityTarget>
    <AttributeMaps>
      <AttributeMap>
        <AttributeSource>telephone1</AttributeSource>
        <AttributeTarget>telephone2</AttributeTarget>
      </AttributeMap>
      <AttributeMap>
        <AttributeSource>telephone1</AttributeSource>
        <AttributeTarget>telephone3</AttributeTarget>
      </AttributeMap>
    </AttributeMaps>
  </EntityMap>    

customizations.xml 中删除一个或多个 AttributeMap 元素不会导致相应的映射被删除,但这是使用解决方案时的常规行为。

我还看到您必须在何处同时拥有这两种关系,并且这两个字段都在解决方案中定义了映射,以便导出映射...因此,如果我的实体 A 具有到 B 的映射,对于字段 A.1 到 B.1 和 A.2 到 B.2,我必须确保关系和字段 A.1、A.2、B.1 和 B.2 已添加到解决方案,否则它们不会被导出。

更新

经过进一步测试,为了将查找属性包含在映射的导出中,目标属性字段必须包含在解决方案中!