Dynamics crm 2015在字段中设置值时出错

时间:2015-06-17 11:24:43

标签: dynamics-crm-2015

Dyanamics crm 2015 sp 1,抛出异常“无法获取未定义或空引用的属性'修剪'”设置查找值时。

  • CustomerId具有所有三个属性,即Id,Name和LogicalName
  • 字段“new_customerprofileid”也已填充,但setValue()函数抛出错误
  • 错误位置在global.ashx中,有一行b.trim通过错误。

代码:

var Entity = RetrieveEntityById(Id, "SalesOrder");
if (Entity != null) {
    var CustomerId = Entity.CustomerId;
    if (CustomerId != null)
        if (Xrm.Page.getAttribute("new_customerprofileid") != null)
            Xrm.Page.getAttribute("new_customerprofileid").setValue([{ id: CustomerId.Id, name: CustomerId.Name, entityType: CustomerId.LogicalName }]);
}

一个解决方法是在try catch块中放置行(.setValue(“”))。

 var Entity = RetrieveEntityById(Id, "SalesOrder");
    if (Entity != null) {
        var CustomerId = Entity.CustomerId;
        if (CustomerId != null)
            if (Xrm.Page.getAttribute("new_customerprofileid") != null)
                try {
                    Xrm.Page.getAttribute("new_customerprofileid").setValue([{ id: CustomerId.Id, name: CustomerId.Name, entityType: CustomerId.LogicalName }]);
                } catch (ex) { }

    }

如果有人针对此错误达成其他修正,请回答。

2 个答案:

答案 0 :(得分:0)

系统尝试修剪输入值,但其中至少有一个是null而不是字符串。我想这意味着setValue字典中提供的值之一为null:CustomerId.NameCustomerId.LogicalName。您可以排除这些数据集,或者您可能希望将其值设置为空字符串。

答案 1 :(得分:0)

我收到了同样的问题。在我的例子中,本机CRM .js试图在正在设置的查找值上访问名为“type”的属性,然后在其上调用.trim导致b.trim未定义。 “type”不是文档所说的需要设置的属性,所以我怀疑CRM javascript中存在一个错误,尽管试图找出其确切发生的原因很困难。

我已尝试将属性“type”设置为实体的对象类型代码,但这似乎会导致同样难以弄清楚的其他问题。

当我设置id,name和entityType时,我发现捕获异常是迄今为止最好的解决方案。我很可能会向MS提交一张票来看看这个问题。