31.10.2008, 15:27 | #21 |
Участник
|
Повешусь скоро
Мало того что все в кучу в этой CRM - и java script, и C#, и ASP, и dll, и Web-services, так еще и через одно место Спасибо за разьяснение, буду знать где рыть... А то я с колаутами в 3.0 не работал, не знал что такой нюанс есть.
__________________
Сергей Осипов, MCTS:SQL Server 2005, ООО "Программные технологии", Самара Последний раз редактировалось sergeyjb; 31.10.2008 в 15:30. |
|
31.10.2008, 15:29 | #22 |
MCTS
|
Добро пожаловать в наш МИР !!!
__________________
|
|
05.11.2008, 13:22 | #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, ООО "Программные технологии", Самара |
|
05.11.2008, 14:22 | #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 |
|