0

我使用Xrm.Utility.openEntityForm來克隆記錄。當我撥打openEntityForm時,我需要將一組屬性複製到新表單中。您可以通過傳入填充了原始表單上屬性值的parameters對象來完成此操作。Javascript - Dynamics CRM Online - 通過openEntityForm將查詢字段值傳遞給表單

我的問題是:如何將查找字段的值作爲參數對象中的參數傳遞?我有一個名爲「部門」查找字段 - 我得到的原始值是這樣的:

var department = parent.Xrm.Page.getAttribute("new_departmentid").getValue();

要設置字段的值在克隆的記錄,我最初創建一個參數對象 - var parameters = {}; - - 我設置的值對於這樣的查找字段 - 獲取傳遞到openEntityForm方法

parameters["new_departmentid"] = department[0].id;

的參數對象。這可以設置新窗體部門字段的值,但該字段顯示「(No Name)」。

我試圖做這樣的事情:

parameters["new_departmentid"] = { id: department[0].id, name: department[0].name, entityType: "new_department" };

但沒有工作,我得到的錯誤說parameter["new_departmentid"]預計「唯一ID」的數據類型。

我該如何使用這個方法來正確填充查找字段?謝謝你的幫助。

回答

1

我有一個不使用openEntityForm的克隆函數,它只是構造一個URL,然後調用window.open。但它應該是一樣的。您可以通過創建三個獨立的參數傳遞查找值:

  1. 一個使用領域的id +「姓名」
  2. 一個使用類型,使用領域的ID
  3. 一個名字的ID字段的id +「type」。

這應該爲你工作:

parameters["new_departmentid"] = department[0].id; 
parameters["new_departmentidname"] = department[0].name; 
parameters["new_departmentidtype"] = department[0].entityType; 

獎金:請注意,對於查找,只能採取一個實體類型,則可以省略類型參數。只有在將值傳遞給可以採用多種類型的所有者或客戶等查找時才需要。省略該參數將允許您在達到約2k個字符的URL限制之前傳遞更有價值的信息。

+0

謝謝!這工作。我可以問你如何做你的克隆版本?我預見到可能會遇到一個問題,就是我按照這種方式來限制URL限制。您的解決方案是否解決了這個問題? –

+0

不客氣。呃,我不需要那麼強大。只是省略了某些字段,這些字段沒有意義發送到創建表單,例如createdon,created,modifiedon等等。還有我在答案中提到的那種類型的遺漏。 – Polshgiant

相關問題