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

Ast*_*ain 5 dynamics-crm dynamics-crm-2015

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

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

我还找到了定制解决方案文件架构,它似乎也没有提到有关属性映射的任何内容.

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

在此输入图像描述

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

所以我认为解决方案不包含映射信息是安全的.

Dar*_*ryl 6

我还看到了你必须要有这两种关系的地方,并且两个字段都在解决方案中定义了映射,以便导出映射...所以如果我有实体A,它有一个映射到B,对于字段A. 1至B.1和A.2至B.2,我必须确保关系以及A.1,A.2,B.1和B.2字段也已添加到解决方案中,或者否则他们不会出口.

更新

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


Ast*_*ain 1

正如 Joseph Duty 指出的那样,属性映射存储在定制化.xml 文件中ImportExportXml/EntityMaps(有关如何使用它们的信息,请参阅定制解决方案文件架构)。然而,当导出解决方案时,它们似乎不包含任何“系统”关系,仅包含至少一个实体是自定义实体的关系。所以这可能就是为什么我的映射更改没有最终出现在解决方案导出中的原因。

好消息是,您可以手动将此类映射添加到文件中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>    
Run Code Online (Sandbox Code Playgroud)

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