如何在Dynamics CRM 2013中的实体之间映射字段

时间:2014-04-01 10:48:58

标签: dynamics-crm dynamics-crm-2013

我们可以通过组织服务创建一个实体,该实体具有对另一个实体的引用。有没有办法通过组织服务触发此实体关系的字段映射,以便通过该关系的内置映射提取所有必需的数据?

这是必需的,因为我们有一个POST创建插件,该插件在该实体上运行,期望通过映射填充数据。

3 个答案:

答案 0 :(得分:1)

其他人为您编写了代码:

http://code.msdn.microsoft.com/Automatic-mapping-of-child-9df6db11

  

当您通过现有实体创建子实体时   如果实体映射,前端CRM 2011会自动映射某些字段   存在这种关系。但是当你创建子实体时   SDK没有任何反应。此示例尝试提供解决方案   这一点。

答案 1 :(得分:0)

听起来您需要查询元数据服务以检索必需的字段。

幸运的是,在2011年(或在2013年的情况下)使用UR12,您只能获得元数据中的更改并保持足够的性能。

http://msdn.microsoft.com/en-us/library/jj863599.aspx#BKMK_RetrieveJusttheMetadataYouNeed

答案 2 :(得分:0)

您必须使用InitializeFromRequest来实现此功能。

InitializeFromRequest initialize = new InitializeFromRequest();

// Set the target entity (i.e.,Contact)
initialize.TargetEntityName = "contact";

// Create the EntityMoniker of Source (i.e.,Account)
initialize.EntityMoniker = new EntityReference("account", new Guid("<GUID>"));

// Execute the request
InitializeFromResponse initialized = (InitializeFromResponse)orgService.Execute(initialize);

// Read Intitialized entity (i.e.,Contact with copied attributes from Account)
if (initialized.Entity != null)
{
// Get entContact from the response
Entity entContact = initialized.Entity;

// Set the additional attributes of the Contact
entContact.Attributes.Add("firstname", "abc");
entContact.Attributes.Add("lastname", "xyz");

// Create a new contact
orgService.Create(entContact);
}

https://rajeevpentyala.com/2017/01/26/create-a-child-record-by-copying-mapping-fields-from-parent-using-crm-sdk/