|
![]() |
#1 |
Участник
|
код в студию
__________________
Читайте SDK!!! |
|
![]() |
#2 |
Участник
|
X++: protected void Page_Load(object sender, EventArgs e) { const string DOMAIN = "..."; const string USER = "..."; const string PASS = "..."; const string ORG_NAME = "..."; const string CRM_SERVER_URL = "http://.../" + ORG_NAME; var eventId = new Guid("044220DB-1230-DE11-9DEE-00304894FA2D"); const string EVENT_ENTITY_NAME = "new_event"; const string ATTR_NAME = "new_startdate"; var eventColumns = new ColumnSet(new[] { ATTR_NAME }); var query = new QueryExpression("new_event") { ColumnSet = eventColumns, Criteria = new FilterExpression { FilterOperator = LogicalOperator.And } }; var condition = new ConditionExpression("new_eventid", ConditionOperator.Equal, new object[] { eventId }); query.Criteria.Conditions.Add(condition); var queryString = @" <fetch mapping='logical' version='1.0'> <entity name='new_event'> <attribute name='new_startdate' /> <filter> <condition attribute='new_eventid' operator='eq' value='" + eventId + @"' /> </filter> </entity> </fetch>"; DateTime date; using (var service = CreateDllCrmService(CRM_SERVER_URL, ORG_NAME, DOMAIN, USER, PASS)) { var @event = service.Retrieve(EVENT_ENTITY_NAME, eventId, eventColumns); date = @event.GetAttributeValue<DateTime>(ATTR_NAME); var events = service.RetrieveMultiple(query); date = events.Entities[0].GetAttributeValue<DateTime>(ATTR_NAME); events = service.RetrieveMultiple(new FetchExpression(queryString)); date = events.Entities[0].GetAttributeValue<DateTime>(ATTR_NAME); } { var client = CreateOrganizationServiceClient(DOMAIN, USER, PASS); var @event = client.Retrieve(EVENT_ENTITY_NAME, eventId, eventColumns); date = @event.GetAttributeValue<DateTime>(ATTR_NAME); var events = client.RetrieveMultiple(query); date = events.Entities[0].GetAttributeValue<DateTime>(ATTR_NAME); events = client.RetrieveMultiple(new FetchExpression(queryString)); date = events.Entities[0].GetAttributeValue<DateTime>(ATTR_NAME); client.Close(); } { var context = CreateOrganizationDataServiceContext(CRM_SERVER_URL, ORG_NAME, DOMAIN, USER, PASS); var events = (from evt in context.New_EventSet where evt.New_EventId == eventId select evt).ToArray(); date = events[0].New_StartDate.Value; } } private OrganizationServiceProxy CreateDllCrmService(string crmServerUrl, string orgName, string domain, string user, string pass) { var serverAndOrgName = crmServerUrl.EndsWith(orgName) ? crmServerUrl : crmServerUrl + "/" + orgName; var orgServiceUri = new Uri(serverAndOrgName + "/XRMServices/2011/Organization.svc"); var orgConfiguration = ServiceConfigurationFactory.CreateConfiguration<IOrganizationService>(orgServiceUri); var credentials = new ClientCredentials(); credentials.Windows.ClientCredential = new NetworkCredential(user, pass, domain); return new OrganizationServiceProxy(orgConfiguration, credentials); } private OrganizationServiceClient CreateOrganizationServiceClient(string domain, string user, string pass) { var client = new OrganizationServiceClient(); client.ClientCredentials.UserName.UserName = domain + @"\" + user; client.ClientCredentials.UserName.Password = pass; return client; } private atcContext CreateOrganizationDataServiceContext(string crmServerUrl, string orgName, string domain, string user, string pass) { var serverAndOrgName = crmServerUrl.EndsWith(orgName) ? crmServerUrl : crmServerUrl + "/" + orgName; var context = new atcContext(new Uri(String.Format("{0}/xrmservices/2011/organizationdata.svc/", serverAndOrgName), UriKind.Absolute)) { Credentials = new NetworkCredential(user, pass, domain) }; return context; } Во всех случаях возвращается дата в UTC, о чем говорит свойство Kind даты, а также сверка с тем, что реально храниться в SQL. |
|
![]() |
#3 |
Участник
|
__________________
Читайте SDK!!! |
|
![]() |
#4 |
Участник
|
|
|
![]() |
#5 |
Участник
|
У того юзера с полномочиями которого вы обращаетесь к серверу?
__________________
Читайте SDK!!! |
|
![]() |
#6 |
Участник
|
Именно про него я и говорил.
Последний раз редактировалось ZooY; 27.03.2012 в 22:34. |
|
![]() |
#7 |
Участник
|
У меня именно FormatedValues возвращает в нужном time zone всё остальное в UTC
__________________
Читайте SDK!!! |
|
Теги |
crm2011 |
|
|