|
![]() |
#1 |
Чайный пьяница
|
Добрый день.
Код написан корректно, но есть несколько ньюансов на которые я не мог не обратить внимания: 1. Зачем создаётся метадатасервис? 2. Зачем использовать везде Properties - и без них индексатор нормально работает. 3. Зачем при получении стандартной сущности использовать RetrieveMultipleRequest и работать с динамическими сущностями? RetrieveMultiple метод ICrmService прекрассно отработает. 4. Зачем без сложного выражения для поиска использовать QueryExpression - в данном случае QueryByAttribute был бы выгоднее. 5. Зачем для получения одного аттрибута передаёте AllColumns? ColumnSet с нужным полем - то что надо для этого случая. 6. При каждом вызове вебсервиса стоит обрабатывать SoapException - а то в случае возникновения исключения на клиенте получите нерепрезентабельное сообщение Server Was Unable To Process Request... я для такого случая использую следующий код: Код: try { //вызов сервиса } catch(SoapException e) { throw new InvalidPluginException(e.Detail.InnerText); }
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
|
За это сообщение автора поблагодарили: ShadowXXX (1). |
![]() |
#2 |
Участник
|
Следуя советам поиск заменил на
Код: QueryByAttribute QBY = newQueryByAttribute(); QBY.EntityName = "systemuser"; QBY.ColumnSet = newColumnSet(newstring[] { "systemuserid","fullname" }); QBY.Attributes = newstring[] { "title" }; QBY.Values = newstring[] { " call-" }; BusinessEntityCollection BEC = null; try { BEC = CrmService.RetrieveMultiple(QBY); } catch (System.Web.Services.Protocols.SoapException ex) { thrownewInvalidPluginExecutionException(" (plug-in Opps_price): " + ex.Message.ToString()); } string FN=""; foreach (systemuser tDE in BEC.BusinessEntities) { FN += (tDE.systemuserid + "=" + tDE.fullname + "\n"); } thrownewInvalidPluginExecutionException(FN); |
|
|
За это сообщение автора поблагодарили: a33ik (1). |
![]() |
#3 |
Чайный пьяница
|
Не так - вы получите всё тот же нечитабельный текст
Код: try { BEC = CrmService.RetrieveMultiple(QBY); } catch (System.Web.Services.Protocols.SoapException ex) { throw new InvalidPluginExecutionException(" (plug-in Opps_price): " + ex.Message.ToString()); } Код: try { BEC = CrmService.RetrieveMultiple(QBY); } catch (System.Web.Services.Protocols.SoapException ex) { throw new InvalidPluginExecutionException(" (plug-in Opps_price): " + ex.Detail.InnerText); }
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|