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

Одно исправление состоит в том, чтобы поместить строку ( .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) { }

    }

Пожалуйста, ответьте, если кто-нибудь доберется до другого исправления этой ошибки.


person Siddique Mahsud    schedule 17.06.2015    source источник
comment
Какой интернет-браузер вы используете и какой версии?   -  person Henk van Boeijen    schedule 17.06.2015
comment
Вы уверены, что у CustomerId есть поля, которые вы ожидаете от него?   -  person Henk van Boeijen    schedule 17.06.2015
comment
Чтобы ответить на этот вопрос, необходим образец данных (и некоторый контекст выполнения, а также: откуда берутся данные?).   -  person Alex    schedule 17.06.2015


Ответы (2)


Система пытается обрезать входные значения, но по крайней мере одно из них было null, а не строкой. Я предполагаю, что это означает, что одно из значений, представленных в словаре setValue, равно нулю: либо CustomerId.Name, либо CustomerId.LogicalName. Вы можете исключить эти наборы данных или установить для них пустую строку.

person Risadinha    schedule 17.06.2015
comment
Мне кажется, правильный ответ, кто-нибудь, кто проголосовал против, хочет поделиться мыслями? - person AlexPawlak; 18.06.2015

Я получил эту же проблему. В моем случае собственный CRM .js пытается получить доступ к свойству с именем «тип» в устанавливаемом значении поиска, а затем вызывает для него .trim, что приводит к тому, что b.trim не определен. «тип» не является свойством, которое, как говорится в документации, должно быть установлено, поэтому я подозреваю ошибку в javascript CRM, хотя попытка точно отследить, почему это происходит, была сложной.

Я попытался установить для свойства "type" код типа объекта объекта, однако это, похоже, вызывает другие проблемы, которые так же трудно понять.

Поскольку я устанавливаю идентификатор, имя и тип сущности, я обнаружил, что перехват исключения был лучшим решением до сих пор. Скорее всего, я отправлю билет в MS, чтобы взглянуть на проблему.

person MeyC    schedule 04.01.2016