SAP Knowledge Base Article - Public

2926295 - Odata Query does not Show Results when Filtering with Special Characters

Symptom

When performing a GET operation in Odata and trying to filter the query using a value that contains special characters (such as "+" or "#"), no results are returned.

Environment

  • SAP Cloud for Customer

Reproducing the Issue

  1. Log into the system.
  2. Perform an Odata query via URL. For example: myxxxxxx.crm.ondemand.com/sap/c4c/odata/v1/c4codataapi/ServiceRequestCollection?$filter=ID eq '123+456'

The query shows no results.

Cause

In Odata API, the special characters that are placed between single quotes are not encoded to the special character codes, so the API is not able to interpret it.

Resolution

For queries that involve values with special characters, manual UTF8 encoding is required.

Following the example from the Reproducing the Issue section, the "+" symbol needs to be manually converted to the UTF8 code (which is "%2B"), and the correct URL would be the following:

myxxxxxx.crm.ondemand.com/sap/c4c/odata/v1/c4codataapi/ServiceRequestCollection?$filter=ID eq '123%2B456'

Keywords

escape character, literal , KBA , LOD-CRM-INT-API , OData API (C4C Only) , How To

Product

SAP Cloud for Customer add-ins all versions ; SAP Cloud for Customer core applications all versions