1

(抱歉英语不好)我有一个应用程序,它使用 MS-CRM 2011 Web 服务来检索 crm 实体上的最后更改。此应用程序与 Windows Mobile 设备同步最后的数据更改。同步操作每 20 分钟定期发生一次。在每个同步操作中,我想通过检查实体“modifiedon”字段来检索先前更新中发生的更改。问题是,CRM 查询不使用 DateTime 对象的时间片段,并且从传递的 DateTime 参数开始的所有更改都被返回。

我会检查 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 返回所有修改记录。

4

3 回答 3

0

您的代码正在查找在 23:59 或之后更改的记录...您记录的结果听起来是正确的。

无论如何,都会使用时间部分,但我怀疑您看到的是用户时间与通用时间的结果。如果用户时区偏移量!= 0,则用户在 UI 中选择的午夜将不同于存储在数据库中的值,即 UST 等效值。

于 2012-11-20T08:15:58.833 回答
0

我们在 Entity 中添加了一个新字段(称为 ModifiedOnTick),并在该字段中记录了固定日期(2011-01-01)的时间差(以毫秒为单位)。

于 2016-04-27T19:39:15.453 回答
0

我现在与最古老的 Dynamics CRM 2011 组织有同样的问题。比较时或之后的比较不比较时间,只比较日期。尝试使用 grater 或等于(fetchxml 中的“ge”)。

于 2015-11-26T08:10:47.277 回答