簡體   English   中英

快速創建記錄后刷新記錄的字段值

[英]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,您可以訂閱一個網格刷新事件。 從那里您有幾個選擇。

  1. 在刷新事件中,您可以觸發rest調用以從服務器檢索值,然后更新表單上的值。 我也將禁用該字段的提交,因為您不希望客戶端更新它。
  2. 或-明確保存呼叫。 您要么必須確保表單有效,要么將所有必填字段更改為不再需要進行保存。 save事件將從數據庫返回更新后的值,並自動更新表單。

如果您以前從未打過電話,第一個選項可能會比較難,但是恕我直言,它是更好的選擇。

我能想到的最簡單的解決方案是通過向實體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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM