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

时间:2015-09-11 19:44:35

标签: dynamics-crm dynamics-crm-2015

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

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

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

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

enter image description here

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

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

2 个答案:

答案 0 :(得分:5)

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

更新

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

答案 1 :(得分:1)

正如Joseph Duty所指出的,属性映射存储在ImportExportXml/EntityMaps下的customizations.xml文件中(有关如何使用它们,请参阅Customization solutions file schema)。 但是,当解决方案导出时,它们似乎不包含任何"系统"关系,只有至少一个实体是自定义实体的关系。这可能是我的映射更改未能在解决方案导出中结束的原因。

好消息是您可以手动将这样的映射添加到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元素不会导致删除相应的映射,但这在使用解决方案时是常规行为。