02.04.2014, 17:47 | #1 |
Участник
|
При создании генерировать идентификатор
Добрый день!
При создании 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); } } |
|