Цитата:
Сообщение от
a33ik
Мда. Зачем таким образом плагины писать - мне умом не понять (хотя я в CRM пришёл из мира ООП и немного в этом понимаю), но то ваше дело.
Суть в чём - как я и писал у вас не заполняется _entity. И соответственно проперти TargetEntity отдаёт null. Отсюда и ошибка.
А вообще - учитесь дебажить плагины через VS.
Вроде и preimage сделал, в коде тож добавил, но ругается так и так на ту же ошибку...
X++:
if (executionContext.MessageName == MessageName.Delete)
{
if (executionContext.PreEntityImages.Contains("Target") && executionContext.PreEntityImages["Target"] is Entity)
{
Entity preMessageImage = (Entity)executionContext.PreEntityImages["Target"];
QueryExpression surveyz = new QueryExpression()
{
EntityName = "bf_survey",
ColumnSet = new ColumnSet(true)
};
surveyz.Criteria.AddCondition("bf_surveyid", ConditionOperator.Equal, preMessageImage.GetAttributeValue<EntityReference>("bf_surveytoken_survey").Id);
List<Entity> surveylists = crmService.RetrieveMultiple(surveyz).Entities.ToList();
foreach (var surveylist in surveylists)
{
QueryExpression token = new QueryExpression()
{
EntityName = "bf_surveytoken",
ColumnSet = new ColumnSet(true)
};
token.Criteria.AddCondition("bf_surveytoken_survey", ConditionOperator.Equal, surveylist.Id);
List<Entity> surveyTokens = crmService.RetrieveMultiple(token).Entities.ToList();
surveylist["bf_survey_tkcnt"] = surveyTokens.Count - 1;
crmService.Update(surveylist);
}
}
}
Я хоть на правильном пути?