09.01.2008, 14:10 | #1 |
Участник
|
RetriveMultiple in Callout (CrmDateTime)
Почему в Callout при получении одной и той же записи с помощью методов service.Execute(RetrieveRequest) и service.RetrieveMultiple(QueryExpression) все даты, которые хранятся в этой записи, в первом случае будут преобразованы к локальному времени пользователя, от имени которого работает сервис, а во втором случае нет? При этом только в колаут, т.к. например, при получении записи методом service.RetrieveMultiple(QueryExpression) с собственной странички даты преобразуются к локальному времени пользователя. Это баг, фича или проблемы с моим недопониманием?
Ниже приведён код, который используется в колаут: //создаём сервис, который позволит работать с объектами с соответствующими правами CrmServiceservice = newCrmService(); service.Credentials = System.Net.CredentialCache.DefaultCredentials; service.CallerIdValue = new CallerId(); service.CallerIdValue.CallerGuid = userContext.UserId; //получаемданныеотранзакции TargetRetrieveNew_TransactionJournal targetGetTJ =new TargetRetrieveNew_TransactionJournal(); targetGetTJ.EntityId = entityContext.InstanceId; RetrieveRequest getTJ = new RetrieveRequest(); getTJ.Target = targetGetTJ; ColumnSet transColSet=new ColumnSet(); transColSet.Attributes=new string[]{"new_transactiondatetime","new_action","new_crater_stage","new_spstage","new_finance"}; getTJ.ColumnSet = transColSet; RetrieveResponse BusinessEntityTJ = (RetrieveResponse)service.Execute(getTJ); //Получаем коллекцию всех транзакций QueryExpression Q = new QueryExpression(); Q.EntityName = EntityName.new_transactionjournal.ToString(); Q.ColumnSet = new AllColumns(); BusinessEntityCollection Collect=service.RetrieveMultiple(Q); Может кто встречался с такой проблемой? Помогите, плз! |
|
11.01.2008, 14:59 | #2 |
Участник
|
Ну не ужели никто не сталкивался с этой проблемой?
Немного изменённая формулировка проблемы с Callout: При отсутствии нижеприведённых строк кода (для идентификации пользователя от имени которого выполняются методы CrmService) service.CallerIdValue = new CallerId(); service.CallerIdValue.CallerGuid = userContext.UserId; методы service.Execute(RetrieveRequest) и service.RetrieveMultiple(QueryExpression) возврашают записи даты в которых не будут преобразованны к локальному времени пользователя, что вполне естественно, так и должно быть. А вот при наличии этих строк даты должны преобразовываться к локальному времени указанного пользователя. И действительно использование метода service.Execute(RetrieveRequest) возврашает запись даты в которой преобразованы к локальному времени, а вот метод service.RetrieveMultiple(QueryExpression) не выполняет такого преобразования! Почему так? Plz, HELP me! |
|
|
Похожие темы | ||||
Тема | Ответов | |||
Не работает Callout после апгрейда до CRM 4.0 | 1 | |||
Как запустить CallOut | 0 | |||
CallOut в CampaignItem | 0 | |||
Callout | 7 | |||
Использование Callout | 1 |
|