Плагин 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");

}
Другие вопросы по тегам