在 OData 查询中过滤 Guid 时出错

use*_*627 2 filter dynamics-crm odata

我正在尝试过滤我的 OData 查询结果以仅检索与当前记录 ID 相关的活动记录。我正在使用下面的代码:

var RecordId = parent.Xrm.Page.data.entity.getId();
var options = "$select=Subject&$filter=RegardingObjectId eq guid'" + RecordId + "'";
Run Code Online (Sandbox Code Playgroud)

但是,这会产生以下错误: 在此处输入图片说明

如何正确过滤 guid ?

编辑:

这是我的完整功能:

function retrieveActivities() {
   ///<summary>
   /// Retrieves Activities by passing a filter to the SDK.RestEndpointPaging.RetrieveRecords function
   ///</summary>
   clearRelatedGrid();
   var number = parseInt(numberOfActivitiesToRetrieve.options[numberOfActivitiesToRetrieve.selectedIndex].value, 10);
   var RecordId = parent.Xrm.Page.data.entity.getId();
   var options = "$select=Subject&$filter=RegardingObjectId/Id eq (guid'" + RecordId + "');

   SDK.REST.retrieveMultipleRecords("ActivityPointer", options, retrieveActivitiesCallBack, function (error) { alert(error.message); }, ActivitiesRetrieveComplete);
  }
Run Code Online (Sandbox Code Playgroud)

Raf*_*iki 6

我在使用新的 Web API v8.2 时遇到了同样的问题。我知道这是在一年前被问到的,但对于今天偶然发现这个问题的任何人来说,这都会为我解决这个问题:

var options = "$select=Subject&$filter=RegardingObjectID eq " + RecordId;
Run Code Online (Sandbox Code Playgroud)

只需直接将 guid 值(作为字符串)与对象 ID 进行比较。不要试图告诉 API 它是一个 guid。它现在足够聪明,知道这一点。我希望这可以帮助其他使用 v8.2 的人。

在这里查看更深入的解释 https://community.dynamics.com/crm/b/conorssnippetdiary/archive/2015/12/03/web-api-preview-unrecognized-39-edm-string-39-literal


Ale*_*lex 5

按查找过滤,fieldname/Id eq (guid'<your guid>')所以这应该有效:

var RecordId = parent.Xrm.Page.data.entity.getId();
var options = "$select=Subject&$filter=RegardingObjectId/Id eq (guid'" + RecordId + "')";
Run Code Online (Sandbox Code Playgroud)

  • 你好@Alex:我尝试通过 guid:: `Service?$filter=c8e735a52bd94c40b2d32d572eaa6884_Contract_Contractid eq (guid'f1c6798a-1b31-4312-a663-a3ec47f06f3c')` 属性调用过滤器,我收到以下错误“无法识别”Ed米。字符串'文字'guid'f1c6798a-1b31-4312-a663-a3ec47f06f3c''位于'c8e735a52bd94c40b2d32d572eaa6884_Contract_Contractid eq中的'57'(guid'f1c6798a-1b31-4312-a663-a3 ec47f06f3c')?$filter=c8e735a52bd94c40b2d32d572eaa6884_Contract_Contractid eq (guid'f1c6798a- 1b31-4312-a663-a3ec47f06f3c')'.` 您能帮助我了解我的通话出了什么问题吗?谢谢 (3认同)