[英]Refreshing field value underlying record after quick creating record
我有一個實體表單(實體A),其中包含一個子網格以顯示另一個實體(實體B)的鏈接記錄,其中多個B記錄鏈接到一個A記錄。 通過單擊子網格上的“ +”圖標,將實體B的記錄鏈接到實體A,為實體B填寫快速創建表單並保存。 保存后,新創建的記錄B以記錄A:的形式出現在子網格中:均符合預期。
填寫實體B的快速創建表單時,需要填寫包含金額的字段。 保存后,服務器端插件將獲取鏈接到實體A的特定記錄的實體B的所有記錄,計算它們的所有金額的總和,並以實體A的記錄形式在字段中填充總金額。這也有效如預期的那樣,新計算的值存儲在數據庫中。 問題是在表格A上顯示總金額的字段不會刷新。 它繼續顯示與加載表單時相同的數量,並且僅在刷新整頁后才更新。 但是,每次鏈接實體B的新記錄時都會更新該值。 刷新頁面時,A上的值僅顯示為“新”值。
問題是用戶連續鏈接B的10多個記錄,而沒有刷新。 我們收到了使字段自動刷新的請求,但我不知道是否可以這樣做,因此:是否可以在保存時刷新(/重新渲染)實體A形式的字段實體B的事件? 我認為這必須用javascript完成,因為它是字段值的客戶端表示,並且字段值已正確存儲在數據庫中。
謝謝!
如果有幫助。 可以用C#完成。 您可以使用此處描述的邏輯制作插件。
該插件將使用插件注冊工具進行注冊。 您將必須為實體B添加兩個步驟。第一步是創建消息,第二步是更新。 對於第二步,您將僅選擇提交的amount
更新,因此僅在該提交的內容更新時才觸發。
也可以使用匯總字段來完成。 可以在單擊時進行更新,但是如果您足夠頻繁的話,還可以每12個小時進行一次自動更新。
我不知道如何使用JavaScript進行操作,但是我是CRM的新手,所以可能有人會出現這種類型的解決方案,我也很高興閱讀它。
使用JavaScript,您可以訂閱一個網格刷新事件。 從那里您有幾個選擇。
如果您以前從未打過電話,第一個選項可能會比較難,但是恕我直言,它是更好的選擇。
我能想到的最簡單的解決方案是通過向實體A的表單OnLoad
事件添加新處理程序來輪詢值。
然后,代碼將使用setTimeout
從REST API中不斷讀取字段的值,比較該字段的內容,如果更改了該字段,它將調用Xrm.Page.data.refresh
以異步方式重新加載表單,而無需重新加載整個頁面。
另一個(更好的IMHO)選項:升級到最新版本。 從2015 Update 1開始,子網格也具有OnLoad
事件:您只需調用Xrm.Page.data.refresh
即可處理該事件,而無需重復對服務器執行ping操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.