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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.11.2008, 22:01   #1  
zhenek is offline
zhenek
Участник
 
133 / 10 (1) +
Регистрация: 01.02.2007
? Доступ к новым полям сущности в плагине...
Подскажите пожалуйста, как из плагина добраться до нестандартных (созданных мной, типа new_ordernumber) полей сущности?
Именно, есть код, который должен возвращать коллекцию объектов salesorder
Код:
//тут формируется запрос
            Microsoft.Crm.Sdk.BusinessEntityCollection salesorders =  service.RetrieveMultiple(query);
            salesorder oSalesorder;

            for (int i = 0; i < salesorders.BusinessEntities.Count; i++)
            {
                oSalesorder = (salesorder)salesorders.BusinessEntities[i];
                //тут надо сделать набор действий с полем oSalesorder.new_ordernumber
            }
собственно запрос работает, получает нужную коллекцию, к другим стандартным полям обращается, но к новому ругается ещё на этапе компиляции :-(. Махинации с DynamicEntity не дали положительного результата, видимо что-то не так делал.
Так вот, как имея salesorders.BusinessEntities[i] получить new_ordernumber сущности salesorder?
Старый 10.11.2008, 22:09   #2  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Вообще говоря, MS требует (именно требует) чтобы в плагинах использовался класс DynamicEntity. Среди его Propertys должно быть и ваше поле. Вы действительно делали что-то не так.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 10.11.2008, 23:02   #3  
AndreyS is offline
AndreyS
Moderator
Сотрудники Microsoft Dynamics
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
283 / 61 (3) ++++
Регистрация: 18.05.2006
Ну, я не помню, чтобы именно "требовал" - "It is strongly recommended that...". Иногда легче в плагине сделать ссылку на web сервис (например, для доступа к собственным объектам и атрибутам), но учтите, что можно столкнуться, к примеру, с проблемой разных типов (из подключаемых библиотек и из сервиса).
Старый 11.11.2008, 08:47   #4  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Именно это я и имел в виду. Когда MS что-то очень-очень строго советует - лучше не спорить.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 11.11.2008, 09:16   #5  
zhenek is offline
zhenek
Участник
 
133 / 10 (1) +
Регистрация: 01.02.2007
я бы с радостью действовал как Microsoft велит, но не знаю как правильно, делал так:
Код:
            Microsoft.Crm.Sdk.BusinessEntityCollection salesorders =  service.RetrieveMultiple(query);
            DynamicEntity oSalesorder;

            for (int i = 0; i < salesorders.BusinessEntities.Count; i++)
            {
                oSalesorder = (DynamicEntity)salesorders.BusinessEntities[i];
и получал такой ответ
Unable to cast object of type 'Microsoft.Crm.SdkTypeProxy.salesorder' to type 'Microsoft.Crm.Sdk.DynamicEntity'
и чё делать? Видимо для Crm.Sdk нужен какой-тодругой запрос на получение набора Microsoft.Crm.Sdk.BusinessEntityCollection, но вот где прочитать как его правильно составить?
Старый 11.11.2008, 09:48   #6  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Не удивительно, если вы заказывали SalesOrder а не DynamicEntity в запросе! У RetrieveMultipleRequest есть флаг ReturnDynamicEntities. Кроме того зачем делать такие запросы в плагине, если всю информацию по записи вы можете получить в InputParameters?
Читайте SDK, прежде чем задавать вопросы!!!
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 11.11.2008, 12:29   #7  
zhenek is offline
zhenek
Участник
 
133 / 10 (1) +
Регистрация: 01.02.2007
Артем, запросы такие делаю, чтобы просмотреть все нужные записи salesorder, а не только ту которая вызвала плагин (врядли все нужные salesorder будут в InputParameters).
SDK читаю, но ответов там не нашел (возможно недостаточно хорошо копаю там).
Попробую организовать запрос через RetrieveMultipleRequest с указанным параметром ...
Старый 11.11.2008, 13:11   #8  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Сдается мне, что вы опять поднимаете вопрос об авто нумерации.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 11.11.2008, 16:55   #9  
zhenek is offline
zhenek
Участник
 
133 / 10 (1) +
Регистрация: 01.02.2007
:-) решать я его буду сам с учетом специфики навязанной сверху, вообщем уже решил, благодаря вашей подсказке. RetrieveMultipleRequest и ReturnDynamicEntities как раз то "что доктор прописал" :-) всё заработало! Спасибо за помощь
Старый 12.11.2008, 06:40   #10  
Bakai Madybaev is offline
Bakai Madybaev
Участник
 
201 / 16 (1) ++
Регистрация: 22.04.2008
код выложите плз
Старый 13.11.2008, 11:48   #11  
zhenek is offline
zhenek
Участник
 
133 / 10 (1) +
Регистрация: 01.02.2007
Код:
            Microsoft.Crm.Sdk.Query.QueryExpression query = new Microsoft.Crm.Sdk.Query.QueryExpression();
            query.ColumnSet = cols;
            query.EntityName = EntityName.salesorder.ToString();
            query.Criteria = filter;

            RetrieveMultipleRequest rmr = new RetrieveMultipleRequest();
            rmr.ReturnDynamicEntities = true;
            rmr.Query = query;

            RetrieveMultipleResponse rmResp = (RetrieveMultipleResponse)service.Execute(rmr);

            Microsoft.Crm.Sdk.BusinessEntityCollection salesorders = rmResp.BusinessEntityCollection;
            DynamicEntity oSalesorder;

            for (int i = 0; i < salesorders.BusinessEntities.Count; i++)
            {
                oSalesorder = (DynamicEntity)salesorders.BusinessEntities[i];
                //((CrmNumber)oSalesorder.Properties["new_ordernumber"]).Value;

            }
Теги
plugin, businessentity

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как получить значение поля одной сущности при обработке формы другой сущности zhenek Dynamics CRM: Разработка 25 05.07.2011 16:19
Присвоение одного атрибута сущности значения другого атрибута связанной сущности vital.mih Dynamics CRM: Функционал 38 08.09.2010 10:53
Как создать экземпляр кастомной сущности через SOAP? Tony Green Dynamics CRM: Разработка 7 27.02.2009 08:37
Обращение к полю сущности MFCшный Wizard Dynamics CRM: Разработка 28 12.02.2009 14:35
Доступ к полям сущностей Maxoon Dynamics CRM: Функционал 2 11.01.2008 15:15

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

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

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