CRM 2011:在保存表单时PostRetrieve期间更新的字段不保存

时间:2011-08-31 19:44:03

标签: dynamics-crm-2011

我在PostAccountRetrieve中有一些代码(我删除了行):


Entity entity = (Entity)localContext.PluginExecutionContext.OutputParameters["BusinessEntity"];
Account account = entity.ToEntity();
...
account.test_TerminationDate = DateTime.SpecifyKind((DateTime)subscriber.TerminationDate, DateTimeKind.Local);
account.test_MaxPositions = subscriber.MaxLivePos;
account.test_Locked = subscriber.Locked;

entity.EntityState = Microsoft.Xrm.Sdk.EntityState.Changed;
...

表单上的字段由代码填写,但是,当用户按下“保存”时,它不会使用该帐户保存这些值。我认为设置EntityState会处理这个问题。我错过了什么?

1 个答案:

答案 0 :(得分:0)

我认为EntityState不会在Post Retrieve插件中为您提供帮助。我非常确定您的问题是CRM表单足够智能,只能提交实际更改的值。您正在“更改”Post Retrieve中的这些值,这会在表单加载时发生,因此表单不会认为这些值已更改,并且在您单击“保存”时不会提交它们。

解决方案是在表单load:

中使用此javascript
Xrm.Page.getAttribute(“test_TerminationDate”).setSubmitMode(“always”);
Xrm.Page.getAttribute(“test_MaxPositions”).setSubmitMode(“always”);
Xrm.Page.getAttribute(“test_Locked”).setSubmitMode(“always”);

这应该绕过CRM的“智能”,因此这些字段总是在保存时提交。

相关问题