2017-06-21 142 views
1

我的機會表單上的字段的onChange事件被調用兩次,並且我試圖追蹤第二個調用的來源。我已經將執行上下文傳遞給了onChange函數,但不知道從那裏看到調用的來源。現在我想知道是否有辦法查看XRM頁面的未決事件,有人知道這些信息在哪裏嗎?在Dynamics CRM中查看onChange字段事件的源函數

我的代碼基本上是這樣,綁定到機會表格的onLoad。可能有插件或第三方庫或更新該字段的東西,但沒有任何內容跳出。

function onLoad() { 
    Xrm.Page.data.process.addOnStageChange(handleStageChange); 
} 

function handleStageChange() { 
    var dateFieldName = "new_enteredstage1" 
    var dateFieldAttr = Xrm.Page.getAttribute(dateFieldName); 
    if (dateFieldAttr) { 
     dateFieldAttr.setValue(new Date()); 
    } 
} 

如果在階段更改發生時new_enteredstage1爲null,則會發生2個調用,並且設置該值並立即將其重置爲空。如果new_enteredstage1具有值,則按預期更新該值。再次,可能會有一些第三方代碼丟失,但我不知道如何追蹤它。

UPDATE:

這只是發生在日期字段,它發生在所有日期字段。如果我用數字字段替換代碼,則該值不會重置爲空。

+0

從來沒有經歷過這一點,這CRM的版本是它,您可以在問題的事件處理程序? – Alex

+0

更新了問題以添加我的代碼。 Microsoft動態365 版本1612(8.2.1.207)(DB 8.2.1.207)在線 – CamJohnson26

+0

我會從複製函數(即,使handleStageChange,handleStageSelected)開始,以便添加兩個不同的處理程序,可能有助於追蹤發生了什麼 – Alex

回答

0

存在一個與「新」表單呈現引擎(Turbo Forms)相關的可能導致此問題的已知問題(example)。

您可以嘗試使用傳統的形式渲染引擎,看看它是否解決了這個問題: enter image description here

+2

該選項已棄用,不應使用,它不會「解決」它只是修復症狀的任何內容。這意味着從早期版本升級時購買一些時間來修復損壞的腳本 – Alex

+1

好主意,但沒有解決我的問題。這是在商機階段更改中觸發的現場更新。如果該字段爲空,則該值將被設置並立即重置爲空。如果有值,則按預期更新值。 – CamJohnson26

+2

@Alex我知道,但Turbo Forms仍然存在一些問題,這是幾個月前MS支持人員建議我的方法,當以編程方式(!!!)更改該字段值時,字段的OnChange事件被觸發三次。這只是對某些特定情況(無腳本錯誤)的解決方法,並非如此:)。 –

相關問題