
This is an Introductory to the course.
The foremost question that comes to the mind is what endpoint should we make connection to , in order to execute the APIs for the Successfactors Instance URL that we are having access to / or the one that needs to be integrated.
And this has been a mystery for almost everybody who wants to enable integration with Successfactors application.
Here, in this lecture and a couple of lectures accompanying henceforth , the attempt has been laid to demystify the endpoint URL to connect to , when only the Successfactors Application URL is known to us.
Wishing you Happy Learning!
Here , we will see in order to execute the SFAPI calls ,the call can be made to a derivative URL of the Successfactors Application URL ; we will see here why that it is not a recommended way; and the calls need to be made to the DC (Data Center) URL.
Here, we are continuing on our journey to gather the Data Center URL for the Successfactors Application URL; the end goal being the SFAPI/OData URL.
In this lecture , we are covering the step of identifying the Data Center identifier that corresponds to the Successfactors Application URL that needs to be integrated via the APIs.
This lecture covers 2 steps out of 4 , to identify the DC URL.
In this step we will work on the Step 3 out of 4 to identify the Data Center URL for the APIs to connect to.
Once this step is performed , we will be able to get the Data Center URL to which the API calls need to be submitted.
Please also follow the recently added extension to this lecture in order to gather the Data center url.
This is an extension to the previous lecture in order to get the Data center URL , this is with updated information with some of the recent application urls those have been circulating in.
Here, we will see the additional steps we need to carry out in order to reach the goal of being able to confirm the end point Data Center URL and eventually the target end point URL i.e the SFAPI URL.
We will embark on the journey on how to form the SFAPI URL , which is the end point to which the calls are made by the SFAPIs.
Here, we will gather the information on how to form the SFAPI endpoint URL towards which the various methods and functions from SFAPI are exposed.
Here in we will have a look at the wsdl and more primarily we will seek out what all operations can be made via the SFAPI wsdl.
There is also an alternate to check over the available operations from the SFAPI , which we will be looking at in the subsequent discussions.
Herein , we will discuss over what is OData URI; we will also understand what is the difference between application url (aka company url), Data Center url and OData URI.
We will also see as to how just knowing the application url, the Data Center and OData URI information could be gathered.
This is an extension to the previous lecture in order to get the Data center URL , this is with updated information with some of the recent application urls those have been circulating in.
Here, we will understand how to download and install the SOAP UI tool, which will be used to execute various web service calls to SAP Successfactors.
Here in we will see how to enable the calling from SOAP UI to Successfactors in view of the disablement of the TLS (Transport Layer Security) v1.0; else you might experience SSL handshake exception when communicating with Successfactors from SOAP UI.
Also please note if the link as provided as resource to this lecture is not getting open by clicking here; please search for note 2461964 over the net , it would be available there as it is a public SAP note so is available free to be accessed.
This is the most prominent tool to make the REST calls and that includes OData calls. We will see as to how to set up the tool in order to execute the OData calls been discussed in the upcoming sections.
Herein , we have already installed and discussed at length as to how to set up the SOAP UI for the SFAPI calls in the earlier sessions , in this session we will see as to how we can make the OData calls from the SOAP UI.
Herein, we will see as to how the OData call can be made from the Advanced Rest Client (ARC) which is available as Chrome App.
Herein , we will see as to how the OData calls can be made from the Chrome/Firefox browser. And how we can gather the response both in JSON and Atom format when the call is executed from these browsers.
Here we will have an introduction of OData and understand the various components ,their significance in making up an Odata service.
Here, we will understand what a Service Document and Service MetaData Document is, and not only that we will also see what differences exist between the information conveyed by these documents.
We will also execute different possible OData URIs to gather these documents and also the finer points in the information displayed via these different URIs.
Here, we will discuss over the Entity Metadata document and the information it contains , also we will have a comparison study between the 3 documents (Service Document , Service Metadata Document, Entity Metadata Document) over the information these docs hold.
Here, we will discuss various ways in which following documents can be gathered:
Service Document
Service Metadata Document
Entity Metadata Document
Different variants of the OData URIs those can be used to gather the various documents and different options available.
We will also see some nitty gritty details over the impact of gathering the Service Metadata document for the specific entities - eg impact on the Navigation properties been outputted.
Having now understood, how the different docs can be gathered , the comparative study of information stored in those; let's now have a closer look onto the Service Metadata Document. Here we will start by understanding what are EntitySets and EntityType in the document.
Here we will be looking into what are AssociationSets and Association in the Service Metadata Document.
Here we will be looking into what are the Navigation Properties in the Service Metadata Document and here we will bring up the binding factor between Association and Navigation Property; we will demystify the logic to know what object is shown up when the navigation property is expanded.
Here we will be looking into what are the Function Import in the Service Metadata Document and here we will work out with some Function Imports and also understand various nitty-gritties related to the Function imports - http method, parameters, payload, return type and how information over these function imports can be gathered.
Here, we will have a closer look at the Entity Metadata Document and will understand what all information can be inferred from the Entity Metadata document and some tips to traverse this document that would add up to the productivity.We will also see as an use case here how can we gather all the sensitive fields of an object from the Entity Metadata document with minimal efforts.
Herein, we will understand what all constitute the OData URI; this is the starting of understanding the way different uri calls are structured:
Service Root
Resource Path
Query Options
Herein, we will try to understand the most complex component of the OData URI , Resource Path; in this and couple of upcoming sessions we will try to demystify the resource path.
Also we will see the different representations of the resource path and will associate them to the odata queries , in order to understand the practical manifestation of the logic.
Herein , we will be looking into some more interesting resource path representations and one of the constraints of the Resource Path representation (where in query options could have been more friendly).
Herein, we will be looking into the third OData URI component, that is , query options.We will understand basics about the various query options that we have in the OData; this is the beginning session for the detailed sessions to be taken up in the upcoming section over the various query options to be dealt with individually.
System Query options
$orderby
$top and $skip
$filter
$expand
$format
$select
$inlinecount
Custom Query options
Function Import parameters
Herein , we will discuss over the various nitty gritty details of having an orderby system query parameter; which is used in Odata query operations.
Herein , we will discuss over the top and skip system query parameter; which is used in Odata query operations. We will also how combination of top,skip and orderby can help us paginate the output results from the OData queries.
Herein, we are looking at one of the special case that highlights the importance of why we should not solely rely on the page count (established via top and skip) to ensure whether those number of records have been returned.
Here, we are looking into one of the most prominent system query option $filter.
We will consider the basics about the $filter criteria and also seek out the odata query which lists all Successfactors users including the ones those are inactive and be them internal or external.
Herein, we will see the logical and comparison operators those are supported by the $filter query option:
Equals
Not Equals To
Greater Than
Greater Than or Equal To
Less Than or Equal To
And
Or
Not
Herein , we will be looking at the arithmetic operators supported by the $filter:
addition
subtraction
division
multiplication
Herein , we will be looking at the arithmetic operators supported by the $filter:
() Precedence grouping
in
like
startswith
endswith
tolower
toupper
trim
length
We will also look at some special considerations using like operator.
Herein, we will look at the DateTime and DateTimeOffset data typed fields and understanding the format in which the DateTime(Offset) fields anticipate data and what timezone do they represent the datetime in.
Herein, we look at the various OData queries involving the DateTime , DateTimeOffset data types fields; also we go through some nitty gritty nuances.
Herein, we will look at the Time data typed fields and understanding the format in which the Time fields anticipate data.
Herein, we will look into some additional examples of the OData queries involving the Datetime fields - Time , DateTime, DateTimeOffset and also seek out resolution to a particular issue we get while executing the query on one of the datatimeoffset datatyped field.
Herein, we will look at various numerical datatypes and will also figure out some finer nuances needed to operate with these datatypes :
decimal
long
float
Herein, we will see the specifics around using the boolean datatyped fields in the filter applied over Odata entities.
Herein , we will look at one of the very important query options provided by OData i.e. $expand and we will see how the expand functions and helps in getting the navigation properties' objects deflated as represented as flat objects inline; we will also understand various nitty gritties around using the $expand.
Herein, we will have a look at one of the system query options $format, which drives the way the results are outputted - either in xml or in the JSON format. We will look at those options to alter the output in the needed format.
Herein, we will be looking extensively into $select system query option and what all capabilities it provides considering the simple , navigation , nested-navigation properties.
Herein, we will be looking into $inlinecount system query option and what all capabilities it provides. Also we will have a look over how to change the record size of the response been returned from OData.
Herein , addition to the ways being discussed in earlier sections as to how to create the API user;couple of additional mechanisms are discussed as to create API user via OData call and to provide the authorization to make the Odata calls and perform certain operations on the Successfactors application.
A complete Hands-On course!!!
This course uncovers the SFAPI and ODATA APIs , which are the interoperability mechanism offered by SAP Successfactors.
It will show as to how the various aspects of APIs, the endpoint URLs, input / output parameters for the API calls, access permissions , SFAPI and OData APIs, How to executed them , various concepts around effective dated entities, operations like query, update (both variants merge and replace), upsert, delete etc. can be sought out and operated upon.
With this course , you will be able to gather the practical knowledge of working with the APIs in depth, a must for any Successfactors consultant, solution architect and for that matter an enviable armor for SAP HCM Successfactors functional consultants.
Various use cases are also covered in the course wherein it is practically demonstrated on how the APIs can be called to satisfy the needed objective from the API.
The years of practice and challenges those were encountered while calling the APIs, creating the objects , demystifying various aspects like how to gather the values that a field should take; all have been placed in the course with the sole ideology that a person should be able to start from the scratch and reach the end.
Also all the learning is done from the open source tools like SOAP UI and community edition of Postman and there is no need for Boomi / PI like paid tools for this course.
Following is the course content:
Section 1: Introduction
1. Introduction
Section 2: SFAPI : Successfactors SFAPI URI and wsdl
2. What is the Data Center URL
3. Data Center URL significance
4. Gathering Data Center URL
5. Gathering Data Center URL continuation
6.* Further Steps , SFAPI URL and others
7. Formulation of SFAPI URL
8. SFAPI wsdl
9. SFAPI Enabled?
Section 3: Soap UI Set Up
10. SOAP UI Download and Install
11. SOAP UI Configuration changes, in view of Successfactors' TLS v1.0 disablement
Section 4*: Creating an API User ID to make SFAPI call
12. Creating an User ID for the SFAPI calls
13. Creating User IDs via Option 1(Provisioning)
14. Creating API User IDs via Option 2.1 (Successfactors Application UI)
15. Creating API User IDs Option 2.2 (Import Employee via SFSF Application UI)
Section 5*: Setting the Password for the API User
16. Setting the Passwords for the API User IDs created above
17. Setting the Password for the API User - Option 1.1
18. Setting the Password for the API User - Option 1.2
19. Setting the Password for the API User - Option 2
20. Setting Password for the User - Option 3 and 4
21. Considerations when SSO is enabled
22. Considerations for SSO - Enabling the loginMethod field
23. Making First SFAPI call !
Section 6: SFAPI Methods And Parameters
24. SFAPI Methods
25. Understanding SFAPI wsdl
26. Preparation for the Hands ON Sessions on API calls
27. Setting API User login exception
28. Making the call to SFSF to retrieve the List of the SFAPI SFObjects
29. Making the SFAPI Call for Session Management and MetaData Inspection methods
30. SFAPI call for Data Query Category (query and queryMore)
31. SFAPI call for Data Manipulation Category (upsert call)
32. SFAPI Call for Asynchronous Operations
Section 7: OData : Tools to make the OData call
33. Postman Set Up
34. SOAPUI : Making Rest Calls from SoapUI
35. Advanced Rest Client from Chrome
36. Chrome/FireFox Browser
Section 8: Odata Basics (with relation to Successfactors Odata service)
37. Odata Introduction and Structure Components
38. OData Basics : Service Document vs. Service Metadata Document
39. OData Basics : Entity Metadata Document-comparison with other documents
40. OData Basics : How to gather Service Document , Service and Entity Metadata Docs
41. OData Basics : Understanding Service Metadata Document - EntitySets , EntityType
42. OData Basics : Understanding Service Metadata Document - AssociationSet and Type
43. OData Basics : Understanding Service Metadata Document - Navigation Property
44. OData Basics : Understanding Service Metadata Document - Function Imports
45. OData Basics : Understanding Entity Metadata Document
Section 9: OData URI
46. OData URI : Introduction and How to gather the service root uri for Odata calls
47. OData URI : URI and its components - All components
48. OData URI : URI and its components - Resource Path -part I
49. OData URI : URI and its components - Resource Path -part II
50. OData URI : URI and its components - Query Options
Section 10: OData Query Options
51. OData Query Options: $orderby
52. OData Query Options: $top and $skip
53. OData Query Options: $top + $skip combined with $orderby
54. OData Query Options: $filter - Introduction
55. OData Query Options: $filter-supported Logical Operators
56. OData Query Options: $filter-supported Arithematic Operators
57. OData Query Options: $filter-supported Grouping ,Customized & String Operators
58. DateTime and DateTimeOffset DataType fields
59. OData Query Options: $filter - supported DateTime Operators -Part I
60. Time DataType fields
61. OData Query Options: $filter-supported DateTime Operators -Part II
62. OData Query Options: $filter-supported Numeric Datatypes
63. OData Query Options: $filter-supported Boolean Datatype
64. OData Query Options: $expand
65. OData Query Options: $format
66. OData Query Options: $select
67. OData Query Options: $inlinecount
Section 11: OData API User Permissions
68. OData : creating an API user and assigning the password
Section 12: Effective Dated Entities
69. Effective Dated Entities - What are They?
70. Effective Dated Entities - How are they defined?
71. Effective Dated Entities - The Concept
72. Effective Dated Entities - Advanced Concept
73. Different Modes in which Data can be entered in Successfactors
74. Concept of fromDate, toDate and asOfDate for Effective Dated Entities
75. Concept of fromDate, toDate and asOfDate for Advanced Effective Dated Entities
76. Initial data entry : Impact on effective dated objects
77. Correction Mode data entry : Impact on effective dated objects
78. Edit Mode data entry : Impact on effective dated objects
79. Insert and Delete Mode data entry :Impact on effective dated objects
Section 13: Effective Dated Entities behavior with Navigation
80. Effective Dated Entities behavior with Navigation : Rules
81. Effective Dated Entities behavior with Navigation : Advanced navigation concepts
Section 14: Effective Dated Entities : How can they be queried
82. Effective Date Entities: multiple parameters available to query 'em
83. Effective Dated Entities: Querying involving from/to/asOfDate
84. Effective Dated Entities: Querying involving start/endDate
85. Effective Dated Entities: Logic system follows when from/to/asOfDate are present
86. Effective Dated Entities: lastModifiedOn\DateTime parameters Rules
87. Effective Dated Entities-filter by lastModifiedDateTime scenarios Part-I
88. Effective Dated Entities-filter by lastModifiedDateTime scenarios Part-II
89. Effective Dated Entities-filter by lastModifiedDateTime scenarios Part-III
90. Effective Date Entities-filter by lastModifiedDateTime - Final Algorithm
Section 15: Effective Date Entities - Behavior with $expand
91. Effective Dated Entities behavior with $expand - Rules
92. Effective Dated Entities behavior with $expand - Further understanding - partI
93. Effective Dated Entities behavior with $expand - Further understanding - partII
Section 16: OData APIs : Push Operations
94. OData APIs : Push Operations : Overview
Section 17: OData APIs : Push Operations : INSERT
95. Section Overview : OData APIs : INSERT
96. INSERT : Is the operation supported by entity, required fields, URI, HTTP Verb
97. INSERT : Request Body : Are all fields supported for the operation?
98. INSERT : Allowable Field Values - Data Types and MaxLength
99. INSERT : Allowable Field Values - PickLists
100. INSERT : Allowable Field Values - MDF Objects
101. INSERT : Allowable Field Values - Navigation Links
102. INSERT : Allowable Field Values - OptionId or ExternalCode (PickList values)
103. INSERT : Perform Insert on the Entity via OData API
104. INSERT : Can Multiple Calls be posted in one OData Call
Section 18: OData APIs : Operations on Links
105. OData APIs : Links Overview
106. OData APIs : Query Operation On Links/Navigation
107. OData APIs : Create Operation on Links
108. OData APIs : Delete Operation On Links
109. OData APIs : Update Operation On Links
Section 19: OData APIs : Push Operations: UPDATE
110. UPDATE : Perform Update on the Entity via OData API
111. UPDATE : Perform a Replace Operation
112. UPDATE : Perform a Merge Operation
113. UPDATE : Some additional differences between Replace and Update Operation
Section 20: OData APIs : Push Operations : UPSERT
114. UPSERT : Introduction and initial call
115. UPSERT : Demystifying User and PerPerson relationship - a specific challenge
116. UPSERT : Further discussion over Upsert
117. UPSERT : processing parameter purgeType (full)
118. UPSERT : Which all entities support purgeType=full
119. UPSERT : processing parameter purgeType (incremental)
120. UPSERT : purgeType behavior with NO_OVERWRITE property of Entity
121. UPSERT : Understanding the EmpGlobalAssignment Object
122. UPSERT : processing parameter suppressUpdateOfIdenticalData
123. UPSERT : processing parameter fileLocale
124. UPSERT : Multiple Requests in one call
125. UPSERT : Multiple Inline Entity Types in one call -Part 1
126. UPSERT : Multiple Inline Entity Types in one call -Part 2
127. UPSERT : Avenue for Performance Improvement of Upsert call
Section 21: OData APIs : Operation : DELETE
128. DELETE : Deleting the entities
Section 22: Bonus
129. Use Case : Creating and Querying PickList entries
130. Use Case : Function Import : Add or remove users from the Static Group