2013-03-08 2 views
2

Im возникли некоторые проблемы с DateTime: Использование FetchFetch DateTime CRM 2011

<attribute name='new_startdate' groupby='true' dategrouping='day' alias='new_startdate' /> 
    <attribute name='new_enddate' groupby='true' dategrouping='day' alias='new_enddate' /> 
    <attribute name='new_duedate' groupby='true' dategrouping='day' alias='new_duedate' /> 

Думайте это немного тот Wrong ....

DateTime scheduledstart = ((DateTime)((AliasedValue)a["new_startdate"]).Value); 
    tracer.Trace("DateTime 1 Done"); 
    DateTime enddate = ((DateTime)((AliasedValue)a["new_enddate"]).Value); 
    tracer.Trace("DateTime 2 Done"); 
    DateTime scheduledend = ((DateTime)((AliasedValue)a["new_duedate"]).Value); 

Тогда я добавить новый Entity .. .

if (scheduledstart != null) 
    { 
     Activity.Attributes.Add("scheduledstart", scheduledstart); 
    } 
    if (enddate != null) 
    { 
     Activity.Attributes.Add("scheduledend", enddate); 
    } 
    if (scheduledend != null) 
    { 
    Activity.Attributes.Add("scheduledend", scheduledend); 
    } 

Любые идеи Как я могу написать DateTime, используя AliasedValue из fetch? или лучший способ сделать это>

Благодаря

+0

я прочитал это ... думают, что его один и тот же вопрос. .. Когда вы читаете какое-либо значение CRM DateTime с помощью OData Service, значение появляется в формате «/ Date (1314763200000) /», который мы не можем напрямую установить в поле DateTime. http://rajeevpentyala.wordpress.com/2011/08/21/read-odata-service-date-field-in-crm-2011/. Как я могу сделать преобразование из Fetch с помощью AliasedValue? –

+2

Какая ошибка или проблема? – glosrob

+0

если он сглажен, вы бы сделали результат [". "]; вы можете увидеть это лучше, если вы отлаживаете свой код и просматриваете результат. Attributes –

ответ

-1

Спасибо за помощь, я решил просто использовать индивидуальные выборки для значений даты

string Date_Gather = string.Format(@"   
     <fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'> 
     <entity name='new_import'>      
       <attribute name='new_enddate'/>   
     </entity> 
     </fetch>", entity.Id); 

foreach (var b in Date_Gather_result.Entities) 
{ 

    if (b.Attributes.Contains("new_enddate")) 
     { 
      enddate = ((DateTime)(b["new_enddate"])); 
      Entity.Attributes.Add("scheduledend", enddate); 
     } 
} 

Спасибо в любом случае надеюсь, что это помогает другому

+0

Кроме того, почему fetchXml вместо выражения запроса? –

1

я использовал ненавидеть дело с псевдонимами значений, но потом я написал некоторые методы расширения, и теперь я не беспокоюсь о них больше. Посмотрите мой блог Simplifying Retrieval of Aliased Values in CRM 2011. Я думаю, что это поможет решить вашу текущую проблему.

+0

Да, это полезно, я смотрю даты и, кажется, проблема, вплоть до «dategrouping», я узнал, что CRM вводит дату как Int32, им надеясь, что есть лучший способ, а затем разбивать «день» «месяц» «год» и все вместе. Я попытался преобразовать в datetime, но затем crm dosent, как формат из плагина ... & can not передать int32 в поле datetime. –

+0

@RichardDewhirst Я никогда не использовал DateGrouping раньше. Итак, (AliasedValue) ["new_duedate"]). Значение - это int? Какие примеры вы видите? Является ли ваша проблема преобразованием int в DateTime? – Daryl

+0

+1 для продвижения ЭМ. Кроме того, вы получили сообщение о лицензировании, которое я вам отправил? И почему-то я не могу следить за вашим блогом ... :( –