升级到 Dynamics CRM Online 2016 后某些 javascript 中的问题

Issues in some javascripts after upgrading to Dynamics CRM Online 2016

我们刚刚将我们的一个 Dynamics CRM 实例从 CRM Online 2015 升级到 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 不支持的内容? 此外,此功能在 Online 2015 中仍然完美运行。

尝试使用下面给出的代码,它对我有用

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);