我们刚刚将CRM Online 2015中的一个从CRM Online升级到CRM Online 2016.
虽然我可以看到其他功能正常工作,但在特定场景中我们有一个主要的显示阻止:
以下是来自页面加载期间调用的java脚本函数的代码:
function SetDefaultValuesInLookup()
{
Xrm.Page.getAttribute("new_applicationcontactid").setValue([{ id:
records.new_Contact.Id, name: records.new_Contact.Name, entityType: records.new_Contact.LogicalName }]);
........
Xrm.Page.getAttribute("new_applicationtype").setValue(1000002);
}
function ShowHideFields()
{
var applicationtype = Xrm.Page.getAttribute("new_applicationtype").getValue();
...............
}
总结SetDefaultValuesInLookup函数在表单中为查找字段“Application Contact Id”设置一个值,并根据某些条件设置“new_applicationtype”。
这两个函数在表单加载中注册,以便按顺序执行。 然而,问题是 - 有时SetDefaultValuesInLookup方法在执行第一个getAttribute值后突然终止,或者如果方法完成执行,那么我们在new_applicationtype字段中没有得到值。或者有时,这两种方法都能正常工作。
我尝试调试代码,并且可以看到我们每次都会获得Id,Name和LogicalName属性,因此在该级别没有问题。
我想知道CRM 2016中是否存在不支持的内容? 此外,此功能仍然完美适用于在线2015。
答案 0 :(得分:1)
尝试下面给出的代码,它对我有用
var object = new Array();
object[0] = new Object();
object[0].id = records.new_Contact.Id;
object[0].name = records.new_Contact.Name;
object[0].entityType = records.new_Contact.LogicalName;
Xrm.Page.getAttribute(fieldName).setValue(object);