Search code examples
filterodatadynamics-crm

Error when filtering on Guid in OData query


I'm trying to filter my OData query result to retrieve the Activity records related to the current Record Id only. I'm using the code below:

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

However, this produces an error below: enter image description here

How can I correctly filter on a guid ?

EDIT:

Here's my full function:

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

Solution

  • Filtering by lookups goes by fieldname/Id eq (guid'<your guid>') so this should work:

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