Добрый день!
При создании Evaluating Object нужно чтобы наверху вместо Information, было название Object'a, так как после создания, если я поменяю Object на другой, то всё появляется, но мне вот нужно именно при создании. Ниже даю код плагина, делаю всё это на Post-operation, Create и Update.
Код:
public class EvalObjectsAIU : IPlugin
{
public void Execute(IServiceProvider serviceProvider)
{
var process = new EvalObjectsAIUProcess(serviceProvider);
process.LoadEntity();
if (!process.ValidateEntityName("bf_evaluatingobject")) return;
if (!process.ValidateMessage(MessageName.Update)) return;
process.Run();
}
}
class EvalObjectsAIUProcess : bf_PluginProcess
{
public override void Execute()
{
if (TargetEntity.Contains("regardingobjectid"))
{
string uniq = "";
int uniqLength = 1024;
Entity record = crmService.Retrieve(TargetEntity.LogicalName, TargetEntity.Id, new ColumnSet("subject", "regardingobjectid"));
if (record.Contains("regardingobjectid"))
{
uniq = record.GetAttributeValue<EntityReference>("regardingobjectid").Name;
RetrieveEntityRequest rerq = new RetrieveEntityRequest
{
LogicalName = record.GetAttributeValue<EntityReference>("regardingobjectid").LogicalName,
RetrieveAsIfPublished = true
};
RetrieveEntityResponse rers = (RetrieveEntityResponse)crmService.Execute(rerq);
uniq = rers.EntityMetadata.DisplayName.UserLocalizedLabel.Label + " " + "[" + uniq + "]";
}
if (!record.Contains("subject") || record["subject"].ToString() != uniq)
{
uniq = string.Format("{0}", uniq.Length > uniqLength ? (uniq.Substring(0, uniqLength - 3) + "...") : uniq);
record["subject"] = uniq;
crmService.Update(record);
}
}
Так же прикрепил картинки.