0
我有一個PostAccountRetrieve一些代碼(我已經刪除線)字段更新:CRM 2011:在PostRetrieve不保存時保存表單
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會照顧到這一點。我錯過了什麼?
感謝您的回答。你認爲有一種方法可以從插件中獲取這些表單屬性嗎?試圖將所有的代碼保存在一個地方。 – Wavel
不 - 你正在處理兩個不同的「層」。在客戶端表單甚至呈現之前,您的Retrieve插件正在服務器上運行,因此您的插件將沒有該表單的概念。 一個有趣的可能性是添加一個名爲「FieldsToForceSubmit」或類似的東西的第四個字段。在您的Retrieve插件中,將其設置爲其他3個字段的逗號分隔列表。然後在客戶端,編寫一些通用的Javascript,它們將遍歷這些字段並在其上設置setSubmitMode。這樣你至少不必維護客戶端代碼。 –
終於找到時間來嘗試您的解決方案。設置提交模式確實會告訴表單需要保存這些字段,但只有在手動更改了表單時纔會設置IsDirty標誌。任何想法解決這個問題? – Wavel