AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.06.2015, 16:49   #1  
Chapelain is offline
Chapelain
Участник
 
15 / 10 (1) +
Регистрация: 20.05.2015
Unified Service Desk - ошибка с EntityReference
Всем привет.

Установлена CRM2015 + Unified Service Desk.
Создаю интерес из сессии контакта, по образцу создания обращения в семпле.
Вызываю New_CRM_Page со следующими параметрами

Получаю ошибку



В трейсе - следующее:

[2015-06-24 16:44:45.655] Process: w3wp |Organization:6d4e2950-8d09-4ad1-b1a8-1efc4fac1b0b |Thread: 121 |Category: Application |User: 00000000-0000-0000-0000-000000000000 |Level: Error |ReqId: 0e2a794b-2681-4ee2-8ae1-59f427119a79 | ErrorInformation.LogError ilOffset = 0x17
>MSCRM Error Report:
--------------------------------------------------------------------------------------------------------
Error: Exception of type 'System.Web.HttpUnhandledException' was thrown.

Error Message: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Error Details: Exception of type 'System.Web.HttpUnhandledException' was thrown.

Source File: Not available

Line Number: Not available

Request URL:dyncrm2012/.../page.aspx;etc=4&firstname=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9&fullname=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9%20%D0%92%D0%B8%D0%BD%D0%BE%D0%B3%D1%80%D0%B0%D0%B4%D0%BE%D0%B2&lastname=%D0%92%D0%B8%D0%BD%D0%BE%D0%B3%D1%80%D0%B0%D0%B4%D0%BE%D0%B2&mobilephone=79859039090&pagemode=iframe&parentcontactid=%7bb06ea362-cfbd-e411-80ce-005056b54792%7d&parentcontactidtype=contact&theme=Outlook15White

Stack Trace Info: [InvalidOperationException: CRM Parameter Filter - Invalid parameter 'parentcontactidtype=contact' in Request.QueryString on page /DYNCRM/_forms/read/page.aspx
The raw request was 'GET /DYNCRM/_forms/read/page.aspx?emailaddress1=someone_g%40example.com&etc=4&firstname=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9&fullname=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9%20%D0%92%D0%B8%D0%BD%D0%BE%D0%B3%D1%80%D0%B0%D0%B4%D0%BE%D0%B2&lastname=%D0%92%D0%B8%D0%BD%D0%BE%D0%B3%D1%80%D0%B0%D0%B4%D0%BE%D0%B2&mobilephone=79859039090&pagemode=iframe&parentcontactid=%7bb06ea362-cfbd-e411-80ce-005056b54792%7d&parentcontactidtype=contact&theme=Outlook15White' called from http://dyncrm2012/DYNCRM/_common/err...er_lcid=1049.]
at Microsoft.Crm.Application.ParameterFilter.ValidateParameter(HttpRequest request, ArrayList parameterCollection, String key, String value, ParameterSources source, EntityType pageEntityType, FormAdditionalAllowedParameters additionalAllowedParameters)
at Microsoft.Crm.Application.ParameterFilter.ValidateParameters(Page page, EntityType pageEntityType, Boolean alwaysEnableParameterChecking, FormAdditionalAllowedParameters formAdditionalAllowedParametersTemp)
at Microsoft.Crm.Application.ParameterFilter.ValidateParameters(Page page, EntityType pageEntityType, FormAdditionalAllowedParameters formAdditionalAllowedParametersTemp)
at Microsoft.Crm.Application.Controls.AppPage.ValidatePageParameters()
at Microsoft.Crm.Application.Controls.AppPage.OnInit(EventArgs e)
at System.Web.UI.Control.InitRecursive(Control namingContainer)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

[HttpUnhandledException: Exception of type 'System.Web.HttpUnhandledException' was thrown.]
at System.Web.UI.Page.HandleError(Exception e)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
at System.Web.UI.Page.ProcessRequest()
at System.Web.UI.Page.ProcessRequest(HttpContext context)
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

Из лога понятно, что ругается на параметр "Invalid parameter 'parentcontactidtype=contact'", но это значение, я так понимаю формируется стандартной функцией EntityReference.

Что я делаю не так?
Заранее спасибо за помощь.
Старый 25.06.2015, 18:10   #2  
Гуревич Денис is offline
Гуревич Денис
Участник
Лучший по профессии 2009
 
228 / 67 (3) ++++
Регистрация: 04.08.2008
Адрес: Москва
Попробуйте вместо "parentcontactid" и "parentcontactidtype" использовать "customerid" и "customeridtype".
__________________
Опыт позволяет ошибаться гораздо увереннее.
Старый 29.06.2015, 10:59   #3  
Chapelain is offline
Chapelain
Участник
 
15 / 10 (1) +
Регистрация: 20.05.2015
Если использовать customerid - значение поля не появляется в интерфейсе. Необходимо заполнить именно родительский контакт. Из скрипта C# аналогичная конструкция работает без проблем.
Старый 29.06.2015, 12:06   #4  
Гуревич Денис is offline
Гуревич Денис
Участник
Лучший по профессии 2009
 
228 / 67 (3) ++++
Регистрация: 04.08.2008
Адрес: Москва
Цитата:
Сообщение от Chapelain Посмотреть сообщение
Если использовать customerid - значение поля не появляется в интерфейсе. Необходимо заполнить именно родительский контакт. Из скрипта C# аналогичная конструкция работает без проблем.
О, это уже интереснее! )
А можете продемонстрировать "скрипт" C#, в котором все работает?
__________________
Опыт позволяет ошибаться гораздо увереннее.
Старый 29.06.2015, 12:56   #5  
Chapelain is offline
Chapelain
Участник
 
