我有一个应用程序使用MS-CRM 2011 Web服务检索crm实体上的最后更改。此应用程序使用Windows Mobile设备同步上次数据更改。 同步操作每20分钟定期进行一次。在每次同步操作中,我想通过检查实体的'modifiedon'字段来检索先前更新中发生的更改。 问题在于,CRM查询不使用DateTime对象的时间片段,并且返回了传递的DateTime参数的所有更改。检索查询时间范围(FetchXML/QueryExpression)
我会检查FetchXML和QueryExpression,没有什么不同。 有什么办法来创建一个查询运行在Crm WebService上,从指定的日期和时间返回修改的记录?
样品(我FetchXml):
<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>
<entity name='new_brand'>
<attribute name='new_brandname' />
<attribute name='new_pdanumber' />
<filter type='and'>
<condition attribute='modifiedon' operator='on-or-after' value='2012/11/12 23:59'/>
</filter>
</entity>
</fetch>
看到在代码中,我想从2012年11月12日23:00所有修改过的实体,但CRM从2012年11月12日00返回所有修改的记录:00。
感谢您的回复。 '23:59'是一个示例,显示CRM不使用时间,并且在此时间(在选定日期)之前更改的所有记录都会返回。我需要一个查询(或高级查找),可以让实体在一天内的两次之间修改。 (2012/11/12 00:00至2012/11/12 23:58之间的样本变更实体不应在结果集中) – Behnam
可能需要创建自定义工作流并为我的实体创建一个新字段(像ModifiedOnTicks),当实体'modifiedon'字段发生变化时,工作流程将运行并计算其值Ticks并存储在该字段中,但看起来这将成为一个循环。 – Behnam
您对时间被忽略([见这里](http://social.microsoft.com/Forums/uk/crmdevelopment/thread/c5083689-65fb-474f-a7bc-2eff393016fe))是正确的。关于维护Ticks - 如果你把它放在一个预创建和更新前的插件中,你可以将该值作为事务的一部分注入,从而不会导致后续更新,希望这是有道理的。 –