The error message is due to the
"+" character which is being added to the filter parameter, in the GET request the adapter is firing to the server. Essentially, whenever one is executing the query "Select * from /shared/ODataTest/CIS/OData/orders where employeeid=20", the connector is issuing the following GET request to the server (please note the "+" characters in the filter parameter):
================ http://localhost:9400/odata4/databases/Test/examples/orders?$filter=employeeid
+eq
+20
================ The workaround, in this case, would be to either replace the
"+" characters with whitespace (filter=employeeid eq 20) and then issue the request or replace the "+" characters with "%20" (filter=employeeid%20eq%2020), then subsequently issue the GET request.
One can configure the adapter to modify the GET request using a connection property called "
UseDotNETSpaceEscape", which will help in performing the latter as mentioned above, i.e, replace the "+" characters with "%20", wherein the user will have to set this property to true via the "Other" property such as "Other=UseDotNETSpaceEscape=true" in addition to the other connection properties. This will help the connector in explicitly escaping "+" characters with "%20" in the filter parameter.
Follow the below steps to resolve the issue.
1. Right-click on the Odata data source and go to the Configuration tab.
2. Under the Connection, look for the parameter "
Other".
3. Add the following property here "
UseDotNETSpaceEscape=true" (as shown below)
4. Run the query again in the scratchpad to see the results.
----------
SELECT * FROM /shared/Test/Odata/"odata-inhouse"/CIS/OData/orders WHERE employeeid = 20
----------