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

8

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

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

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

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

enter image description here

更新: 我在我的组织中导入了我的解决方案(包括Account和Contact),并进行了发布。然后从“contact_customer_accounts”关系中删除了一半的映射,并再次发布。最后再次导入相同的解决方案并发布:已删除的映射未返回。

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


这个解决方案中两个实体都在吗? - James Wood
@JamesWood:是的,账户和联系人都在解决方案中。 - Leon Bouquiet
如果您将解决方案导入另一个环境中,更改是否包含在内? - James Wood
@JamesWood:好问题,看看我的更新帖子。 - Leon Bouquiet
1
那么,删除源环境中的现有映射,然后将解决方案推送到目标环境并没有从目标环境中删除映射?这是你的意思吗?在customizations.xml文件的EntityMaps和EntityRelationships节点中查找有关映射的信息。 - Joseph Duty
@JosephDuty:不,只有一个环境,在这个环境中我手动删除了一半的映射,然后尝试通过导入自定义来重新引入它们,但这并没有发生。 你的另一个评论指向了解决方案,请见下文。 - Leon Bouquiet
2个回答

10
我曾经看到过这样一种情况,为了使映射能够被导出,必须在解决方案中定义关系和字段的映射。因此,如果我有一个实体A,它与B之间有一个映射,将A.1映射到B.1,将A.2映射到B.2,那么我必须确保关系和字段A.1、A.2、B.1和B.2也已经添加到解决方案中,否则它们就不会被导出。
更新
经过进一步测试,为了使查找属性包含在映射的导出中,必须在解决方案中包含目标属性字段!

1
我来晚了,但是向Daryl致敬。非常准确!那个发布问题并在下面有点回答的人可能已经找到了一种方法来解决它,但这不是正确的方法。将目标查找字段包含在解决方案中才是正确的答案。 - Tony

1
正如Joseph Duty所指出的那样,属性映射存储在customizations.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>    

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

很高兴能够提供帮助。 - Joseph Duty
1
如果您需要多次导出相同的解决方案,您会手动添加映射吗?这不是正确的做法。请参见上面Daryl的答案。它可以永久解决问题。 - Tony

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接