Symptom
When utilizing the following endpoint for the Catalog Feed portion of GET /learning/odatav4/public/admin/catalog-service/v1/$metadata, you notice that some of the items matching your filter criterias are not returned (keeping in mind the throttling limits):
-
Catalog Courses:/learning/odatav4/public/admin/catalog-service/v1/CatalogsFeed('perf-catalog')/CoursesFeed?$filter=criteria/localeID eq 'English'
Environment
SAP SuccessFactors Learning
Reproducing the Issue
- Call the following endpoint to view courses included in a library: GET /learning/odatav4/public/admin/catalog-service/v1/CatalogsFeed('perf-catalog')/CoursesFeed?$filter=criteria/localeID eq 'English'
- Let's say it returns 40 items
- Upon reviewing the library on the UI, you notice that the library has more items than that
Cause
Query logic to get the library courses was filtering out courses which did not have a default price. When there is no default price for the library course in PA_CATALOG_ITEM_PRICE table, the CoursesFeed API endpoint is not returning the course.
Resolution
This behaviour has been investigated by our Engineering Team and Product Management confirmed that the above API endpoint should return these courses even without a library price, as they are still searchable in the Library from an end user perspective.
Query logic will be updated with the code correction LRN-198640 in the 2H 2025 release.
You can check the planned release dates on the following Community portal:
See Also
Keywords
CoursesFeed, API, default price, PA_CATALOG_ITEM_PRICE, library, catalog-service , KBA , LOD-SF-LMS-ODA , Web Services OData , Known Error