【问题标题】:CRM 2011 Unknown Condition Operator: NotOnCRM 2011 未知条件运算符:NotOn
【发布时间】:2012-10-26 15:38:25
【问题描述】:

我在插件中做这个简单的查询:

QueryExpression query = new QueryExpression(hb_aula.EntityLogicalName);
query.ColumnSet = new ColumnSet(true);

query.Criteria = new FilterExpression(LogicalOperator.And);
query.Criteria.Conditions.Add(new ConditionExpression("hb_datafim", ConditionOperator.NotOn, DateTime.Now));

EntityCollection ent = service.RetrieveMultiple(query);

我试图检索所有hb_aula 记录,其中hb_datafim 日期字段不在今天(或其他特定日期,DateTime.Now 只是一个示例)。

当我执行这个我得到错误

未知条件运算符:NotOn。

我做错了什么还是这是 CRM 2011 未完成的功能?

【问题讨论】:

  • 为什么不在今天早上使用小于 00:00 的时间(所以将 DateTime.Now 转换为仅在 00:00 的日期并使用它)?
  • 我觉得不错。你得到错误任何ru。时间还是编译时间?
  • AdamV 我不是在寻找解决方法我想知道为什么我不能使用那个特定的运算符。如果它不能使用,为什么它在那里?为了模拟同一个运算符,我总是需要两个条件,一个是小于,另一个是大于,并且仍然存在时间部分问题。Daryl 我在运行时遇到错误。

标签: dynamics-crm-2011


【解决方案1】:

我围绕您的用例做了一些测试,得到了相同的结果。看起来这可能在 SDK 中未完成。我建议使用以下解决方法 -

DateTime today = DateTime.Now;
DateTime yesterday = today.AddDays(-1);
DateTime tomorrow = today.AddDays(1);
FilterExpression filter = new FilterExpression(LogicalOperator.Or);
filter.AddCondition("createdon", ConditionOperator.OnOrBefore, yesterday);
filter.AddCondition("createdon", ConditionOperator.OnOrAfter, tomorrow);
QueryExpression query = new QueryExpression("contact")
    {
        ColumnSet = new ColumnSet(true),
        Criteria = filter
    };

EntityCollection ent = service.RetrieveMultiple(query);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-05
    • 2012-03-05
    • 2012-01-04
    • 1970-01-01
    相关资源
    最近更新 更多