MS CRM 2015允许您指定实体之间关系的属性映射。 例如。对于下面显示的“contact_customer_accounts”关系,它定义了在通过帐户的“相关联系人”视图添加新联系人时,应将来自帐户的哪些属性复制到联系人。
但是,当我更改此类映射(并发布所有自定义项)时,它不会作为我的解决方案的一部分导出(或者就此而言是默认解决方案)。 当我在映射中进行这样的更改之前和之后比较customizations.xml文件时,它们(对于相关部分)完全相同 - 这些信息似乎不是导出的一部分吗?
我还找到了Customization solutions file schema,它似乎也没有提到有关属性映射的任何内容。
我认为这些信息应该是解决方案导出的一部分 - 有人知道为什么不是吗?
更新:我在我的组织中导入了我的解决方案(包括帐户和联系人)并已发布。然后从“contact_customer_accounts”关系中删除一半映射并再次发布。最后导入了相同的解决方案并再次发布:删除的映射没有返回。
所以我认为解决方案不包含映射信息是安全的。
答案 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元素不会导致删除相应的映射,但这在使用解决方案时是常规行为。