Плагин CRM C#, Как установить поле поиска в соответствии с другим полем поиска в пост-событии?
У меня есть студент по индивидуальному заказу, у каждого студента есть отдел, и каждый отдел принадлежит кампусу (отдел и кампус являются полями поиска).
Я пытаюсь создать новую учетную запись и выбрать для него отдел.
Затем плагин меняет кампус в соответствии с выбранным отделом.
Это мой код, может кто-нибудь объяснить мне, какие шаги мне нужно сделать.
var context = serviceProvider.GetService(typeof(IPluginExecutionContext)) as IPluginExecutionContext;
Entity student = context.InputParameters["Target"] as Entity;
string Department = string.Empty;
if (student.Contains("karam_department"))
{
Department = student.GetAttributeValue<>("karam_department");
}
1 ответ
Решение
Я бы порекомендовал вам сделать это в пред-событии создания / обновления, поэтому вы можете установить атрибут кампуса в самой цели, это позволит избежать другого 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");
}