SAP Knowledge Base Article - Public

2989978 - New Learning API: /admin/catalog-service/v1/$metadata - 2H 2020 Preview Release

Symptom

In b2011 Preview Release (2H 2020), there is an additional learning API call to get catalog details which is /learning/odatav4/public/admin/catalog-service. The API accepts the catalog ID, locale, and time range as inputs and returns a summary, as well as the details on items, classes, and curricula contained in the catalog. However, there is a business need to identify the entire metadata of this new API call.

Environment

SAP SuccessFactors Learning 2011

Resolution

Below is the metadata of the API call /learning/odatav4/public/admin/catalog-service:

<?xml version='1.0' encoding='UTF-8'?>
<edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx">
<edmx:Reference Uri="https://<customer-instance>.plateau.com/learning/v4.0/cs02/vocabularies/Org.OData.Core.V1.xml">
<edmx:Include Namespace="Org.OData.Core.V1" Alias="Core"/>
</edmx:Reference>
<edmx:DataServices>
<Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="com.sap.lms.odata" Alias="Namespace1_Alias">
<EnumType Name="ENString" IsFlags="true" UnderlyingType="Edm.Int16">
<Member Name="String1" Value="1"/>
<Member Name="String2" Value="2"/>
<Member Name="String3" Value="4"/>
</EnumType>
<TypeDefinition Name="TDString" UnderlyingType="Edm.String" MaxLength="2147483647"/>
<EntityType Name="Catalog">
<Property Name="catalogID" Type="Edm.String">
<Annotation Term="Core.Description">
<String>This is a the unique ID of a catalog in the Learning Management System (LMS).</String>
</Annotation>
</Property>
<Annotation Term="Core.Description">
<String>A course catalog is the set of learning items (online and classroom courses, plus books, videos, and other learning materials) that a user can access. Course catalogs work like a university course catalog except that in our LMS, one company can have many catalogs and assign the catalogs to different groups. For example, there might be an Information Technology catalog for the IT organization or a Human Resources catalog that is avaiable to all employees (including the IT employees).,A catalog ITEM is one course, book, or other learning item in users' catalogs. One user can have more than one catalog. For example, an Information Technology (IT) employee might have access to the All Employees catalog (all courses available to everyone in the company) and also have access to a special IT course catalog. When you return catalog items for the user, you are returning all items - based on your search parameters - that the user has access to.</String>
</Annotation>
</EntityType>
<EntityType Name="CatalogFeed">
<Key>
<PropertyRef Name="catalogID"/>
</Key>
<Property Name="catalogID" Type="Edm.String"/>
<Property Name="catalogDesc" Type="Edm.String"/>
<Property Name="catalogDomainID" Type="Edm.String"/>
<Property Name="catalogDomainDesc" Type="Edm.String"/>
<Property Name="isActive" Type="Edm.Boolean"/>
<Property Name="criteria" Type="Namespace1_Alias.criteria"/>
<Property Name="CurriculaFeed" Type="Collection(Namespace1_Alias.CurriculaFeed)"/>
<Property Name="ProgramsFeed" Type="Collection(Namespace1_Alias.ProgramsFeed)"/>
<Property Name="CollectionsFeed" Type="Collection(Namespace1_Alias.CollectionsFeed)"/>
<Property Name="CoursesFeed" Type="Collection(Namespace1_Alias.CoursesFeed)"/>
<NavigationProperty Name="SchedulesFeed" Type="Collection(Namespace1_Alias.ScheduleFeed)"/>
</EntityType>
<EntityType Name="ScheduleFeed">
<Key>
<PropertyRef Name="scheduleID"/>
</Key>
<Property Name="criteria" Type="Namespace1_Alias.criteria"/>
<Property Name="scheduleID" Type="Edm.Int64"/>
<Property Name="componentID" Type="Edm.String"/>
<Property Name="componentTypeID" Type="Edm.String"/>
<Property Name="revisionDate" Type="Edm.Int64"/>
<Property Name="scheduleDescription" Type="Edm.String"/>
<Property Name="startDate" Type="Edm.Int64"/>
<Property Name="endDate" Type="Edm.Int64"/>
<Property Name="domainID" Type="Edm.String"/>
<Property Name="domainDesc" Type="Edm.String"/>
<Property Name="price" Type="Edm.Double"/>
<Property Name="currencyCode" Type="Edm.String"/>
<Property Name="seatsAvailable" Type="Edm.String"/>
<Property Name="instructorID" Type="Edm.String"/>
<Property Name="facilityID" Type="Edm.String"/>
<Property Name="facilityDescription" Type="Edm.String"/>
<Property Name="locationID" Type="Edm.String"/>
<Property Name="locationDescription" Type="Edm.String"/>
<Property Name="catalogAction" Type="Edm.String"/>
</EntityType>
<ComplexType Name="SchedulesFeed">
<Property Name="criteria" Type="Namespace1_Alias.criteria"/>
<Property Name="scheduleID" Type="Edm.Int64"/>
<Property Name="componentID" Type="Edm.String"/>
<Property Name="componentTypeID" Type="Edm.String"/>
<Property Name="revisionDate" Type="Edm.Int64"/>
<Property Name="scheduleDescription" Type="Edm.String"/>
<Property Name="startDate" Type="Edm.Int64"/>
<Property Name="endDate" Type="Edm.Int64"/>
<Property Name="domainID" Type="Edm.String"/>
<Property Name="domainDesc" Type="Edm.String"/>
<Property Name="price" Type="Edm.Double"/>
<Property Name="currencyCode" Type="Edm.String"/>
<Property Name="seatsAvailable" Type="Edm.String"/>
<Property Name="instructorID" Type="Edm.String"/>
<Property Name="facilityID" Type="Edm.String"/>
<Property Name="facilityDescription" Type="Edm.String"/>
<Property Name="locationID" Type="Edm.String"/>
<Property Name="locationDescription" Type="Edm.String"/>
<Property Name="catalogAction" Type="Edm.String"/>
</ComplexType>
<ComplexType Name="CurriculaFeed">
<Property Name="curriculumID" Type="Edm.String"/>
<Property Name="curriculumTitle" Type="Edm.String"/>
<Property Name="description" Type="Edm.String"/>
<Property Name="domainID" Type="Edm.String"/>
<Property Name="domainDesc" Type="Edm.String"/>
<Property Name="thumbnailURI" Type="Edm.String"/>
<Property Name="action" Type="Edm.String"/>
</ComplexType>
<ComplexType Name="ProgramsFeed">
<Property Name="programID" Type="Edm.String"/>
<Property Name="programTitle" Type="Edm.String"/>
<Property Name="description" Type="Edm.String"/>
<Property Name="domainID" Type="Edm.String"/>
<Property Name="domainDesc" Type="Edm.String"/>
<Property Name="thumbnailURI" Type="Edm.String"/>
<Property Name="action" Type="Edm.String"/>
</ComplexType>
<ComplexType Name="CollectionsFeed">
<Property Name="collectionID" Type="Edm.String"/>
<Property Name="collectionTitle" Type="Edm.String"/>
<Property Name="description" Type="Edm.String"/>
<Property Name="domainID" Type="Edm.String"/>
<Property Name="domainDesc" Type="Edm.String"/>
<Property Name="author" Type="Edm.String"/>
<Property Name="authorType" Type="Edm.String"/>
<Property Name="action" Type="Edm.String"/>
</ComplexType>
<ComplexType Name="CoursesFeed">
<Property Name="componentID" Type="Edm.String"/>
<Property Name="componentTypeID" Type="Edm.String"/>
<Property Name="revisionDate" Type="Edm.Int64"/>
<Property Name="componentClassification" Type="Edm.String"/>
<Property Name="title" Type="Edm.String"/>
<Property Name="description" Type="Edm.String"/>
<Property Name="domainID" Type="Edm.String"/>
<Property Name="domainDesc" Type="Edm.String"/>
<Property Name="catalogItemFlagID" Type="Edm.String"/>
<Property Name="catalogItemFlagUntilDate" Type="Edm.Int64"/>
<Property Name="defaultPrice" Type="Edm.Double"/>
<Property Name="defaultCurrencyCode" Type="Edm.String"/>
<Property Name="audience" Type="Edm.String"/>
<Property Name="sourceID" Type="Edm.String"/>
<Property Name="sourceDesc" Type="Edm.String"/>
<Property Name="deliveryMethodID" Type="Edm.String"/>
<Property Name="deliveryMethodDesc" Type="Edm.String"/>
<Property Name="totalLength" Type="Edm.Double"/>
<Property Name="creditHours" Type="Edm.Double"/>
<Property Name="cpeHours" Type="Edm.Double"/>
<Property Name="contactHours" Type="Edm.Double"/>
<Property Name="thumbnailURI" Type="Edm.String"/>
<Property Name="active" Type="Edm.Boolean"/>
<Property Name="mobileReady" Type="Edm.String"/>
<Property Name="action" Type="Edm.String"/>
<Property Name="SubjectAreasFeed" Type="Collection(Namespace1_Alias.SubjectAreasFeed)"/>
</ComplexType>
<ComplexType Name="SubjectAreasFeed">
<Property Name="subjectAreaID" Type="Edm.String"/>
<Property Name="subjectAreaDesc" Type="Edm.String"/>
</ComplexType>
<ComplexType Name="criteria">
<Property Name="catalogID" Type="Edm.String"/>
<Property Name="localeID" Type="Edm.String"/>
<Property Name="fromDate" Type="Edm.String"/>
<Property Name="includeOfferings" Type="Edm.String"/>
</ComplexType>
<EntityContainer Name="Container">
<EntitySet Name="Catalogs" EntityType="Namespace1_Alias.Catalog"/>
<EntitySet Name="CatalogsFeed" EntityType="Namespace1_Alias.CatalogFeed">
<NavigationPropertyBinding Path="SchedulesFeed" Target="SchedulesFeed"/>
</EntitySet>
<EntitySet Name="SchedulesFeed" EntityType="Namespace1_Alias.ScheduleFeed"/>
</EntityContainer>
</Schema>
</edmx:DataServices>
</edmx:Edmx>

Keywords

catalog, api, learning, odata, microservices, microservice, 2h 2020, preview, release, new, metadata, catalog-service , KBA , LOD-SF-LMS-ODA , Web Services OData , How To

Product

SAP SuccessFactors Learning 2011