0

Dynaamics 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 }]);
}

一种解决方法是将 line( .setValue("") ) 放在 try catch 块中。

 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) { }

    }

如果有人对此错误进行了其他修复,请回答。

4

2 回答 2

0

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

于 2015-06-17T11:39:19.610 回答
0

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

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

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

于 2016-01-04T19:12:59.123 回答