1

我们刚刚升级了动态CRM实例之一,从CRM在线2015年CRM在线2016年问题在一些JavaScript的升级到Dynamics 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功能设置一个值的厕所kup字段中的“Application Contact Id”,并根据某些条件设置“new_applicationtype”。

这两个函数都是以表单加载的形式注册才能按顺序执行。然而,问题在于 - 有时,方法SetDefaultValuesInLookup在执行第一个getAttribute值后突然终止,或者如果该方法完成其执行,那么我们不会在new_applicationtype字段中获取值。或者有时候,这两种方法都能正常工作。

我试着调试代码,并且可以看到我们正在获取Id,Name和LogicalName属性每次都得到填充,所以在该级别没有问题。

我想知道是否有什么东西在CRM 2016中不受支持? 另外此功能还完美地工作在2015年在线

+1

你有什么记录到控制台?错误可能是?通常情况下,“事物”似乎有时会正常工作,因为错误通常是由数据引起的(意味着代码不检查空值)等。 – dynamicallyCRM

+0

听起来像是一种竞争条件。你是如何通过菜单或代码注册你的onload函数的?如果后者是真的,你可以在这里分享这个代码吗?另外,您是否在其他浏览器(Chrome,Firefox)中获得了相同的不可预知的结果? –

回答

1

尝试用下面给出的代码,它为我工作

var object = new Array(); 
 
\t \t object[0] = new Object(); 
 
\t \t object[0].id = records.new_Contact.Id; 
 
\t \t object[0].name = records.new_Contact.Name; 
 
\t \t object[0].entityType = records.new_Contact.LogicalName; 
 
\t \t Xrm.Page.getAttribute(fieldName).setValue(object);

相关问题