SAP Knowledge Base Article - Public

2822026 - Error in OData Query for Data Source: Skip Are Not Allowed In The Requested URL

Symptom

You are using an OData query to retrieve data from a ByD or C4C data source, however your query returns the following error:

'$skip' are not allowed in the requested URL

Environment

  • SAP Business ByDesign
  • SAP Cloud for Customer

Reproducing the Issue

  1. Go to the work center Business Analytics and select the view Design Data Sources.
  2. Search for your data source and mark it.
  3. Click Build OData Queries.
  4. Select the relevant attributes and set the required filters.
  5. Click Generate Data Query.
  6. Copy and paste the URL into your browser, for example.
  7. Before running the query, add the query option &skip.
  8. Your query may now look like this: https://myxxxxxx.crm.ondemand.com/sap/c4c/odata/analytics/ds/Hcmpab01.svc/Hcmpab01?$select=C_EmployeeUuid,Count&$skip=10 (xxxxxx stands for the URL of your system). Run this query.
  9. The browser returns the above error message.

Cause

The $skip clause for data sources only works for data which is non-aggregated. This is also outlined in the help center documentation.

Data in a data source is aggregated (i.e. summarized) unless a key field is requested in the view. Here are some examples for key field:

  • In the Account Master Data data source, Account would be a key field.
  • In the Employee Master Data data source, Employee would be a key field.
  • In a transactional data source, the Node ID field is the key field.

Resolution

Make sure you add the respective key field to your query.

The node ID field is a technical field, which you will see of you request the metadata for a data source. It will not be listed in the "Build OData Queries" feature because it is technical, however you can still add this field via the $select clause:

https://myxxxxxx.crm.ondemand.com/sap/c4c/odata/analytics/ds/Hcmpab01.svc/Hcmpab01?$select=NodeId,C_EmployeeUuid,Count&$skip=10

Note: The ID field is also a field considered as key field by the OData service. However, it does not ensure that the data is not aggregated. For this reason, please use the NodeId field if in doubt.

If the data source is a combined one, please include both the NodeID as well as the field Mdav. For example:

https://myxxxxxx.crm.ondemand.com/sap/c4c/odata/analytics/ds/Hcmpab01.svc/Hcmpab01?$select=NodeId,Mdav,C_EmployeeUuid,Count&$skip=10

See Also

2697858 - OData Query for Data Sources Does Not Work

2821437 - OData Query Builder Does Not Work With Date Time Fields

2675247 - Build OData Queries Button Grayed Out or Missing

Keywords

odata, skip, not allowed in requested URL, not working, query, operator, data source, report, analytics, nodeid , KBA , AP-RC-ANA , C4C, ByD, Travel: Analytics Tools & Frameworks , Problem

Product

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