Skip to Content
Author's profile photo Vijai Reghunath

Successfactors Odata API : JSON Query Issue

Successfactors Odata service uses Edm.DateTime ( January 1, 1753 to December 31, 9999) and the date is stored in the database in same format. Successfactors Odata api supports two formats : ATOM and JSON. When we query the database in ATOM (Atom XML) format there won’t be any issues as it returns values in date-time format. See below sample queries.

In ATOM format

https://<hostname>/odata/v2/PerPerson?$filter=personIdExternal+eq+’350196’&$format=ATOM

 

 In JSON format.

https://<hostname>/odata/v2/PerPerson?$filter=personIdExternal+eq+’350196’&$format=JSON

It returns Date value in epoch. Date(0) is returned because its 0 seconds elapsed since 1970-01-01 T00:00:00 UTC.

Now we will do a query which will return date = 31.12.9999.

———————————————————————————–

In ATOM format

https://<hostname>/odata/v2/EmpJob?$filter=userId+eq+’200’&$format=atom&$select=endDate

In JSON format

https://<hostname>/odata/v2/EmpJob?$filter=userId+eq+’200’&$format=json&$select=endDate

 

Date(253402300799000) is Jan 11, 1978, here it went wrong. So if you are dealing with dates, always prefer using ATOM format.

The maximum possible date value that could passed successfully in JSON format is Nov 16, 5138, l call it as “Year 5138 Problem” !!!

 

 

 

Assigned tags

      2 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Victor Joseph
      Victor Joseph

      For any kind of integration with SAP Successfactors , this is the must have course.

      Such a comprehensive course and taught in from the scratch, just the one I would recommend for any integration consultant and architect; its made available with money back guarantee , like it or money will be returned in 30 days:

      Details at: https://www.youtube.com/watch?v=1OtUTsHi_jE

      Following are the course details:

      Following is the course content, wherein more than 90% of the sessions are having hands on practical sessions and not only involving ppt slides:
      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

      129. Use Case : Creating and Querying PickList entries
      130. Use Case : Function Import : Add or remove users from the Static Group

      Author's profile photo Jason Lehmiller
      Jason Lehmiller

      The video is no longer at the link.  Would you please provide another link?