Цитата:
Сообщение от
a33ik
Вот что я написал:
Код:
//получение контекста
IContextService contextService = (IContextService)executionContext.GetService(typeof(IContextService));
IWorkflowContext workflowContext = contextService.Context;
//Без этой строки не работало RetrieveResponse)service.Execute(retrieve);
ICrmService service = contextService.Context.CreateCrmService(false);
//Получаем идентификатор записи, породившей запуск бизнес-процесса
Guid _entityid = workflowContext.PrimaryEntityId;
string _entitytype = workflowContext.PrimaryEntityName;
//указываем, какие атрибуты надо получить из CRM
ColumnSet cols = new ColumnSet();
cols.AddColumns(new string[] {"new_url"});
//Указываем ID записи, у которой надо получить атрибуты
TargetRetrieveDynamic targetRetrieve = new TargetRetrieveDynamic();
targetRetrieve.EntityId = _entityid;
//устанавливаем свойства метода RetrieveResponse
RetrieveRequest retrieve = new RetrieveRequest();
retrieve.Target = targetRetrieve;//из какой записи берем
retrieve.ColumnSet = cols;//что берем
retrieve.ReturnDynamicEntities = true;//о_О
RetrieveResponse retrieved = (RetrieveResponse)service.Execute(retrieve);
Собственно вот...теперь по порядку:
1. Не уверен в этой строке:ICrmService service = contextService.Context.CreateCrmService(false);. Точнее говоря не совсем понял зачем она, но без нее не работало (RetrieveResponse)service.Execute(retrieve);
2. Как я понял значение поля "new_url" будет хранить переменная retrieved? Или я еще ничего не получил?
3. Можно ли писать так cols.AddColumns(new string[] {"new_url", "new_comment"}); для передачи сразу всех атрибутов, и если да, то как потом поотдельности их выдирать?