Показать сообщение отдельно
Старый 09.01.2008, 14:10   #1  
SeregaK is offline
SeregaK
Участник
 
76 / 21 (1) +++
Регистрация: 10.11.2006
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);

Может кто встречался с такой проблемой? Помогите, плз!