|
|
#21 |
|
Участник
|
Повешусь скоро
![]() Мало того что все в кучу в этой CRM - и java script, и C#, и ASP, и dll, и Web-services, так еще и через одно место ![]() Спасибо за разьяснение, буду знать где рыть... А то я с колаутами в 3.0 не работал, не знал что такой нюанс есть.
__________________
Сергей Осипов, MCTS:SQL Server 2005, ООО "Программные технологии", Самара Последний раз редактировалось sergeyjb; 31.10.2008 в 15:30. |
|
|
|
|
#22 |
|
MCTS
|
Добро пожаловать в наш МИР !!!
__________________
|
|
|
|
|
#23 |
|
Участник
|
Артем, имея объект типа Moniker в плагине на удаление я оптимальным путем вытаскиваю значение пользовательского атрибута в следующем коде? Ничего по незнанию лишнего не написал тут? Первый раз такую вещь програмлю. Чтоб потом по одним и тем же граблям не ходить думая что это оптимальный код.
Код:
Moniker moniker = (Moniker)context.InputParameters[ParameterName.Target];
Guid accountId_read = moniker.Id;
ICrmService service_read = context.CreateCrmService(true);
TargetRetrieveDynamic target = new TargetRetrieveDynamic();
target.EntityId = accountId_read;
target.EntityName = EntityName.account.ToString();
Microsoft.Crm.Sdk.Query.ColumnSet cols = new Microsoft.Crm.Sdk.Query.ColumnSet(new string[] { "name", "new_sharepointdocumentlibrarytitle" });
RetrieveRequest retrieve = new RetrieveRequest();
retrieve.Target = target;
retrieve.ColumnSet = cols;
retrieve.ReturnDynamicEntities = true;
RetrieveResponse response = (RetrieveResponse)service_read.Execute(retrieve);
DynamicEntity retrievedEntity = (DynamicEntity)response.BusinessEntity;
string listName = retrievedEntity["new_sharepointdocumentlibrarytitle"].ToString();
__________________
Сергей Осипов, MCTS:SQL Server 2005, ООО "Программные технологии", Самара |
|
|
|
|
#24 |
|
Moderator
|
Боюсь, Сергей, как коддер я уже выпал из обоймы, но пару советов все же дам.
![]() Во первых, специализированные методы выполняются быстрее, чем Excecute. Обычно об этом можно не думать, но в случае плагина стоит заняться оптимизацией. Иными словами я использовал бы метод Retrieve вместо Excecute. Во вторых, данная функциональность, думаю, потребуется вам не один раз, так что имеет смысл вынести этот код в родительский класс. Иными словами сделать некий ANormalParameterPlugin : IPlugin, который бы корректно поддерживал интерфейс, но умел полиморфно вычитывать DE на основании Moniker.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. ![]() MS Certified Dirty Magic Professional
|
|
|
|
| За это сообщение автора поблагодарили: sergeyjb (1). | |
|
|
Похожие темы
|
||||
| Тема | Ответов | |||
| Быстродействие CrmService | 16 | |||
| Обращение к полю сущности | 28 | |||
| аутентификация crmService | 2 | |||
| Обращение! - Ответственный контакт? | 1 | |||
| Обращение: невозможно добавить Контракт | 2 | |||
|