2013-03-08 126 views
2

林:使用取取遇到一些麻烦的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' /> 

认为这是位错那....

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); 

然后我添加到新的实体.. 。

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

任何想法如何使用AliasedValue从提取中写入DateTime?或者更好的方式来做到这一点>

感谢

+0

我读这...认为它同样的问题。 ..使用OData服务读取任何CRM日期时间值时,值将以“/ Date(1314763200000)/”格式显示,我们无法直接将其设置为DateTime字段。 http://rajeevpentyala.wordpress.com/2011/08/21/read-odata-service-date-field-in-crm-2011/。我将如何从使用AliasedValue的提取进行concversion? – 2013-03-08 09:57:35

+2

什么是错误或问题? – glosrob 2013-03-08 12:44:00

+0

如果它是别名,你会得到结果[“”];你可以更好地看到这一点,如果你调试到你的代码,并查看result.attributes – 2013-03-11 19:08:29

回答

-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而不是查询表达式? – 2013-03-12 19:25:50

1

我曾经恨处理别名值,但后来我写了一些扩展方法,现在我不担心他们了。看看我的博客Simplifying Retrieval of Aliased Values in CRM 2011。我在想它会帮助你解决目前的问题。

+0

是的,这很有用,我正在看日期,似乎是一个问题,“dategrouping”我已经了解到,CRM带来的日期为Int32,我希望有一个更好的方法,然后将“日”,“月”,“年”分组,并将它们全部重新组合。我试图转换为日期时间,但后来crm dosent像插件的格式...&不能将int32传递到日期时间字段。 – 2013-03-08 15:20:17

+0

@RichardDewhirst我从来没有使用过DateGrouping。所以(AliasedValue)a [“new_duedate”])。值是一个int?你看到了什么样的价值观?你的问题是将int转换为DateTime吗? – Daryl 2013-03-08 16:04:08

+0

+1促进EMs。另外,您是否收到关于我发给您的许可的消息?由于某种原因,我无法关注你的博客... :( – 2013-03-08 17:32:54