|
![]() |
#1 |
Участник
|
![]()
Подскажите пожалуйста, как из плагина добраться до нестандартных (созданных мной, типа 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 } Так вот, как имея salesorders.BusinessEntities[i] получить new_ordernumber сущности salesorder? |
|
![]() |
#2 |
Moderator
|
Вообще говоря, MS требует (именно требует) чтобы в плагинах использовался класс DynamicEntity. Среди его Propertys должно быть и ваше поле. Вы действительно делали что-то не так.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. ![]() ![]() |
|
![]() |
#3 |
Moderator
|
Ну, я не помню, чтобы именно "требовал"
![]() |
|
![]() |
#4 |
Moderator
|
Именно это я и имел в виду.
![]() ![]()
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. ![]() ![]() |
|
![]() |
#5 |
Участник
|
я бы с радостью действовал как 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, но вот где прочитать как его правильно составить? |
|
![]() |
#6 |
Moderator
|
Не удивительно, если вы заказывали SalesOrder а не DynamicEntity в запросе! У RetrieveMultipleRequest есть флаг ReturnDynamicEntities. Кроме того зачем делать такие запросы в плагине, если всю информацию по записи вы можете получить в InputParameters?
Читайте SDK, прежде чем задавать вопросы!!!
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. ![]() ![]() |
|
![]() |
#7 |
Участник
|
Артем, запросы такие делаю, чтобы просмотреть все нужные записи salesorder, а не только ту которая вызвала плагин (врядли все нужные salesorder будут в InputParameters).
SDK читаю, но ответов там не нашел (возможно недостаточно хорошо копаю там). Попробую организовать запрос через RetrieveMultipleRequest с указанным параметром ... |
|
![]() |
#8 |
Moderator
|
Сдается мне, что вы опять поднимаете вопрос об авто нумерации.
![]()
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. ![]() ![]() |
|
![]() |
#9 |
Участник
|
:-) решать я его буду сам с учетом специфики навязанной сверху, вообщем уже решил, благодаря вашей подсказке. RetrieveMultipleRequest и ReturnDynamicEntities как раз то "что доктор прописал" :-) всё заработало! Спасибо за помощь
|
|
![]() |
#10 |
Участник
|
код выложите плз
|
|
![]() |
#11 |
Участник
|
Код: 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 |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|