Добрый день!
В опросе есть токены и ниже есть поля (показано на картинке), нужно сосчитать сколько всего токенов, сколько стартовавших и сколько финишировало. Нужно сделать именно плагин, вот этот код поставил на post-operation, но ошибка (прикрепил лог):
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xrm.Sdk;
using Bum.Survey.CRM.Plugin.BaseLib;
using Microsoft.Xrm.Sdk.Query;
namespace Bum.Survey.CRM.Plugin
{
public class SurveyAIU : IPlugin
{
public void Execute(IServiceProvider serviceProvider)
{
var process = new SurveyAIUProcess(serviceProvider);
process.LoadEntity();
if (!process.ValidateEntityName("bf_survey")) return;
if (!process.ValidateMessage(MessageName.Create, MessageName.Update)) return;
process.Run();
}
}
class SurveyAIUProcess : bf_PluginProcess
{
public override void Execute()
{
Entity survey = crmService.Retrieve(TargetEntity.LogicalName, TargetEntity.Id, new ColumnSet(true));
QueryExpression token = new QueryExpression()
{
EntityName = "bf_surveytoken",
ColumnSet = new ColumnSet(true)
};
token.Criteria.AddCondition("bf_surveytoken_survey", ConditionOperator.Equal, TargetKey.Id);
List<Entity> surveyTokens = crmService.RetrieveMultiple(token).Entities.ToList();
if (surveyTokens.Count > 0)
{
survey["bf_survey_tkcnt"] = surveyTokens.Count.ToString();
crmService.Update(survey);
}
}
public SurveyAIUProcess(IServiceProvider serviceProvider)
: base(serviceProvider)
{
}
}
}
Но в итоге вот такая хрень если к примеру меняю название опроса. Может есть другие варианты (но нужен именно плагин).