【问题标题】:Fetch DateTime CRM 2011获取日期时间 CRM 2011
【发布时间】:2013-03-08 09:34:52
【问题描述】:

我在使用 DateTime 时遇到了一些问题:使用 Fetch

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

任何想法我如何使用 fetch 中的 AliasedValue 编写 DateTime?或者更好的方法>

谢谢

【问题讨论】:

  • 我读过这个...认为它是同一个问题...当您使用 OData 服务读取任何 CRM DateTime 值时,该值采用“/Date(1314763200000)/”格式,我们可以't 直接设置为 DateTime 字段。 rajeevpentyala.wordpress.com/2011/08/21/…。我将如何使用 AliasedValue 从 Fetch 进行转换?
  • 错误或问题是什么?
  • 如果它是别名,你会做 result["."];如果您调试代码并查看 result.attributes,您可以更好地看到这一点

标签: c# plugins dynamics-crm-2011 crm


【解决方案1】:

我以前讨厌处理别名值,但后来我写了一些扩展方法,现在我不再担心它们了。查看我的博客Simplifying Retrieval of Aliased Values in CRM 2011。我认为这将有助于解决您当前的问题。

【讨论】:

  • 是的,这很有用,我正在查看日期,似乎是一个问题,直到“日期分组”,我了解到 CRM 将日期作为 Int32 引入,我希望有更好的方法日期分组“日”“月”“年”并将它们重新组合在一起。我试图转换为日期时间,但随后 crm 就像插件中的格式一样... & 无法将 int32 传递给日期时间字段。
  • @RichardDewhirst 我以前从未使用过 DateGrouping。所以 (AliasedValue)a["new_duedate"]).Value 是一个 int 吗?您看到了哪些示例值?您的问题是将 int 转换为 DateTime 吗?
  • +1 用于推广新兴市场。另外,你收到我发给你的关于许可的信息了吗?由于某种原因,我无法关注您的博客... :(
  • @KonradViltersten 我已经有两年多没有在我的博客上发布过今天之前的帖子了……它会给你一个错误信息吗?我不记得关于许可的消息...
【解决方案2】:

感谢您的帮助,我决定只使用单独的获取日期值

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

谢谢,希望对别人有帮助

【讨论】:

  • 另外,为什么用 fetchXml 而不是查询表达式?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-11
  • 1970-01-01
  • 2014-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多