Microsoft Dynamics CRM 2011中,Lookup字段的赋值
??? 在微軟CRM中,有一種名為“查找”類型的字段,以代表子表中的外鍵字段,這種字段,被稱為查找類型字段,lookup字段,或者EntityReference字段。該字段的數(shù)據(jù)類型是Guid——Microsoft Dynamics CRM中,數(shù)據(jù)表的主鍵的數(shù)據(jù)類型是Guid類型的。
??? 在MS CRM平臺層,查找類型字段包含三方面的信息:
- 第一,Guid值,即主表的主鍵值;
- 第二,name值,即主表的主字段的值。所謂主字段信息,就是一條數(shù)據(jù)記錄的摘要描述,例如客戶實體的“name”字段——客戶名稱、系統(tǒng)用戶實體的“fullname”字段——系統(tǒng)用戶的全名,等等字段,都是主字段信息;
- 第三,實體類型entityType,即當(dāng)前外鍵鏈接的數(shù)據(jù)表信息,當(dāng)然了,在Dynamics CRM平臺范疇內(nèi),應(yīng)該叫做實體名稱;
??? 基于以上的解釋,我們就可以了解,和查找類型字段打交道時,需要:
- 獲取查找類型字段值時,可以從該字段值中解析出Guid、name以及entityType;
- 在為查找類型字段賦值時,需要將Guid、name以及entityType三個值拼裝起來,而后賦值給查找類型字段;
??? 樣例代碼如下:
//讀取電話聯(lián)絡(luò)表單中的“負(fù)責(zé)人”字段值
1: var owner = Xrm.Page.getAttribute("ownerid"); 2: if (owner == null) 3: return; 4: else 5: owner = owner.getValue(); 6: ? 7: if (owner == null) 8: return; 9: ? 10: var ownerId = owner[0].id; 11: var ownerName = owner[0].name; 12: var ownerEntityType = owner[0].entityType; 13: ? 14: var alertMsg = "當(dāng)前記錄的負(fù)責(zé)人ID:" + ownerId + "\r\t" + 15: "當(dāng)前記錄的負(fù)責(zé)人名字:" + ownerName + "\r\t" + 16: "當(dāng)前記錄的負(fù)責(zé)人的實體類型:" + ownerEntityType; 17: ? 18: alert(alertMsg);可以在“電話聯(lián)絡(luò)”表單的OnLoad事件中,執(zhí)行上述代碼,以驗證效果。
??? 某些表單的查找字段,可以允許關(guān)聯(lián)多條記錄,例如電話聯(lián)絡(luò)表單中的“接聽人”字段。而正是由于這種字段的存在,所以才有了上面代碼中使用owner[0]去獲取數(shù)據(jù)值的代碼。換而言之,無論是允許單選,還是允許多選,都是一個查找類型字段,為了滿足兩種情況,查找類型字段使用了數(shù)組去承載該字段所關(guān)聯(lián)的數(shù)據(jù)記錄,每個數(shù)組元素對應(yīng)一個關(guān)聯(lián)的數(shù)據(jù)記錄,每條數(shù)據(jù)記錄中包含有三部分信息,即id、name以及entityType。
??? 故此,在進(jìn)行允許關(guān)聯(lián)多條記錄的查找字段進(jìn)行操作的時候,就是拼裝一個數(shù)組,每個數(shù)組元素對應(yīng)一個關(guān)聯(lián)記錄,每個元素有三個屬性:id、name以及entityType。樣例代碼如下:
//魏電話聯(lián)絡(luò)表單中的“接聽人”字段賦值
?
1: if (typeof(daemonlin) == "undefined") { 2: daemonlin = {}; 3: } 4: ? 5: if (typeof(daemonlin.PhoneCall) == "undefined") { 6: daemonlin.PhoneCall = {}; 7: } 8: ? 9: daemonlin.PhoneCall.Form = 10: { 11: onLoadHander: function () { 12: var toValue = new Array(); 13: toValue[0] = new Object(); 14: toValue[0].id = "8C8BEEC7-CAFC-E011-A7EB-0800273C14DE"; 15: toValue[0].entityType = "account"; 16: toValue[0].name = "小林商店 (示例)"; 17: ? 18: toValue[1] = new Object(); 19: toValue[1].id = "3E0AD1DF-3359-E111-9BFB-0800273C14DE"; 20: toValue[1].entityType = "account"; 21: toValue[1].name = "test"; 22: ? 23: Xrm.Page.getAttribute("to").setValue(toValue); 24: } 25: }轉(zhuǎn)載于:https://www.cnblogs.com/StoneGarden/archive/2012/08/06/2625224.html
總結(jié)
以上是生活随笔為你收集整理的Microsoft Dynamics CRM 2011中,Lookup字段的赋值的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 生成Rss聚合页xml内容信息
- 下一篇: 统计函数——汇总统计时间类数据