【发布时间】:2010-03-30 14:58:15
【问题描述】:
我为 Dynamics 4.0 编写了一个插件,用于在重新打开机会实体时更改选项列表的值。选项列表值已正确更新,但表单在关闭并重新打开之前不会显示。
这是我的插件:
public void Execute(IPluginExecutionContext context)
{
if (context.InputParameters.Properties.Contains("Target") &&
context.InputParameters.Properties["Target"] is DynamicEntity)
{
ICrmService service = context.CreateCrmService(false);
DynamicEntity entity = (DynamicEntity)context.InputParameters.Properties["Target"];
Key key = (Key)entity.Properties["opportunityid"];
DynamicEntity DynamicOpportunity = GetOpportunity(service, key.Value);
Picklist StageCodePicklist = (Picklist)DynamicOpportunity.Properties["salesstagecode"];
StageCodePicklist.IsNull = false;
StageCodePicklist.IsNullSpecified = false;
StageCodePicklist.name = "Advocating - Advanced (90%)";
StageCodePicklist.Value = 200004;
DynamicOpportunity.Properties["salesstagecode"] = StageCodePicklist;
service.Update(DynamicOpportunity);
}
}
我为 StageCodePicklist 上的属性分配的信息来自对数据库运行的以下查询:
select * from stringmap where attributename='salesstagecode'
重申,我重新打开了一个机会,salesstagecode 已正确更新,但表单显示旧值。关闭表单并重新打开它以获得相同的机会表明新值确实在数据库中。
我几乎想知道这是否是 CRM 的错误 - 表单肯定应该显示更新的值,而无需关闭并重新打开表单。但除此之外,我能做些什么来适应,这样用户就不必这样做来查看更新的值而不是旧的值?
【问题讨论】:
标签: c# dynamics-crm dynamics-crm-4