CRM Plug-in C#,如何在事件后根据另一个查找字段设置查找字段?

时间:2018-04-23 12:16:55

标签: c# plugins dynamics-crm crm xrm

我有一名自定义实体学生,每个学生都有一个部门,每个部门都属于一个校区(部门和校园都是查找字段)。

我要做的是创建一个新帐户并为他选择一个部门。

然后插件根据所选部门更改校园。

这是我的代码,有人可以向我解释我需要做的步骤。

class ClassName{
    \\ class content ...
}

1 个答案:

答案 0 :(得分:0)

我建议你在创建/更新事件前执行此操作,因此您可以在目标本身中设置campus属性,这将避免另一个service.Update。您只需从所选部门查询相应的校园,然后在目标实体中进行设置。

var context = serviceProvider.GetService(typeof(IPluginExecutionContext)) as IPluginExecutionContext;

Entity student = context.InputParameters["Target"] as Entity;

//get the department from target
EntityReference department = student.GetAttributeValue<EntityReference>("karam_department");

if (department != null)
{
//retrieve the campus from department
Entity deptEntity = service.Retrieve("karam_department", Department.Id, new ColumnSet("karam_campus"));

//set the campus attribute in target itself
student["karam_campus"] = deptEntity.GetAttributeValue<EntityReference>("karam_campus");

}