Skip to Content
Product Information
Author's profile photo Barin DESAI

Success Factors Learning Management Solution – Integration ODATA Use Cases

This Blog Provides Functional Overview of the areas where SAP Success Factors provides possible integration with third party systems.

Managing Learning Assignments

  • Assign / Unassign Learning Courses to users
  • Assign/ Unassign Learning Items
  • Assign/ Unassign Learning Programs
  • Assign/ Unassign Curriculum Assignment
    • Separate webservice to assign a learning to a user as self or as supervisor.
    • Webservice to assign a learning to the user as Administrator.
    • There are two versions of above webservice V1 and V2 in some cases (V is Version)
    • V2 has more parameters
  • Get user’s learning plan
  • Get user’s learning history

Managing LMS Users

  • Search/ Add/ Modify users
  • Get Qualifications assigned to user

Managing User Enrollment and Assessments

  • Enroll resource into Scheduled offering as admin/ supervisor
  • Getting course roaster
  • Modify enrollment status
  • Getting Schedule offering as supervisor / Administrator
  • Marking attendance for user in courses as Instructor/ Administrator

Find Learning and Course Information

  • Search for learning item
  • Search Catalog (Based on rating/ Generic)
  • Search Curricula

Posting Learning Event To LMS

  • Post learning Event (supervisor/ employee/ Administrator)

Purchasing and Approvals

  • Get and post financial transaction

 

Link that helps with the parameters and technical details.

Link that helps around technical details of available learning API

Assigned Tags

      9 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Rich Waggoner
      Rich Waggoner

      Can a student be enrolled into a scheduled offering that has a price via the OData APIs?  I keep getting an error message response that the "Scheduled Offering is associated with a price" and the enrollment is not recorded.  I can successfully enroll a student into a Scheduled Offering that has a 0 price.

      Hoping you can point me in the right direction to figure this out.  We are on 1708 Success Factors Learning.

      Author's profile photo Barin DESAI
      Barin DESAI
      Blog Post Author

      Hi Rich

       

      1. What is the meaning of price using odata.
      2. I suggest you first update the price and then enroll.

      Ideally enrolling a candidate on course that ha no cost (not ZERO Cost) is not something I see possible.

      can you update the cost first and then send update for enrollment using odata.

      https://apps.support.sap.com/sap/support/knowledge/public/en/2318897#Restful

       

      looking at above and few other documents i checked, enrollment seems to be possible on a course with cost only. cost can be 0 but not undefined.

      thanks

      B

      Author's profile photo Rich Waggoner
      Rich Waggoner

      Barin,

      I have used the document you referenced in the past.  I can get tokens and make API calls.  It was very helpful.

      In this case, the scheduled offering has a published price of 77 dollars.  If I enroll a student using the user interface I can pick a charge back account code as part of the enrollment and successfully enroll the student.

      I am trying to use the API to do the same enrollment.  The API I am using is learning/odatav4/public/admin/scheduledoffering-service/v1/Enrollments and posting the required values.

      When using that API to enroll a student into the class, I get an error message in the response. "Scheduled Offering is associated with a price”.

      If I change the published price of the scheduled offering to zero and then try again, the enrollment works.

      So it appears that either the API does not support enrolling in a scheduled offering that has a published price or there is additional setup to do in the system in order for the enrollment to be made with the API.

      I am very grateful for any knowledge you can share.

      Regards

      Author's profile photo Barin DESAI
      Barin DESAI
      Blog Post Author

      Hi Rich

      As you have used the API and you are getting the response message around enrollment I would go with you.

      Sorry for delayed response.

      thanks

      B

      Author's profile photo Rich Waggoner
      Rich Waggoner

      Follow up: I am told by an NS2 consultant that if the scheduled offering has a default price, the API cannot be used to enroll into that scheduled offering.  I am hoping to discover a work around to this but so far I have not found anything.

      Author's profile photo Barin DESAI
      Barin DESAI
      Blog Post Author

      Rich

      I wanted you to review below link as well. I think if you have tested that in any course with price, enrollment through API is a challenge then I suggest you to raise this as a product enhancement request.

      https://help.sap.com/viewer/28bc3c8e3f214ab487ec51b1b8709adc/1908/en-US/175848220e3443939f999bf65e575a8d.html

      I am unsure if there has been any change since october 2019 but I will check and connect back.

      thanks

      barin

       

      Author's profile photo Puneet Pasrija
      Puneet Pasrija

      Dear Barin,

      Thanks for this blog. I am not able to open the above links mentioned for detailed information. Could you please update new link so that I can access the content ? I am not sure if this is problem at my end only.

      Regards

      Puneet

      Author's profile photo Barin DESAI
      Barin DESAI
      Blog Post Author

      Hi Puneet

       

      apologies, i am too now getting page not found error. I think I had just pasted the links that carried list of api for LMS.

       

      you can go to api.sap.com and search for the same as again posting a url may cause confusion.

       

      regards

      barin

      Author's profile photo Rodrigo Hernan Gomez
      Rodrigo Hernan Gomez
      dear barin, I hope you can help me.
      
      I need to publish the learning history of the people who finished the course from the api: POST /learning/odatav4/public/admin/learningEvent/v1/recordLearningEvents
      
      
      {
        "recordLearningEvents": [
          {
                  "componentTypeID": "INFLUENCIA_NEG_TEST",
                  "componentID": "PRESENCIAL INTERNO",
                  "revisionDate": 1666028091000,
                  "completionStatusID": "PRESENCIAL INTERNO-C",
                  "revisionNumber": "1",
                  "scheduleID": 4447,
                  "studentID": "800185",
                  "completionDate": 1666028091285,
                  "completionTimeZoneID": "América/Argentina/Buenos Aires",
                  "grade": null,
                  "creditHours": null,
                  "cpeHours": null,
                  "contactHours": null,
                  "totalHours": 4.0,
                  "instructorName": ",",
                  "comments": null
          }
        ]
      }
      
      
      
      but when I perform the actions I get the following message:
      
      
      
      {
          "@odata.context": "$metadata#recordLearningEvents/$entity",
          "@odata.metadataEtag": "W/\"da7314ff-0427-4222-a47b-d73507c71740\"",
          "recordLearningEvents": [
              {
                  "componentTypeID": "INFLUENCIA_NEG_TEST",
                  "componentID": "PRESENCIAL INTERNO",
                  "revisionDate": 1666028091000,
                  "completionStatusID": "PRESENCIAL INTERNO-C",
                  "revisionNumber": "1",
                  "scheduleID": 4447,
                  "errorMessage": "No items found matching input parameters.",
                  "studentID": "800185",
                  "completionDate": 1666028091285,
                  "completionTimeZoneID": "América/Argentina/Buenos Aires",
                  "grade": null,
                  "creditHours": null,
                  "cpeHours": null,
                  "contactHours": null,
                  "totalHours": 4.0,
                  "instructorName": ",",
                  "comments": null
              }
          ]
      }
      What would be the problem?
      
      Thanks a lot!