15 / 10 (1) +
Регистрация: 20.05.2015
Да, обычный сreateRequest

if (!Row.CONTACTID_IsNull)
{
Guid _contact_id = new Guid(Row.CONTACTID);
if (_contact_id != Guid.Empty)
{
lead["parentcontactid"] = new EntityReference("contact", _contact_id);
}
}

В общем, если вырубить фильтр параметров, то после сохранения Интереса в USD значение в поле подтягивается корректно. Уж не знаю, почему так. Не может к несохраненной записи контакт подтянуть что ли.
Старый 29.06.2015, 13:31   #6  
Гуревич Денис is offline
Гуревич Денис
Участник
Лучший по профессии 2009
 
228 / 67 (3) ++++
Регистрация: 04.08.2008
Адрес: Москва
Цитата:
Сообщение от Chapelain Посмотреть сообщение
Да, обычный сreateRequest

if (!Row.CONTACTID_IsNull)
{
Guid _contact_id = new Guid(Row.CONTACTID);
if (_contact_id != Guid.Empty)
{
lead["parentcontactid"] = new EntityReference("contact", _contact_id);
}
}

В общем, если вырубить фильтр параметров, то после сохранения Интереса в USD значение в поле подтягивается корректно. Уж не знаю, почему так. Не может к несохраненной записи контакт подтянуть что ли.
Ну так, здесь нигде нет "parentcontactidtype", поэтому и работает без проблем.
А если в адресную строку этот параметр подставить, то он пытается такое поле найти на форме. А такого поля нет.
__________________
Опыт позволяет ошибаться гораздо увереннее.
Старый 29.06.2015, 15:15   #7  
Chapelain is offline
Chapelain
Участник
 
15 / 10 (1) +
Регистрация: 20.05.2015
Так-то я вас понял, спасибо)
Но в USD в это поле я также передаю EntityReference (см. первый скрин). И там он его воспринимает как parentcontactidtype и parentcontactid.

Возможно имеет смысл просто guid в это поле класть.
Старый 29.06.2015, 17:26   #8  
Гуревич Денис is offline
Гуревич Денис
Участник
Лучший по профессии 2009
 
228 / 67 (3) ++++
Регистрация: 04.08.2008
Адрес: Москва
Цитата:
Сообщение от Chapelain Посмотреть сообщение
Так-то я вас понял, спасибо)
Но в USD в это поле я также передаю EntityReference (см. первый скрин). И там он его воспринимает как parentcontactidtype и parentcontactid.

Возможно имеет смысл просто guid в это поле класть.
А что такое "первый скрин"? У Вас в изначальном сообщении вообще никаких скриншотов не видно.
__________________
Опыт позволяет ошибаться гораздо увереннее.
Старый 30.06.2015, 00:06   #9  
Chapelain is offline
Chapelain
Участник
 
15 / 10 (1) +
Регистрация: 20.05.2015

А так?
Мне тут разъяснили, что поскольку поле, которое заполняется является ссылочным тип N:1, то передавать в него значение нужно следующим образом:

primarycontactid=[[$Context.primarycontactid.id]+] – ID связанно записи
primarycontactidname=[[$Context.primarycontactid.name]+] – отображаемое имя записи

Спасибо за помощь.
Старый 30.06.2015, 11:20   #10  
Гуревич Денис is offline
Гуревич Денис
Участник
Лучший по профессии 2009
 
228 / 67 (3) ++++
Регистрация: 04.08.2008
Адрес: Москва
Цитата:
Сообщение от Chapelain Посмотреть сообщение

А так?
И так не видно. Вы видимо пытаетесь копи-пастом скрин вставить. А тут, наверное, только через кнопку "Вставить изображение" в редакторе сообщения получится.

Цитата:
Сообщение от Chapelain Посмотреть сообщение

Мне тут разъяснили, что поскольку поле, которое заполняется является ссылочным тип N:1, то передавать в него значение нужно следующим образом:
primarycontactid=[[$Context.primarycontactid.id]+] – ID связанно записи
primarycontactidname=[[$Context.primarycontactid.name]+] – отображаемое имя записи
Ну это USD-шные дела. USD - экзотика. По ней вряд ли кто-то что-то дельное подскажет. Но вопрос же был, почему CRM ругается на параметры, вот и пытался помочь.

Цитата:
Сообщение от Chapelain Посмотреть сообщение

Спасибо за помощь.
Да не за что же. ))
__________________
Опыт позволяет ошибаться гораздо увереннее.
Теги
usd, crm2015

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Ошибка при создании Hosted Control в Unified Service Desk Chapelain Dynamics CRM: Функционал 3 21.05.2015 13:52
msdyncomm: Microsoft Dynamics CRM Spring '14 Overview of Unified Service Desk Blog bot Dynamics CRM: Blogs 0 11.06.2014 11:11
Microsoft Dynamics CRM Team Blog: Impact of Dynamics CRM December 2012 Service Update and SharePoint Online Service Update on CRM-SharePoint Integration Blog bot Dynamics CRM: Blogs 0 09.01.2013 01:11
Gareth Tucker: Service Contracts & Service Scheduling in Microsoft CRM 2011 Blog bot Dynamics CRM: Blogs 0 13.07.2012 16:11
Danny Varghese: CRM 2011 Installing User/Service Account Permissions Blog bot Dynamics CRM: Blogs 0 18.05.2011 03:15
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 15:36.