SF EC OData API REF
SF EC OData API REF
2 Advances. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.1 AdvancesAccumulation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59
2.2 AdvancesEligibility. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2.3 NonRecurringPayment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3 Apprentice Management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.1 Apprentice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69
3.2 ApprenticeEventType. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .71
3.3 ApprenticeInternalTrainingEvent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.4 ApprenticePracticalTrainingEvent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
3.5 ApprenticeSchool. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.6 ApprenticeSchoolEvent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
5 Deductions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
5.1 DeductionScreenId. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .90
5.2 OneTimeDeduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.3 RecurringDeduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
6 Employment Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
6.1 EmpBeneficiary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
6.2 EmpCompensation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
EmpCompensationCalculated. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100
EmpCompensationGroupSumCalculated. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
6.3 EmpEmployment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
6.4 EmpEmploymentTermination. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
6.5 EmpGlobalAssignment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
6.6 EmpJob. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
6.7 EmpJobRelationships. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
6.8 EmpPensionPayout. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
6.9 EmpWfRequest. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .130
6.10 EmpWorkPermit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
6.11 EmpPayCompNonRecurring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
6.12 EmpPayCompRecurring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
6.13 EmpTimeAccountBalance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
6.14 HireDateChange. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
6.15 EmpCostDistribution. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
EmpCostDistributionItem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
17 Workflow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .778
17.1 WfRequest. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 780
How do I access my assigned workflow requests?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 784
19 FAQs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 850
19.1 Admin Access to OData: What does it mean?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 850
19.2 API: Do I use OData or Compound Employee API for Employee Central entities?. . . . . . . . . . . . . . . . . . 850
19.3 APIs are missing or not up-to-date in the OData API Data Dictionary?. . . . . . . . . . . . . . . . . . . . . . . . . 851
19.4 Broken APIs: What causes them?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 851
19.5 Duplicate Records? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 852
19.6 Error message: Behavior in upsert statements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .853
19.7 Expanded entities: Handling deleted objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 854
19.8 How to have more than one pay component on the same pay date. . . . . . . . . . . . . . . . . . . . . . . . . . . .857
19.9 Inactive users: Do Employee Central OData APIs ignore them?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 857
19.10 Linking to custom MDF objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 858
19.11 Performance: How to improve it. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 858
19.12 Roundtrips: Why are there errors in some upserts?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 859
Learn about changes to the documentation for SAP SuccessFactors Employee Central OData API: Reference Guide
in recent releases.
1H 2022
Added We refined the topic and added the infor Side Effect: What Is It? [page 859]
mation about the rule context item "API".
Added We added the information about the Em Permission Settings [page 15]
ployee Data Import permissions re
spected in OData APIs.
Changed Updated the business keys for the non-re Business keys [page 47]
curring pay component entity.
Changed We modified the topic to include new navi EmpCostAssignmentItem [page 188]
gation properties for fund, fund center,
grant, functional area, and budget period.
New We added a new entity that contains Ger TimeTypeDEU [page 715]
many-specific fields that are the basis for
calculating default values for continued
sick pay dates and the sick pay supple
ment dates.
Added Added the description about the See the Properties and Navigation Prop
operation property. erties section of each API reference topic
(applicable to APIs that have this prop
erty).
Added Added a note about the date time fields Getting your time zones right [page 44]
<createdOn> and <lastModifiedOn>
This guide contains all information about OData v2 APIs in Employee Central, including API references, use cases,
and usage guidelines.
Recommended Read
Before you dive into this guide, here are a few recommended resources to help you better understand and use
Employee Central OData APIs. You can find the links to these resources in the Related Information section.
Resource Description
SAP SuccessFactors HXM Suite OData API: Developer Guide General guidelines about OData v2 APIs in SAP SuccessFac
(v2) tors HXM Suite, including general permissions, authentication,
metadata, query and edit operations, as well as how to use the
API Center tool to help you get your way around OData APIs.
SAP SuccessFactors HXM Suite OData API: Reference Guide A list of other OData v2 APIs in SAP SuccessFactors HXM
(v2) Suite.
Employee Central Compound Employee API The SOAP-based Compound Employee API allows you to ex
tract employee data out of Employee Central for data replica
tion purpose.
Implementing Employee Central Core Learn what data Employee Central stores and what capabilities
it offers so that you can better understand the Employee Cen
tral APIs.
SAP SuccessFactors HXM Suite OData API: Reference Guide Learn what OData v4 APIs are available in SAP SuccessFactors
(v4) HXM Suite. OData v4 is the latest version of the OData protocol
that offers more features and capabilities.
SAP API Business Hub A resource portal where you can find the specifications of all
APIs offered by SAP and try them out in your own environ
ment.
Related Information
We recommend using Employee Central OData APIs if one or more of these factors applies to your situation:
Note
● Your system cannot consume either OData APIs or SOAP for an initial data load. In this case, you would go
for Import/Export with a CSV. Automation via FTP would also be a possibility.
● You need employee replication field level delta, snapshot, or read modified employees only, then SOAP
Compound Employee API is your tool of choice. You can find more information in the guide Implementing
the Employee Central Compound Employee API.
● You only need to read data, then the SOAP Compound Employee API would also be your tool of choice.
There are two modes in Employee Central OData APIs which determine what a user or user group (in this context a
user and user group are treated as one and the same) is authorized to view or do.
● User Mode
Assigned permissions determine what entities can be viewed and what can be done with them. You sometimes
see the term RBP mode but in this guide, we use the term user mode.
● Admin Mode
The admin mode allows user full access to Employee Central OData API entities and operations. You only use
this in a limited number of cases, mostly for technical integrations. Admin mode overrides any RBP settings.
You sometimes see the term technical user or non-RBP mode, but in this guide we use the term admin mode.
Note
The upsert operation requires additional permission. See the Related Links section for more information.
Related Information
Employee Central OData APIs are part of the Employee Central solution. You don't need to make any settings in
Provisioning.
To have access to individual APIs, you also need the corresponding features enabled in Provisioning. For example if
you're using Global Assignment, the corresponding Provisioning setting must be enabled. You can find more
information in the implementation guides for your feature available on https://help.sap.com/hr_ec/.
Remember
As a customer, you don't have access to Provisioning. To complete tasks in Provisioning, contact your
implementation partner or Account Executive. For any non-implementation tasks, contact Product Support.
Learn what role-based permissions are required before you can use Employee Central OData APIs.
This topic covers only the permissions required for accessing Employee Central OData APIs. For general
permission settings, refer to the documentation in the Developer Guide in Related Information section.
Employee Central HRIS (Person and Employment Objects) and Workflow OData
APIs
User Mode (Query Only) ● Effective-dated entities: You can grant view permissions
User Permissions Employee Central Effective Dated at entity and field levels.
Admin Mode (Query) Administrator Permissions Employee Central API This permission allows users to
Employee Central HRIS OData API (read-only) query all HRIS objects and over
rides entity-level and field-level
view permissions.
Admin Mode (Upsert) Administrator Permissions Employee Central API This permission allows users to
Employee Central HRIS OData API (editable) upsert all HRIS objects and
overrides entity-level and field-
level edit permissions.
User Mode Administrator Permissions Manage Foundation Objects You can grant view and edit per
Types missions at entity level.
Admin Mode (Query) Administrator Permissions Employee Central API This permission allows users to
Employee Central Foundation OData API (read-only) query all Foundation Objects
and overrides entity-level view
permissions.
Admin Mode (Upsert) Administrator Permissions Employee Central API This permission allows users to
Employee Central Foundation OData API (editable) upsert all Foundation Objects
and overrides entity-level edit
permissions.
User Mode ● Administrator Permissions MDF Foundation Objects You can grant view and edit per
missions at entity level. To set
● Administrator Permissions Metadata Framework
field-level permissions that over
Access to non-secured objects
ride entity-level permissions, se
lect Field Level Overrides.
Admin Mode (Query and Administrator Permissions Metadata Framework Admin This permission allows users to
Upsert) Access to MDF OData API query and upsert all Generic Ob
jects and overrides entity-level
and field-level permissions.
Note
If you have the Admin Mode
authorizations for Founda
tion Objects, you have the
corresponding authoriza
tions for Generic Objects
without setting this permis
sion.
The following permissions for Employee Data Import also apply to OData APIs.
Administrator Permissions Employee Central Import Enable Workflows for selected Workflows attached with the
Settings entities selected Employee Central Im
port entities are triggered
when you’re importing em
ployee data.
Take a look at this table in case you need to arrange access to picklist management, SOAP APIs, API tools, or even
restrict access.
Picklist Handling in OData Administrator Permissions Manage System Properties For more information, see pick
and SOAP Picklist Management and Plicklists Mapping Set Up lists.
Access Employee Central Administrator Permissions Employee Central API You can grant access to Em
HRIS SOAP APIs ployee Central HRIS SOAP APIs
Employee Central HRIS SOAP API
here.
The following Entity Relation Diagram shows the relationship between the different entities. The Person and
Employment objects make up Employee entities. In this diagram, the K fields denote business keys. The field
names here are from the HRIS element.
The images that follow are not complete but show a representation of some of the most important entities and
their relationships within the Employee Central OData Structure. For a complete list of available entities, you
can:
odata/v2/$metadata
odata/v2/PerPerson?$filter=personIdExternal+eq+’cgrant1’&$expand=emailNav
This request will return PerPerson entity for cgrant1 and all her emails embedded within the response for PerPerson
entity. For more examples and their responses refer to the section on entities.
Note
The names within << >> provide the name used on the UI while the name next to the +sign denotes a business
key. For example, <<PerAddressDEFLT>> is referred to on the UI as Address Information. It also shows that the
following fields are used as business keys: personIdExternal, startDate, and addressType.
The diagram above shows the major navigations going out of the PerPerson entity while the next diagram shows
the major relationships navigating to the PerPerson entity.
Likewise, the next two diagrams show the navigations from and to the EmpEmployment entity.
The next two diagrams show the navigations from and to the EmpJob entity.
The next diagram shows the relationship for the User entity. In this diagram, the names next to the PicklistOption
box show fields of User entity that are navigating to the PicklistOption entity. Likewise, for User entity. Additionally,
the arrow pointing back to itself shows that the User entity navigates back to the User entity. For example, the User
entity of a manager navigates to the User entity of the direct report using the directReports navigation.
The next diagram shows the relationship for the EmpCompensation entity.
Odata APIs supports navigation for associated entities. For examples of supported scenarios, refer to the section
describing the OData entity.
For Employee Central fields configured as picklists in data model, navigation is available from Employee Central
entities to the Picklist entity.
Employment related entities such as EmpJob, EmpEmployment and EmpCompensation can navigate to the User
entity.
Foundation Object entities can also navigate to the User entity. For example, the manager of the Cost
Center(costcenterManager) in the FOCostCenter entity or the head of the unit(headOfUnit) in the FODivision can
navigate to the User entity. Custom field configured in the Corporate Data Model with Type=Worker can also
navigate to the User entity.
Fields in Employee Central referring to MDF objects such as the Position field in Job Information(EmpJob entity)
can navigate to the position MDF entity. Custom fields configured as MDF type can also navigate to the related MDF
entity.
Note
The navigations described for the Picklist entity, User entity and MDF entity (in the previous sections) are
supported for foundation object navigation as well.
In OData APIs, Employee Central fields related to country can navigate to the Territory Entity. For example,
navigation to the Territory entity exists for the following cases:
● countryOfBirth in PerPerson
● country field in PerNationalIdCard
● FOJobClassLocal
● PerGlobalInfoUSA
Country-specific entities (CSF entities) are defined in the Country Specific Data Model. Examples of such entities
are:
The parent entity can navigate to CSF child entity. For example:
The OData API supports navigation from the CSF entity to the territory entity to get detailed information about the
country.
Some of the CSF parent entities like FOLocation and PerPerson also provide navigation to address information. For
example, FOLocation to FOCorporateAddressDEFLT and PerPerson to PerAddressDEFLT.
Person related entities such as PerPhone, PerEmail can navigate to PerPerson entity; EmpEmployment entity can
navigate to PerPerson entity too.
● PerPersonal
● PerPhone
● PerEmail
● PerNationalId
● PerEmergencyContact
● EmpEmployment
OData APIs support navigation from Employment related entities such as EmpJob, EmpCompensation to the
EmpEmployment entity and vice-versa.
OData APIs support navigation of the User Entity to the EmpEmployment entity.
MDF entities, depending on their configuration, can offer navigation to the User Entity and Employee Central
Foundation Objects.
This section describes the different types of country/region-specific logic for Employee Central entities and
Foundation Objects (FO). The Employee Central country/region-specific configuration allows the use of different
labels in the Succession Data Model and in the Country/Region-Specific Succession Data Model for one field.
SOAP APIs have limitations in accessing country/region-specific information. We recommend you to use OData
APIs that provide the same functionalities with better performance.
1.7.1 EmpCompensation/EmpJob/EmpEmployment
The Employee Central CSF configuration allows the use of different labels in the Succession Data Model and the
Country/region-Specific Succession Data Model for a field. However, the data type must be the same. For this
reason, all fields from the CSF and the Succession Data Model are merged in the entity and a separate CSF entity
doesn't exist.
Note
Due to this design, different labels of the country/region-specific entities are not available in the OData
metadata yet.
1.7.2 PerGlobalInfo<Country/Region>
Countries or regions which have not been defined in the Country/region-Specific Succession Data Model for the
HRIS element globalInfo aren't visible in OData as a PerGlobalInfo<Country/Region> entity. Because it is not
possible to define the HRIS element globalInfo in the Succession Data Model, there is also no PerGlobal default
entity.
For upsert, there is no restriction on the country or region entity used. For example, the PerGlobalInfoUSA entity
can be used to upsert records for USA, India, and Germany.
1.7.3 FOCorporateAddressDEFLT /
HrisEmergencyContactAddressDEFLT
You can define the attributes of the fields for these entities differently for countries and regions in the Succession
Data Model and the Country/region-Specific Data Model. As it is not possible to have multiple entities per country
or region, the OData API for these entities offers a single field for all countries and regions.
Here are some things to consider before you use the API:
● If a field is configured in both the Succession Data Model and Country/region-Specific Succession Data Model,
the OData API exposes the field as is configured in the Succession Data Model.
● If a field is configured in the Country/region-Specific Succession Data Model for multiple countries or regions,
the OData API exposes the field as is earliest configured for a country or region on the XML.
● The OData API checks the length for all country/region-specific configurations and uses the maximum length.
For corporateAddress, the parententity: FOLocation has a field name, <addressId> which can uniquely identify
the related corporateAddress field. The same goes for emergency contact’s address info (addressId).
1.7.4 PerAddressDEFLT
You can define the attributes of the PerAddressDEFLT fields differently for countries and regions in the
Succession Data Model and the Country/region-Specific Data Model. As it is not possible to have multiple entities
per country or region, this OData API exposes a single entity PerAddressDEFLT, and offers a single field for all
countries and regions.
Here are some things to consider before you use the API:
● If a field is configured in the Country/region-Specific Succession Data Model for multiple countries or regions,
the OData API exposes the field as is earliest configured for a country or region on the XML.
● If a field is configured in both the Succession Data Model and Country/region-Specific Succession Data Model,
the OData API exposes the field as is configured in the Succession Data Model.
● The OData API checks the length for all country/region-specific configurations and uses the maximum length.
● If a field is configured as a picklist for all countries or regions in the Country/region-Specific Data Model, the
OData API exposes the field as a picklist even if different picklists are used. For example, custom_string1 can be
defined for corporateAddress of DEU as picklist=A1, and it can be also defined for corporateAddress of
country=USA as picklist=B1.
● If a field is configured with a different type (Worker / FO / MDF / picklist), the field is ignored in the OData API
query. This applies to the following scenarios:
○ the Succession/Corporate Data Model and the Country/region-Specific Corporate Data Model have
different types, OR
○ the Country/region-Specific Data Model for different countries and regions have different types defined for
the same field. For example, type is defined as a picklist for USA and type is defined as a FO for DEU.
● If there is no country-specific data defined for the HRIS element homeAddress, the definition specified in the
Succession Data Model will be used.
1.7.5 FOLegalEntityLocal<Country/Region>
The same field can be defined differently in the Succession Data Model and the Country/region-Specific Data
Model for attributes like visibility, required, picklist, and type. The OData API supports this by providing different
For FOLegalEntityLocal<Country/Region>, the parent entity FOCompany has three fields: externalCode,
startDdate and country which can uniquely identify the related legal entity local record.
1.7.6 FOJobClassLocal<Country/Region>
For the HRIS element jobClassLocal, the OData API provides the FOJobClassLocal<Country/Region> entity for
each country or region defined in the Country/region-Specific Data model. For all other countries and regions not
defined in the Country/region-Specific Data model, the FOJobClassLocalDEFLT entity is used.
1.7.7 PerNationalId
This entity contains national identification card information for an employee. Only the format of the HRIS element
nationalId can be defined in the Country/region-Specific Succession Data model. Other fields for the HRIS element
nationalId must be defined in the Succession Data Model. There is no special handling required for National ID with
respect to the OData API query operation.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
Request
Operation Query
URI https://<api-server>/odata/v2/
PerNationalId(cardType='TFN',country='AUS'
,personIdExternal='106032')?$format=JSON
Response
{
"d": {
"__metadata": {
"uri": "https://<api-server>/odata/v2/
PerNationalId(cardType='TFN',country='AUS',personIdExternal='106032')",
"type": "SFOData.PerNationalId"
},
"country": "AUS",
"personIdExternal": "106032",
"cardType": "TFN",
"lastModifiedDateTime": "/Date(1441856057000+0000)/",
"notes": null,
"nationalId": "123 456 789",
"createdBy": "admindlr",
"isPrimary": true,
"lastModifiedBy": "admindlr",
"createdDateTime": "/Date(1441856057000+0000)/",
"createdOn": "/Date(1441841657000)/",
"lastModifiedOn": "/Date(1441841657000)/",
"personNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
PerNationalId(cardType='TFN',country='AUS',personIdExternal='106032')/personNav"
}
},
"countryNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
PerNationalId(cardType='TFN',country='AUS',personIdExternal='106032')/countryNav"
}
}
}
}
To understand date handling for Employee Central Entities, you need to understand the concepts of effective
dating, multiple changes per day (MCPD) and last modified query behavior.
Take a look at the related topics, if these concepts are new to you.
Related Information
The effective dating mechanism enables entities to have an effective start date and an effective end date, and a
record becomes effective between its start date and end date. Effective dating ensures that there is no time gap
between records, and enable you to track historical data accurately.
Effective-Dated Entities
For an effective-dated entity, when you insert a new record, the end date of the previous record is automatically set
to the day before the effective start date of the new record. And the new record is automatically assigned an end
date of 12-31-9999.
Note
● When you insert a record for an effective-dated entity, do not provide the end date in your request URI. End
dates are assigned by system automatically. If you provide a different end date, the system cannot accept
the record and returns errors.
UI Behavior
When you edit an existing record in an effective-dated entity, this is same as making an incremental upsert using
the API with a new key (that is a new date or sequence number).
When querying an effective-dated entity, you can use parameters asOfDate, fromDate, and toDate as filters to
query the history or future records.
There are two ways to query effective-dated entities. You can use either one but you cannot use both in one query.
When you use these parameters, you need to define the date in the format YYYY-MM-DD, or errors occur.
● asOfDate query: Returns one single effective record as of the specified date.
● fromDate and toDate query (also known as date range query): Returns records effective between the
specified date range.
If no asOfDate parameter or date range parameter is specified, by default asOfDate = Today (the current date
of the query) is applied to the query. For example, if you query EmpJob with https://<api-server>/odata/v2/
EmpJob on 2021-03-29, it returns the EmpJob record effective as of 2021-03-29.
The URI parameters asOfDate, fromDate, toDate are global Employee Central parameters but not standard
OData parameters. They aren’t preceded by the $ symbol as other OData parameters. When you use these
parameters with $expand, they’re applied to the root entity specified in the query request and also to the
expanded entities. See Effective-Dated Entities with $expand.
Related Information
Use the date range parameters fromDate and toDate to query records of effective-dated entities that are
effective between a defined time interval.
In a date range query, the returned records should have an effective start date no later than toDate, and an
effective end date no earlier than fromDate. A query in which fromDate equals to toDate is also regarded as a
date range query.
You can use the two parameters in pairs, or use either of them. If you only specify fromDate in the request, the
system end date is used as toDate. And if you only specify a toDate, the system start date is used as fromDate.
In this way an effective date range is defined.
Examples
Request: https://<api-server>/odata/v2/PerPersonal?fromDate=2020-12-31
Results: Returns the PerPersonal records effective from 2020-12-31 to the system end date.
Request: https://<api-server>/odata/v2/PerPersonal?toDate=2020-12-31
Results: Returns the PerPersonal records effective from the system start date to 2020-12-31(included).
Request: https://<api-server>/odata/v2/PerPersonal?fromDate=2010-12-31&toDate=2020-12-31
Request: https://<api-server>/odata/v2/PerPersonal?&$filter=startDate+gt
+datetime'2012-10-30T00:00:00'&fromDate=01-01-1990&
$select=startDate,createdOn,personIdExternal
Results: Returns the PerPersonal records effective from 2012-10-30 to the system end date.
Note
If you remove the fromDate parameter, fewer records are returned. This is because without any date range or
asOfDate parameter specified, asOfDate=Today is applied before the filter is applied.
Use the asOfDate parameter to query records of effective-dated entities effective on a defined date.
In an asOfDate query, the returned records should have asOfDate between their effective start date and effective
end date.
If no asOfDate parameter or date range parameter is specified, by default asOfDate = Today (the current date
of the query) is applied to the query.
Examples
Request: https://<api-server>/odata/v2/PerPersonal?asOfDate=2020-02-16
Request: https://<api-server>/odata/v2/PerPersonal
Request: https://<api-server>/odata/v2/PerPersonal?$filter=standardHours+gt
+'20'&asOfDate=2020-01-01
Results: Returns the PerPersonal records that meet the requirements and are effective on 2020-01-01.
Know about the behaviors when you query effective-dated entities with $expand.
You can use one of the following ways to query effective-dated entities with $expand.
● asOfDate query: Returns one single effective record as of the specified date. If no asOfDate parameter or
date range parameter is specified, by default asOfDate = Today (the current date of the query) is applied to
the query.
● fromDate and toDate query (date range query): Returns records effective between the specified date range.
For a Picklist field, the navigated entity is PicklistValue. When expanding a Picklist field, the
effectiveStartDate/effectiveEndDate of the Picklist entity are used, because PicklistValue is not
effective-dated.
Know about the behaviors when you query effective-dated entities with $expand.
● The date range parameters fromDate and toDate can only apply to the root entity.
● ○ If all the navigated entities are effective dated, each navigated entity applies an query in which asOfDate =
effective start date of its parent entity.
○ If one or more navigated entities are not effective dated, each navigated entities before the first non
effective-dated entity applies an query in which asOfDate = effective start date of its parent entity, and the
other effective-dated entities apply an query in which asOfDate = Today (current date of the query).
Request
https://<API-Server>/odata/v2/EmpJob?fromDate=2020-03-15&toDate=2020-03-30&
$expand=departmentNav
Result
EmpJob record 1 + FODepartment record 1, EmpJob record 2 + FODepartment record 3, EmpJob record 3 +
FODepartment record 4.
Request
https://<API-Server>/odata/v2/EmpJob?fromDate=2020-03-15&toDate=2020-03-30&
$expand=departmentNav,departmentNav/costCenterNav
Result
This will return the same EmpJob and FOCostCenter records as in example 1. Each FODepartment record has
one single FOCostCenter record that is effective as of the start date of the parent entity.
asOfDate Query
In a asOfDate query, the asOfDate parameter applies to all effective-dated objects in the request.
Request
https://<API-Server>/odata/v2/EmpJob?asOfDate=2020-03-30&$expand=departmentNav
Result
Know about the behaviors when you query non-effective-dated entities with $expand.
● The date range parameters fromDate and toDate can only apply to the first effective-dated entity in a
navigation path.
● For the entities after the first effective-dated entity in the navigation path:
○ If all the navigated entities are effective dated, then each navigated entity applies a query in which
asOfDate = effective start date of its parent entity.
○ If not all navigated entities are effective dated, then each navigated entity before the first non-effective-
dated entity applies a query in which asOfDate = effective start date of its parent entity, and the other
effective-dated entities apply a query in which asOfDate = Today (current date of the query).
Request
https://<API-Server>/odata/v2/EmpEmployment?fromDate=2020-03-15&toDate=2020-03-30&
$expand= empJobRelationshipNav
Result
This request returns the non-effective-dated EmpEmployment record, and the EmpJobRelationships records
effective between 2020-03-15 and 2020-03-30.
Request
https://<API-Server>/odata/v2/PerPerson?&$expand=employmentNav, employmentNav/
empJobRelationshipNav$fromDate=2020-03-03&toDate=2020-03-27
Result
This request returns the non-effective-dated PerPerson and the non-effective-dated EmpEmployment records,
with the EmpJobRelationships records effective between 2020-03-03 and 2020-03-27.
asOfDate Query
The asOfDate parameter applies to the effective-dated entities in the navigation path.
This request returns the non-effective-dated EmpEmployment record and the EmpJobRelationships record
effective as of 2020-03-15.
If you update an MCPD entity multiple times in one day, each update is assigned a sequence number, which
provides a history of all changes made to the entity for that day. The folllowing entities support MCPD:
● EmpJob
● EmpCompensation
● EmpPayComponentsRecurring
To see the MCPD entities in your own instance, you can check whether the entity has the business key seqNumber.
If you want to filter all history records for MCPD entities, make sure to enable the seqNumber property by setting
enabled="Yes" in BCUI. For more information about using BCUI to modify your data model, see Setting Up and
Using Business Configuration UI (BCUI).
Note
If seqNumber is disabled for MCPD entities, when you query history records, only one record is returned
randomly of the day.
● In date range query, all records on the same day will be returned. Please note that there might be gaps in
sequence numbers if records have been deleted.
● In asOfDate query, only the record with the largest sequence number of the day will be returned.
Examples
The user "cgrant" has four EmpJob records and four EmpCompensation records as follows.
EmpJob Records
EmpCompensation Records
Request: https://<api-server>/odata/v2/EmpJob?userId+eq+'cgrant'&
$fromDate=2017-03-15&toDate=2020-03-30
Request: https://<api-server>/odata/v2/EmpJob?userId+eq+'cgrant'&$asOfDate=2017-11-02
Result: Record 2
Request: https://<api-server>/odata/v2/EmpEmployment?
fromDate=2017-03-15&toDate=2020-03-30&$expand=jobInfoNav
Example 4: Date range query with navigation from EmpCompensation (MCPD entity) to EmpJob
(MCPD entity)
Request: https://<api-server>/odata/v2/EmpCompensation?userId+eq+'cgrant'&
$fromDate=2017-03-15&toDate=2020-03-30&$expand=jobInfoNav
Result: The EmpCompensation record 1, 2, 3, and 4 with the the EmpJob records 1, 2, 4.
Note
Both entities have multiple records on 2017-11-02. For EmpCompensation, the date range parameter are
applied, so all records are returned. For EmpJob, the asOfDate parameters are applied, so only the record with
the largest sequence number is returned.
Learn about how to query the last modified information of effective dated entities.
The fields lastModifiedOn and lastModifiedDateTime store the date and time of the last change or creation
in two different formats. lastModifiedOn with the DateTime format represents the date information in UTC time,
and lastModifiedDateTime with the DateTimeOffset format represents the date information with timezone
offset information. For more information about the two formats, see the Related Information.
When you to create a last modified date query for an effective dated entity, you can use one of the following:
Or
Related Information
You can specify the lastModifiedDateTime field in a filter to query effective dated records based on the last
modified date and time. The behavior and usage of lastModifiedOn is the same. Filters on both parameters work
in the same way for all Employee Central effective dated entities.
When the lastModifiedDateTime is part of a filter, without the fromDate and toDate query options, the
system handles the query using the asOfDate eq (today's date) option by default. That is, if any of the
employee's records was updated or deleted, and the date satisfies the lastModifiedDateTime filter, the
response contains only the current effective dated record of the employee. See Example 2 in the Examples section.
For more information about using asOfDate, see asOfDate Query [page 36].
When you use the lastModifiedDateTime filter together with the fromDate or toDate query options, all the
records that are effective in the fromDate or toDate time interval are returned. That is, if any of the employee's
records was updated or deleted, and the date satisfies the lastModifiedDateTime filter, the response contains
all the records that are effective in the time interval specified by the fromDate or toDate query options. See
Example 3 in the Examples section. For more information about using fromDate and toDate, see fromDate and
toDate (Date Range) Query [page 35].
To meet various needs for individual users, the behavior of lastModifiedDateTime is different, depending on
whether you put the lastModifiedDateTime parameter on the left or right. For example, two queries that
contain $filter=lastModifiedDateTime+ge+datetime'2018-03-01T00:00:00' and
$filter=datetime'2018-03-01T00:00:00'+le+lastModifiedDateTime return different results, even
though the criteria looks the same. With lastModifiedDateTime in different positions, the search scope is as
follows:
Examples
LastModifiedDate
Record User ID StartDate EndDate SeqNumber Time
Example 1
Request: https://<hostname>/odata/v2/EmpJob?userId+eq+'cgrant'
Result: record 1.
The result contains only the current effective dated record, which is record 1.
Example 2
Request: https://<hostname>/odata/v2/EmpJob?$filter=lastModifiedDateTime+gt
+datetimeoffset'2011-01-01T00:00:00Z'+and+userId+eq+'cgrant'
Result: record 1.
The asOfDate eq (today's date) option is used by default. The result contains only the current effective
dated record, which is record 1.
Then assume that the last record was deleted on March 2, 2018.
Example 4
After the last record was deleted on March 2, 2018, run the following query:
Request: https://<hostname>/odata/v2/EmpJob?$filter=lastModifiedDateTime+gt
+datetimeoffset'2018-03-01T00:00:00Z'+and+userId+eq+'cgrant'
Result: record 1.
Because the lastModifiedDateTime parameter is on the left side, the system first checks the entity records and
finds that there is no record satisfying the filter. Then, the system checks the audit log and finds that the last data
change happened on March 2, 2018, which satisfies the filter. So the current effective dated record of "cgrant" is
returned, which is record 1.
Example 5
Request: https://<hostname>/odata/v2/EmpJob?
$filter=datetimeoffset'2018-03-01T00:00:00Z'+le+lastModifiedDateTime+and+userId+eq
+'cgrant'
Result: no record.
Because the lastModifiedDateTime parameter is on the right side, the system checks only the entity records,
where no record satisfies the filter.
Note
● If an effective dated record is deleted, it cannot be found in the entity records, but it still exists in the audit
log.
● If all records of the employee were deleted, no record is returned in the response, no matter whether the
lastModifiedDateTime parameter is on left or right. Because the entity is empty, no record can be
returned by using the asOfDate option.
It’s crucial that you do not mix and match the different time zones otherwise you’ll end up with inconsistencies so
please take a minute to familiarize yourself with how we handle time zones. Different fields, for example,
<lastmodifedDateTime>,< lastmodifiedDate>, and so on represent different time zones and you need to be
able to tell the difference.
Recommendation
To avoid inconsistencies, we recommend that you always use the UTC time zone.
To know which field is in which time zone, you also need to know the oData protocol type that supports the field. We
use:
Usually, but not always, the following fields are of the type Edm.DateTime and are in the server time zone.
● <createdDate>
● <createdOn>
● <lastModifiedDate>
● <lastModifiedOn>
Note
<createdOn> and <lastModifiedOn> will represent UTC time after the server migrates to UTC.
Examples of exceptions
Here are few examples of exceptions where the fields createdDate, createdOn, or lastModifiedDate are not of the
type Edm.DateTime but are of the type Edm.DateTimeOffset.
You must be sure to check entities on a case-by-case basis yourself. This list of exceptions is not exhaustive.
Attachment createdDate
Background_* lastModifiedDate
Edm.DateTimeOffset (=UTC)
Usually, but not always, the following fields are of the type Edm.DateTimeOffset and are in the UTC time zone.
● <createdDateTime>
● <lastModifiedDateTime>
● <lastModifiedDatewithTZ>
● < lastModifiedWithTZ>
Although there are currently no known exceptions to this rule, we recommend that you check the entities on a
case-by-case basis yourself.
Example: PerPhone
Take a look at the snippet of code below – here you can clearly see that the different time zones are available in the
entity as represented by the <createdOn>, <createdDateTime>,< lastModifiedOn>, and
<lastModifiedDateTime>.
<m:properties>
<d:personIdExternal>achin1</d:personIdExternal>
<d:phoneType>5845</d:phoneType>
<d:extension m:null="true" />
<d:createdOn m:type="Edm.DateTime">2011-03-17T21:39:02</d:createdOn>
<d:isPrimary m:type="Edm.Boolean">true</d:isPrimary>
<d:phoneNumber>661 2000</d:phoneNumber>
<d:createdBy>admin</d:createdBy>
<d:lastModifiedBy>admin</d:lastModifiedBy>
<d:createdDateTime m:type="Edm.DateTimeOffset">2011-03-18T01:39:02Z</
d:createdDateTime>
<d:lastModifiedOn m:type="Edm.DateTime">2011-03-17T21:39:02</
d:lastModifiedOn>
<d:lastModifiedDateTime m:type="Edm.DateTimeOffset">2011-03-18T01:39:02Z</
d:lastModifiedDateTime>
</m:properties>
Employee Central Entities allow you to create and manipulate employee data. Navigation in an entity represents
associations between entities. Each entity can have the following properties.
● Effective dating
● Business keys
● Required/nullable attribute
● Processing parameters for upsert
You can determine the mapping relationship between the properties and HRIS fields by the property names and
field identifiers. Converted from the identifiers of the corresponding HRIS fields, property names are generated by
removing the underscores or hyphens in the field identifiers and capitalizing the first letters after underscores or
hyphens. For example, the property birthName corresponds to the HRIS field birth-name.
If you need to retrieve changed records, then you will be wanting to use the lastmodifeddate in your query.
Business Case
You might need to retrieve changes to records when you are synchronizing systems using APIs, for example from a
SF instance to a client local database.
How do I do that?
You can use a last modified query. Take a look at the example below
If you need to retrieve changes to records, then you will be wanting to use last modified query. For example if you
want to sync EmpJob
Operation GET
URI http://<Hostname>/odata/v2/EmpJob?
fromDate=01-01-1900&
$filter=lastModifiedDateTime+gt
+datetimeoffset'2016-02-01T12:40:03Z'
Sample Code
Extract from response to the above query focussing on the last modified information. Take note that the query
is for records changed after 2016-02-01T12:40:03Z but that the request has returned last modified information
that predates this.
<m:properties>
<d:startDate m:type="Edm.DateTime">2015-08-01T00:00:00</d:startDate>
<d:userId>215</d:userId>
.....
<d:lastModifiedDateTime m:type="Edm.DateTimeOffset">2015-08-13T14:01:06Z</
d:lastModifiedDateTime>
.....
<d:lastModifiedOn m:type="Edm.DateTime">2015-08-13T10:01:06</
d:lastModifiedOn>
....
</m:properties>
Business keys are a set of fields that uniquely identify a record for an entity. Each entity, at minimum, uses the
following fields to make up a business key:
<allow-import>=false:
user_id + pay_date +
pay_comp_code is the busi
ness key.
<allow-import>=true:
user_id + sequence_number
(when the sequence number
is included) is the business
key.
FOFrequency external_code
FOWfConfig external_code
FODynamicRole external_code
Note
It is important that the business keys be unique. It is recommended that business keys in data models be
defined as required=true. In case, duplicate records are found, only one record will be returned and others
ignored.
For Employee Central entities, some property attributes can be configured by data model, but other property
attributes are set by default and cannot be configured.
Note
Please note these rules apply to most cases but not to all. You might be able to configure the same property
attributes for some fields but not for other fields.
● Label
● Label
● Required (This attribute is always set to "true" for business keys, which is different from the Employee Central
SFAPI behavior.)
● Visible
● Upsertable
● Max length
● Picklist
● Nullable (By default this attribute is set to "false" for business keys, and set to "true" for the other fields.)
The Employee Central Upsert API supports the purgeType parameter to update a record incrementally or by full
purge. If no parameters are provided, the system checks whether the entity being updated supports incremental
update. If it does, an incremental update is performed. Else, the system performs a full purge on the record.
1.9.5 suppressUpdateOfIdenticalData
Many a times, during replication, the source system does not have information about changes to a field or entity
level. As a result, more than necessary data is transferred; in some cases, a full replication is triggered from the
third-party system into Employee Central. This results in an update of records in Employee Central even if those
records are not changed. If other integration transferring data out of Employee Central are based on the audit
information in Employee Central they will always get data even if there was no change.
OData supports a mode called suppressUpdateOfIdenticalData which can be enabled to ensure that records are
updated only if needed. This means that data will not be updated by imports/OData API calls if there is no change
i.e. if the payload and the data in the system is the same. In such a case, there is no update to last_modified dates,
no creation of audit information and no change to entity data.
● PerPerson
● PerPersonal
● EmpEmployment
● EmpJobInformation
A typical request with the suppressUpdateOfIdenticalData parameter would look like this:
http://<hostname>/odata/v2/upsert?purgeType=full&suppressUpdateOfIdenticalData=true
1.9.6 fileLocale
What is it?
A new url parameter, fileLocale, is now available for upserts. en_US is currenty supported so in other words, like the
UI and the import engine, OData APIs now support the internationalization of floating decimal points.
You’ll be able to avoid roundtrip inconsistencies that arise when your API user locale is not en_US. Up to now, you
could only address this problem by changing the user locale which in many cases is impractical.
When you|re replicating data from 3rd party systems, the Employee Central system by default will always read data
as if the locale is en_US. This is not problematic if the API user locale is also en_US and the upserted data uses US
decimal notation.
If however, your API user locale is not en_US and is for example de_DE, you’d end up with roundtrip inconsistencies.
This is because when an application reads data in a productive system using an OData API query and subsequently
copies it into another system using an upsert statement, the number fields are rendered in the locale of the API
user and in the case of user locale = de_DE, you'll end up with inconsistencies because en_US and de_DE use a
different decimal notation.. fileLocale=en_US will solve this problem.
Good to know
If you API users locale is en_US, you will not need to use fileLocale=en_US.
Add fileLocale=en_US to your upsert queries when your user locale is not en_US.
Your API user locale is de_DE. So, when upserting, make sure to use the following:
Query: https://<hostname>.com/odata/v2/upsert?fileLocale=en_US
Payload:
Sample Code
{
"__metadata": { "uri":"EmpEmployment" },
"personIdExternal": "aaaa",
"userId": "aaaa", "InitialOptionGrant": "224.8",
"InitialStockGrant": "31,000"
}
1.10 Pagination
You can avoid lost or duplicated records by using cursor-based and snapshot-based pagination in some of the
Employee Central entities.
Note
For more information about pagination options of OData API, see Pagination.
Cursor-Based Pagination
You can use this feature for the following Employee Central entities:
EmpJob
EmpEmployment
EmpCompensation
EmpPayCompRecurring
EmpPayCompNonRecurring
FOLocation
The following table shows what the primary key is for the entity along with the additional information of the table
name and its type.
Snapshot-Based Pagination
Snapshot-based pagination is supported by all Employee Central entities. Entity types with multiple business keys
might be slower if they are not optimized for snapshot-based pagination.
As of 1H 2020 Release, the following Employee Central entities have been optimized for snapshot-based
pagination:
● PerPersonal
● EmpJob
● EmpEmployment
● FOLocation
● FOPayGrade
● MDF Foundation Objects
Use Cases
Operation Query
URI https://<API-Server>/odata/v2/EmpJob?
$format=json&customPageSize=3&
$select=userId &paging=snapshot
Response:
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
EmpJob(seqNumber=1L,startDate=datetime'2007-07-01T00%3A00%3A00',userId='dselig1')"
},
"userId": "dselig1"
},
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
EmpJob(seqNumber=1L,startDate=datetime'2002-03-01T00%3A00%3A00',userId='sproctor1')"
},
"userId": "sproctor1"
},
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
EmpJob(seqNumber=1L,startDate=datetime'2002-10-01T00%3A00%3A00',userId='tbotts1')"
},
"userId": "tbotts1"
}
],
"__next": "https://<API-Server>/odata/v2/EmpJob?customPageSize=3&
$skiptoken=eyJzdGFydFJvdyI6MywiZW5kUm93Ijo2LCJwYWdpbmciOiJzbmFwc2hvdCIsInBhZ2VTaXplI
jozLCJzbmFwc2hvdE5hbWUiOiJzbmFwc2hvdF8wYWVlMTAzZl8xNTRiXzQwNTVfOTM5MF84N2VlNTk2ZDkxZ
mZfcHM0YnNmYXBpNTN0XzM4NCJ9&paging=snapshot&$format=json&$select=userId"
}
}
Operation Query
URI https://<API-Server>/odata/v2/FOLocation?
$format=json&customPageSize=3&
$select=externalCode &paging=cursor
Response:
{
"d": {
"results": [
When you import employee data, you can perform a partial import, which is updating specific fields without
overwriting the values of the other fields. In this case, you enter &&NO_OVERWRITE&& in the fields whose value
you don't intend to modify.
Request
Operation Upsert
URI https://<API-Server>/odata/v2/upsert
Response
{
"d": [
{
"key": "PerPersonal/personIdExternal=109031,PerPersonal/
startDate=2019-10-22T00:00:00.000-04:00",
"status": "OK",
"editStatus": "UPSERTED",
"message": null,
"index": 0,
"httpCode": 200,
"inlineResults": null
}
]
}
Note
You can check whether an entity supports the use of &&NO_OVERWRITE&& in the HRIS Element Information
section of the entity-level topic. Or you can find object information that cannot be uploaded using partial import on
Which object information cannot be uploaded using the Partial Import (&&NO_OVERWRITE&&)?.
Now, external users are able to access some commonly used Employee Central entities.
External users, relative to internal users, aren’t yet employees but still require access to SAP SuccessFactors HXM
Suite. External users are represented by status e (active_external_suite) and d (inactive_external_suite).
External users with required field-level permissions from User Permission Employee Data can access the
following Employee Central entities:
● PerPersonal
● PerPersonRelationship
Note
Only external user data are returned. External users cannot access internal user data via Employee Central
OData APIs.
2.1 AdvancesAccumulation
This entity records the accumulation of the requested advance and remaining eligibility for the user. It is not an
effective dated entity in the Advances module. This entity is created when an advance is approved by the
superviser.
Note
This API is read-only. To create or edit data, please use imports function.
Supported Operations
Query
Use Case: Get details of the accumulation of the requested advance and
remaining eligibility for the user
Request
Operation Query
URI https://<api-server>/odata/v2/
AdvancesAccumulation
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
AdvancesAccumulation('125_Acting Allowance (Acting Allowance)_01202018_1')",
"type": "SFOData.AdvancesAccumulation"
},
"externalCode": "125_Acting Allowance (Acting
Allowance)_01202018_1",
Related Information
2.2 AdvancesEligibility
This entity is used to configure different advances that a company offers to its employees. It is also used to
configure the recovery of the advance.
Permissions
Query
Use Case: Get details of different advances that a company offers to its
employees
Request
Operation Query
HTTP GET
URI https://<api-server>/odata/v2/
AdvancesEligibility
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
AdvancesEligibility(effectiveStartDate=datetime'2016-01-01T00:00:00',externalCode='M
edicalAdvances')",
"type": "SFOData.AdvancesEligibility"
},
"externalCode": "MedicalAdvances",
"effectiveStartDate": "/Date(1451606400000)/",
"lastModifiedDateTime": "/Date(1636556304000+0000)/",
"recoveryMode": null,
"createdDateTime": "/Date(1456224371000+0000)/",
"mdfSystemVersionId": null,
"unitOfPeriod": "YEARS",
"validityPeriod": "1",
"payComponentType": "AMOUNT",
"defaultWorkflow": null,
"advanceType": "MedicalAdvances",
"basePayComponent": null,
"externalName": "MedicalAdvances: MedicalAdvances",
"mdfSystemEntityId": "DBBC3A70A23142B6A423CA0E351F5180",
"occuranceOfDay": null,
"eligibilityAmount": "5000",
"deductionDateFormat": "AS_PER_DATE",
"currencyGO": "USD",
"mdfSystemRecordStatus": "N",
"eligibilityRule": "AdvanceEligibility",
"effectiveStatus": "A",
"monthDate": "ONE",
"firstOccurenceStartDate": "/Date(1451606400000)/",
"mdfSystemCreatedDate": "/Date(1456224371000)/",
"exceptionWorkflow": null,
"deductionPayCompOTD": "2703",
"effectiveEndDate": "/Date(253402214400000)/",
"deductionPayCompRD": "5515",
"mdfSystemLastModifiedDateWithTZ": "/Date(1636556304000+0000)/",
"mdfSystemCreatedBy": "admin",
Related Information
2.3 NonRecurringPayment
Supported Operations
Query
Request
Operation Query
URI https://<api-server>/odata/v2/
NonRecurringPayment
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
NonRecurringPayment('125_Acting Allowance (Acting Allowance)_01202018_1')",
"type": "SFOData.NonRecurringPayment"
},
"externalCode": "125_Acting Allowance (Acting
Allowance)_01202018_1",
"lastModifiedDateTime": "/Date(1516448120000+0000)/",
"notes": null,
"mdfSystemEffectiveEndDate": "/Date(253402214400000)/",
"createdDateTime": "/Date(1516448120000+0000)/",
"mdfSystemVersionId": null,
"templateId": null,
"mdfSystemEffectiveStartDate": "/Date(-2208988800000)/",
"payComponentType": null,
"payComponentCode": "Acting Allowance",
"mdfSystemStatus": "A",
"mdfSystemEntityId": "C6C74A94F8B841988383E8DE7752607B",
"payComponentGroupId": null,
"sentToPayroll": null,
"formId": null,
"mdfSystemObjectType": "NonRecurringPayment",
"lastModifiedDate": "/Date(1516448120000)/",
"lastModifiedBy": "sriadmin",
"currencyGO": "USD",
"nonRecurringPayPeriodStartDate": null,
"lastModifiedDateWithTZ": "/Date(1516448120000+0000)/",
"payCompValue": "1000",
"userSysId": "125",
"mdfSystemTransactionSequence": "1",
"taxTreatment": null,
"createdDate": "/Date(1516448120000)/",
"recordStatus": "N",
"createdBy": "sriadmin",
"nonRecurringPayPeriodEndDate": null,
"mdfSystemRecordId": "563CD98B7BEF4803873E6D45DFA7D356",
"currencyCode": null,
"payDate": "/Date(1516406400000)/",
"userSysIdNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
NonRecurringPayment('125_Acting Allowance (Acting Allowance)_01202018_1')/
userSysIdNav"
}
},
"mdfSystemStatusNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
NonRecurringPayment('125_Acting Allowance (Acting Allowance)_01202018_1')/
mdfSystemStatusNav"
}
},
"createdByNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
NonRecurringPayment('125_Acting Allowance (Acting Allowance)_01202018_1')/
createdByNav"
}
},
"advance": {
"__deferred": {
Related Information
3.1 Apprentice
This entity provides a single and simple way of accessing the content from the Apprentice.
Supported Operations
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Permissions
Use Case
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/Apprentice('charper1')",
Related Information
3.2 ApprenticeEventType
This entity provides a single and simple way of accessing the content from the Apprentice Event Type.
Supported Operations
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Permissions
Request
Operation Query
URI https://<api-server>/odata/v2/ApprenticeEventType?
$format=json&$filter=externalCode eq '6602'
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/ApprenticeEventType(6602L)",
"type": "SFOData.ApprenticeEventType"
},
"externalCode": "6602",
"mdfSystemObjectType": "ApprenticeEventType",
"mdfSystemEffectiveEndDate": "/Date(253402214400000)/",
"mdfSystemVersionId": null,
"eventTypeDescription_pl_PL": null,
"eventTypeDescription_fi_FI": null,
"lastModifiedDateTime": "/Date(1447833758000+0000)/",
"eventTypeDescription_en_GB": "Internal Training",
"mdfSystemTransactionSequence": "1",
"eventTypeDescription_it_IT": null,
"eventTypeDescription_en_RTL": null,
"eventTypeDescription_nl_NL": null,
"mdfSystemRecordId": "126C466C5390482EAD0468CFC456412E",
"mdfSystemEntityId": "B4FA1A0DEE2D4198A3A1A683E211F981",
"eventTypeDescription_de_DE": null,
"mdfSystemStatus": "A",
"apprenticeEventTypeCategory": "TRAINING",
"lastModifiedDateWithTZ": "/Date(1447833758000+0000)/",
"eventTypeDescription_es_ES": null,
"createdDate": "/Date(1439452260000)/",
"eventTypeDescription_ja_JP": null,
"mdfSystemRecordStatus": "N",
"eventTypeDescription_fr_FR": null,
"eventTypeDescription_es_MX": null,
"eventTypeDescription_en_US": null,
"eventTypeDescription_da_DK": null,
"eventTypeDescription_en_SAP_SLS": null,
"createdBy": "admin",
"createdDateTime": "/Date(1439452260000+0000)/",
"eventTypeDescription_ko_KR": null,
"eventTypeDescription_zh_CN": null,
"lastModifiedBy": "admin",
"mdfSystemEffectiveStartDate": "/Date(-2208988800000)/",
"lastModifiedDate": "/Date(1447833758000)/",
"eventTypeDescription_defaultValue": "English Training",
"eventTypeDescription_zh_TW": null,
"apprenticeEventTypeCategoryNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/ApprenticeEventType(6602L)/
apprenticeEventTypeCategoryNav"
}
},
"mdfSystemRecordStatusNav": {
Related Information
3.3 ApprenticeInternalTrainingEvent
This entity provides a single and simple way of accessing the content from the Apprentice Internal Training Event.
Supported Operations
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Permissions
Access to the Apprentice Internal Training Event object is regulated by role-based permissions.
Code Example:
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
ApprenticeInternalTrainingEvent(6723L)",
"type": "SFOData.ApprenticeInternalTrainingEvent"
},
"externalCode": "6723",
"startDateAndTime": "/Date(1445637600000+0000)/",
"mdfSystemEffectiveEndDate": "/Date(253402214400000)/",
"mdfSystemObjectType": "ApprenticeInternalTrainingEvent",
"mdfSystemVersionId": null,
"shareStatus": "SHARED",
"location": null,
"eventType": "6602",
"lastModifiedDateTime": "/Date(1445942436000+0000)/",
"mdfSystemTransactionSequence": "1",
"mdfSystemRecordId": "CE036E7EA8704F18B3F9708695E4FD70",
"mdfSystemEntityId": "E0E4F78A984441F0B581E8B1FBA2CFEE",
"mdfSystemStatus": "A",
"lastModifiedDateWithTZ": "/Date(1445942436000+0000)/",
"learningItem": null,
"createdDate": "/Date(1445602964000)/",
"note": null,
"mdfSystemRecordStatus": "N",
"isAllDayEvent": true,
"endDateAndTime": "/Date(1446242400000+0000)/",
"createdBy": "admin",
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1445602964000+0000)/",
"lastModifiedDate": "/Date(1445942436000)/",
"mdfSystemEffectiveStartDate": "/Date(-2208988800000)/",
"eventName": "zum test",
"assignedApprenticeGroups": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
ApprenticeInternalTrainingEvent(6723L)/assignedApprenticeGroups"
}
},
"shareStatusNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
ApprenticeInternalTrainingEvent(6723L)/shareStatusNav"
}
},
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
ApprenticeInternalTrainingEvent(6723L)/mdfSystemRecordStatusNav"
}
},
"assignedApprentices": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
ApprenticeInternalTrainingEvent(6723L)/assignedApprentices"
}
},
"mdfSystemStatusNav": {
Related Information
3.4 ApprenticePracticalTrainingEvent
This entity provides a single and simple way of accessing the content from the Apprentice Practical Training Event.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Permissions
Access to the Apprentice Practical Training Event object is regulated by role-based permissions.
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
ApprenticePracticalTrainingEvent(6967L)",
"type": "SFOData.ApprenticePracticalTrainingEvent"
},
"externalCode": "6967",
"startDateAndTime": "/Date(1453158000000+0000)/",
"mdfSystemEffectiveEndDate": "/Date(253402214400000)/",
"mdfSystemObjectType": "ApprenticePracticalTrainingEvent",
"mdfSystemVersionId": null,
"shareStatus": "SHARED",
"department": "de2",
"eventType": "6747",
"lastModifiedDateTime": "/Date(1453466572000+0000)/",
"mdfSystemTransactionSequence": "1",
"mdfSystemRecordId": "B2EE3F0E932E40C1872F2F86F520B36F",
"mdfSystemEntityId": "F6053DBE61594048900C5CF29D692ADE",
"mdfSystemStatus": "A",
"lastModifiedDateWithTZ": "/Date(1453466572000+0000)/",
"createdDate": "/Date(1453380236000)/",
"note": null,
"mdfSystemRecordStatus": "N",
"isAllDayEvent": true,
"endDateAndTime": "/Date(1453503599000+0000)/",
"createdBy": "admin",
"createdDateTime": "/Date(1453380236000+0000)/",
"lastModifiedBy": "admin",
"lastModifiedDate": "/Date(1453466572000)/",
"mdfSystemEffectiveStartDate": "/Date(-2208988800000)/",
"eventName": "de2",
"departmentNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
ApprenticePracticalTrainingEvent(6967L)/departmentNav"
}
},
"assignedApprenticeGroups": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
ApprenticePracticalTrainingEvent(6967L)/assignedApprenticeGroups"
}
},
"shareStatusNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
ApprenticePracticalTrainingEvent(6967L)/shareStatusNav"
}
},
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
ApprenticePracticalTrainingEvent(6967L)/mdfSystemRecordStatusNav"
}
},
"assignedApprentices": {
"__deferred": {
Related Information
3.5 ApprenticeSchool
This entity provides a single and simple way of accessing the content from the Apprentice School.
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Permissions
Related Information
This entity provides a single and simple way of accessing the content from the Apprentice School Event.
Supported Operations
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Permissions
Use Case
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://mo-e40605f30.mo.sap.corp:443/odata/v2/
ApprenticeSchoolEvent(6822L)",
"type": "SFOData.ApprenticeSchoolEvent"
},
"externalCode": "6822",
"startDateAndTime": "/Date(1448838000000+0000)/",
"mdfSystemEffectiveEndDate": "/Date(253402214400000)/",
"mdfSystemObjectType": "ApprenticeSchoolEvent",
"mdfSystemVersionId": null,
"shareStatus": "NOT_SHARED",
"eventType": "6604",
"lastModifiedDateTime": "/Date(1448889138000+0000)/",
"mdfSystemTransactionSequence": "1",
"mdfSystemRecordId": "90D6E02E7CE0445299AD625C5E9A1CA7",
4.1 VendorInfo
You can use this entity to peform different operations on the vendor information of your contingent workforce.
Supported Operations
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
A query operation on the VendorInfo entity returns all the information related to a given vendor.
Request
Operation Query
URI https://<API-Server>/odata/v2/VendorInfo?
$format=json&$top=1
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
VendorInfo(effectiveStartDate=datetime'2019-08-19T00:00:00',vendorCode='reee')",
"type": "SFOData.VendorInfo"
The following example shows how you can create a vendor information record or update an existing one using the
VendorInfo entity.
Request
Operation Upsert
URI https://<API-Server>/odata/v2/odata/v2/
upsert
Payload {"__metadata": {
"uri": "https://
<API Server>/odata/v2/
VendorInfo(effectiveStartDate=datetime'2
019-08-19T00:00:00',vendorCode='reee')",
"type":
"SFOData.VendorInfo"
},
"effectiveStartDate": "/
Date(1566172800000)/",
"vendorCode": "reee",
"vendorName": null,
"effectiveStatus": "A"
}
Response
{
"feed": {
"entry": {
"content": {
"properties": {
"key": {
"_m:null": "true",
"__prefix": "d"
},
"status": {
"__prefix": "d",
"__text": "OK"
},
"editStatus": {
4.2 WorkOrder
You can use this entity to perform various operations pertinent to work orders of contingent workforce in your
company.
Permissions
Operation Description
Properties
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
A query operation on the WorkOrder entity returns all the information related to a given work order.
Request
Operation Query
URI https://<API-Server>/odata/v2/WorkOrder?
$format=json&$top=1
Response
Sample Code
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
WorkOrder(effectiveStartDate=datetime'2016-01-02T00:00:00',userSysId='TEST02CW')"
,
"type": "SFOData.WorkOrder"
},
"effectiveStartDate": "/Date(1451692800000)/",
The following example shows how you can create or update a work order in incremental mode. When you update
work order information in incremental mode, only the information included in your payload will be updated in the
system. All other work order information remains unchanged.
Request
Operation Upsert
URI https://<API-Server>/odata/v2/upsert?
purgeType=incremental
{
"__metadata":{
"uri":"WorkOrder(effectiveStartDate=d
atetime'2019-10-09T00:00:00',userSysI
d='cwkDemoKing')",
"type":"SFOData.WorkOrder"
},
"effectiveStartDate":"\/
Date(1569974400000)\/",
"userSysId":"cwkDemoKing",
"startDate":"\/
Date(1569974400000)\/",
"endDate":"\/
Date(1577817000000)\/",
"effectiveStatus":"A",
"workOrderOwnerId":"GUNDALARAKES",
"workOrderId":"WO_DemoKing_2",
"vendor":"VEN02TEST",
"workOrderName":"WO_DemoKing_2"
}
Response
Sample Code
The following example shows how you can create or update a work order in full purge mode. When you update work
order information in full purge mode, all the existing work order information will be overwritten with the information
included in your payload. Existing person related entities, if any, remain unchanged whereas, Job Information and
Job Relationship information will be purged completely and must be imported again.
Operation Upsert
URI https://<API-Server>/odata/v2/upsert?
purgeType=full
Payload
Sample Code
{
"__metadata":{
"uri":"WorkOrder(effectiveStartDate=d
atetime'2019-10-09T00:00:00',userSysI
d='cwkDemoKing')",
"type":"SFOData.WorkOrder"
},
"effectiveStartDate":"\/
Date(1569974400000)\/",
"userSysId":"cwkDemoKing",
"startDate":"\/
Date(1569974400000)\/",
"endDate":"\/
Date(1577817000000)\/",
"effectiveStatus":"A",
"workOrderOwnerId":"GUNDALARAKES",
"workOrderId":"WO_DemoKing_2",
"vendor":"VEN02TEST",
"workOrderName":"WO_DemoKing_2"
}
Response
Sample Code
5.1 DeductionScreenId
This entity provides the Non screen IDs that are required for configuring the Deduction UI in Employee Central.
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Permissions
Use Cases
Related Information
Permissions
Role-based Assign the relevant permissions for deductions in User Permissions Manage Deductions .
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Supported Operations
Operation Description
Use Cases
Related Information
This entity subtracts recurring expenses from the gross income of employees.
Permissions
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Supported Operations
Operation Description
Use Cases
Related Information
6.1 EmpBeneficiary
Supported Operations
Query, Upsert
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Related Information
6.2 EmpCompensation
Supported Operations
Operation Description
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
personIdExternal This property is a unique identifier for employees. You can use
this property to update or add the compensation information
of an employee with only one active employment.
operation To delete a record, use the upsert operation and set this prop
erty to DELETE.
When you make a last modified query, take a look at how this entity behaves with $filter and lastModifiedOn:
Request
Operation Query
URI https://<API-Server>/odata/v2/
EmpCompensation?$filter=payGroup eq
'NA_GROUP' and createdOn gt
datetime'2011-08-01T00:00:00'&$format=JSON
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/public/
EmpCompensation(seqNumber=1L,startDate=datetime'2011-08-15T00:00:00',userId='rallen1
')"
},
"startDate": "/Date(1313366400000)/",
"userId": "rallen1",
"seqNumber": "1",
"endDate": "/Date(253402300799000)/",
"isEligibleForCar": false,
"lastModifiedDateTime": "/Date(1325617370000+0000)/",
"benefitsRate": "0",
"event": "2294",
"payGrade": null,
"isHighlyCompensatedEmployee": null,
"eventReason": "PAYPRO",
"payGroup": "NA_GROUP",
"lastModifiedOn": "/Date(1325617370000)/",
"createdOn": "/Date(1313433937000)/",
"isInsider": null,
"createdBy": "eeee",
"createdDateTime": "/Date(1313433937000+0000)/",
"lastModifiedBy": "admin",
"payType": "1593",
"pensionableSalary": null,
"notes": null,
"isEligibleForBenefits": false,
"eventNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/public/
EmpCompensation(seqNumber=1L,startDate=datetime'2011-08-15T00:00:00',userId='rallen1
')/eventNav"
}
},
"employmentNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/public/
EmpCompensation(seqNumber=1L,startDate=datetime'2011-08-15T00:00:00',userId='rallen1
')/employmentNav"
}
},
"wfRequestNav": {
"__deferred": {
Request
Operation Upsert
URI https://<API-Server>/odata/v2/upsert
Response
{
"d": [
{
"key": "EmpCompensation/seqNumber=1,EmpCompensation/
startDate=datetime'2018-12-28T00:00:00.000Z,EmpCompensation/userId=userIdVVas101",
"status": "OK",
"editStatus": "UPSERTED",
"message": null,
"index": 0,
"httpCode": 200,
"inlineResults": null
}
]
}}
This example shows how to delete an employee's record. With the Upsert operation, the value DELETE can be
passed to the operation field to delete the record.
Request
Operation Upsert
URI https://<API-Server>/odata/v2/upsert
Note
Remember to include the required property eventReason
in the payload.
Request
{
"d": [
{
"key": "EmpCompensation/seqNumber=1,EmpCompensation/
startDate=2017-01-01T00:00:00.000Z,EmpCompensation/userId=80300",
"status": "OK",
"editStatus": "UPSERTED",
"message": null,
"index": 0,
"httpCode": 200,
"inlineResults": null
}
]
}
Then, you query the employee's record, and you will get the following response:
{
"error": {
"code": "NotFoundException",
"message": {
"lang": "en-US",
"value": "EmpCompensation with key
(seqNumber=1L,startDate=datetime'2017-01-01T00:00:00',userId='80300') not found!"
}
}
}
In case of an employee with multiple userIds, you can import the compensation information by using the
personIdExternal property.
Operation Upsert
URI https://<API-Server>/odata/v2/upsert
Payload {
"__metadata": {
"uri": "https://<API-Server>/
odata/v2/EmpCompensation"
},
"userId":
"&&USE_PERSON_ID_EXTERNAL&&",
"startDate": "/
Date(1575936000000)/",
"personIdExternal": "107030",
"payGrade": "GR-12",
"payGroup": "D2"
}
Response
{
"d": [
{
"key": "EmpCompensation/
startDate=2019-12-10T00:00:00.000Z,EmpCompensation/
userId=&&USE_PERSON_ID_EXTERNAL&&",
"status": "OK",
"editStatus": "UPSERTED",
"message": null,
"index": 0,
"httpCode": 200,
"inlineResults": null
}
]
}}
Related Information
This entity exposes a transient value that you see in the Compensation Information section.
Supported Operations
Query: This entity can only be queried by expanding the empCompensationCalculatedNav navigation property
of the EmpCompensation entity.
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Request
Operation Query
URI https://<API-Server>/odata/v2/
EmpCompensation?$filter=userId eq
'TestUser'&
$expand=empCompensationCalculatedNav
Response
Sample Code
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
EmpCompensation(seqNumber=1L,startDate=datetime'2008-07-01T00:00:00',userId='pluc
as1')",
"type": "SFOData.EmpCompensation"
},
"startDate": "/Date(1214870400000)/",
"userId": "plucas1",
Additional Information
● GetCompaRatioByUserDateAndSeq - This calculates the Compa-Ratio field that you see in the Compensation
Information portlet.
● GetRangePenetrationByUserDateAndSeq - This calculates the Range Penetration field that you see on the
Compensation Information portlet.
Neither Compa-Ratio nor Range Penetration is stored on the database so both fields are treated as transient
fields. If you want to expose their values, you need to use empCompensationCalculated.
This API is designed for UI consumption and is not suitable for mass data replication.
Related Information
This entity exposes a transient value that is calculated from the pay component group sums that are in the
compensation information record. It is calculated by GetEligiblePayComponentGroupsByUserDateAndSeq and is
for use in UI scenarios and is not suitable for mass data replication.
Supported Operations
Query
Note
Transient values are not stored to the database so you can't query them directly. Instead you have to treat
EmpCompensationGroupSumCalculated as a child entity of EmpCompensation. In addition to $expand, you
can also use the operators $select and $format with the GET operation. Note that $filter,$orderby, $skip, and
$top are not supported.
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
errorCode Error Code "Success" indicates that the call has been success
ful and calculation results are returned.
errorMessage
Error Code "ErrorMximumRecord" indicates that the number
of records called exceeds the maximum of 50 and the calls
failed.
Request
Operation Query
URI https://<API-Server>/odata/v2/
EmpCompensation(startDate=datetime'1997-01
-01T00:00:00',userId='107030')?
$format=JSON&
$expand=empCompensationGroupSumCalculatedN
av
Response
Sample Code
Response
{
"d": {
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
EmpCompensation(startDate=datetime'1997-01-01T00:00:00',userId='107030')",
"type": "SFOData.EmpCompensation"
},
"userId": "107030",
"startDate": "/Date(852076800000)/",
"lastModifiedDateTime": "/Date(1442201986000+0000)/",
"endDate": "/Date(253402214400000)/",
"customDouble6": null,
"createdDateTime": "/Date(1442200148000+0000)/",
"customDouble7": null,
"createdOn": "/Date(1442185748000)/",
"customDouble5": null,
"bonusTarget": null,
"payGrade": "GR-06",
"payrollSystemId": null,
"event": "3669",
"benefitsRate": "0",
"isHighlyCompensatedEmployee": false,
"lastModifiedBy": "admindlr",
"customString5": null,
"eventReason": "HIRNEW",
"lastModifiedOn": "/Date(1442187586000)/",
"payGroup": "CN",
"isEligibleForCar": false,
"createdBy": "admindlr",
"isInsider": false,
"isEligibleForBenefits": false,
"employmentNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
EmpCompensation(startDate=datetime'1997-01-01T00:00:00',userId='107030')/
employmentNav"
}
},
"empPayCompRecurringNav": {
"__deferred": {
Additional Information
Take a look at the table here for additional information on some of the properties
Related Information
6.3 EmpEmployment
The entity contains information such as the termination date, possibility of rehire, payroll information and so on.
Operation Description
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
● ST: Standard
● GA: Global Assignment
● PP: Pension Payout
● BN: Beneficiary
Caution
Before you change assignment IDs, we recommend that
you evaluate the risks associated with the inconsistencies.
If assignment ID is not supported in the SAP SuccessFac
tors areas you've enabled, please don't make any changes
to assignment ID at this time.
Note
This field is always "false" for the employment records cre
ated via Add New Employee. You cannot access these em
ployment records saved in the draft status via APIs.
custom-string1, custom-string2, custom-string3 These three custom string fields are filterable, so you can
query EmpEmployment with filters on these fields rather
than fetch all the records. In some cases they are used to store
external system IDs.
originalStartDate If an employee has been working for the company before, this
filterable field specifies the start date of the first employment.
Request
Operation Query
URI https://<API-Server>/odata/v2/
EmpEmployment?$filter=personIdExternal eq
'mcolton1'&$expand=empGlobalAssignmentNav&
$format=JSON
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
EmpEmployment(personIdExternal='mcolton1',userId='184')",
"type": "SFOData.EmpEmployment"
},
"personIdExternal": "mcolton1",
"userId": "184",
"startDate": "/Date(1420070400000)/",
"eligibleForStock": null,
"initialOptionGrant": null,
"payrollEndDate": null,
"serviceDate": null,
"professionalServiceDate": null,
"okToRehire": null,
"regretTermination": null,
"endDate": null,
"eligibleForSalContinuation": null,
"lastModifiedDateTime": "/Date(1418718010000+0000)/",
"StockEndDate": null,
"assignmentClass": "GA",
"lastDateWorked": null,
"salaryEndDate": null,
"originalStartDate": null,
"benefitsEndDate": null,
"lastModifiedOn": "/Date(1418700010000)/",
"initialStockGrant": null,
"bonusPayExpirationDate": null,
"createdOn": "/Date(1418700010000)/",
"createdBy": "admin",
"createdDateTime": "/Date(1418718010000+0000)/",
"lastModifiedBy": "admin",
This query retrieves employment records for the candidates created in Onboarding:
Request
Operation Query
URI https://<API-Server>/odata/v2/
EmpEmployment?$format=JSON&
$filter=hiringNotCompleted eq 'true'&
$select=personIdExternal,userId,hiringNotC
ompleted
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
EmpEmployment(personIdExternal='214',userId='214')",
"type": "SFOData.EmpEmployment"
},
"personIdExternal": "214",
"userId": "214",
"hiringNotCompleted": true
Request
Request:
Operation Upsert
URI http://<API-Server>/odata/v2/upsert
Response
{
"d": [
{
"key": "EmpEmployment/personIdExternal=userIdVVas101,EmpEmployment/
userId=userIdVVas101",
"status": "OK",
"editStatus": "UPSERTED",
"message": null,
"index": 0,
"httpCode": 200,
"inlineResults": null
}
]
}
Related Information
6.4 EmpEmploymentTermination
This entity contains employment or global assignment termination information for an employee.
Supported Operations
Operation Description
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
eventReason Reason for the employment termination. Event reasons are de
fined by the FOEventReason entity. For more information,
see the related API documentation.
Note
This is a required field when you upsert a record. It's not
viewable in query results.
Request
Operation Query
URI https://<API-Server>/odata/v2/EmpEmploymentTermination?
$filter=endDate lt datetime'2014-12-31T00:00:00' and
endDate gt datetime'2014-01-01T00:00:00'&$format=JSON
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
EmpEmploymentTermination(endDate=datetime'2014-12-09T00:00:00',personIdExternal='hmu
eller1',userId='189')",
"type": "SFOData.EmpEmploymentTermination"
},
"personIdExternal": "hmueller1",
"userId": "189",
"endDate": "/Date(1418083200000)/",
"payrollEndDate": null,
"benefitsEndDate": null,
"okToRehire": null,
"regretTermination": null,
"eligibleForSalContinuation": null,
"lastModifiedDateTime": "/Date(1418732822000+0000)/",
"lastModifiedOn": "/Date(1418714822000)/",
"bonusPayExpirationDate": null,
"StockEndDate": null,
"createdOn": "/Date(1418709564000)/",
"createdBy": "admin",
"createdDateTime": "/Date(1418727564000+0000)/",
"lastDateWorked": null,
"lastModifiedBy": "admin",
"salaryEndDate": null,
"notes": null,
"personNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
EmpEmploymentTermination(endDate=datetime'2014-12-09T00:00:00',personIdExternal='hmu
eller1',userId='189')/personNav"
}
},
"userNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
EmpEmploymentTermination(endDate=datetime'2014-12-09T00:00:00',personIdExternal='hmu
eller1',userId='189')/userNav"
}
},
"jobInfoNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
EmpEmploymentTermination(endDate=datetime'2014-12-09T00:00:00',personIdExternal='hmu
eller1',userId='189')/jobInfoNav"
}
},
You can terminate an employee by creating an EmpEmploymentTermination record using the upsert operation.
Note
When you create a new termination record, an EmpJob record is also created automatically. The new job record
starts one day after the end date you specify in the termination payload.
Request
Operation Upsert
URI https://<API-Server>/odata/v2/upsert
Payload {
"__metadata":{
"uri":"EmpEmploymentTermination"
},
"personIdExternal":"1234567",
"userId":"1234567",
"endDate":"/Date(1558556800000)/",
"eventReason":"TERRTMNT"
}
For termination scenarios, the end date can be any date on and after the hire date, whereas for no-shows, it should
be always the same as hire date. We also include the event reason for these cases.
Request
Operation Upsert
URI https://<API-Server>/odata/v2/upsert
{
"__metadata":{
"uri":"EmpEmploymentTermination"
},
"personIdExternal":"1234567",
"userId":"1234567",
"endDate":"/Date(1558556800000)/",
"eventReason":"NO_SHOW_EVENT_REASON"
}
Related Information
6.5 EmpGlobalAssignment
This entity contains details about the global assignment for an employee. You can create a new global assignment
by upserting this entity.
Supported Operations
Query, Upsert
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
Caution
Before you change assignment IDs, we recommend that
you evaluate the risks associated with the inconsistencies.
If assignment ID is not supported in the SAP SuccessFac
tors areas you've enabled, please don't make any changes
to assignment ID at this time.
Request
Operation Query
URI https://<API-Server>.com/odata/v2/
EmpGlobalAssignment?$filter=userId eq
'183'&$format=JSON
Response
Note
When you upsert this entity, a new global assignment is created, meaning that there is a new record in
EmpGlobalAssignment and a new entry in the User entity for this employee. Since EmpGlobalAssignment and
EmpEmployment share the same persistency, each global assignment appears as an Employment in
EmpEmployment with the type global assignment.
Operation Upsert
URI https://<API-Server>/odata/v2/upsert
Payload
{
"__metadata":{
"uri":"EmpGlobalAssignment"
},
"assignmentType":"10322",
"startDate":"/Date(1565172522000)/",
"plannedEndDate":"/
Date(1566172522000)/",
"personIdExternal":"cgrant",
"userId":"cgrant-0717"
}
Response
{
"d": [
{
"key": "EmpGlobalAssignment/userId=cgrant-0717",
"status": "OK",
"editStatus": "UPSERTED",
"message": null,
"index": 0,
"httpCode": 200,
"inlineResults": null
}
]
}
Related Information
This entity contains information such as the employee's manager, the department, or other information relating to
the employee's job.
Supported Operations
Query, Upsert
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
personIdExternal This property is a unique identifier for employees. You can use
this property to update or add the job information of an em
ployee with only one active employment.
operation To delete a record, use the upsert operation and set this prop
erty to DELETE.
effectiveLatestChange You can use this property to filter the record that is the last up
dated one on that day in date range queries.
When you make a last modified query, take a look at how this entity behaves with $filter and lastModifiedOn:
Request
Operation Query
URI https://<API-Server>/odata/v2/EmpJob?
$filter=company eq 'ACE_USA' and managerId
eq 'cgrant1'&$select=employmentNav/
personNav/personalInfoNav/
firstName,employmentNav/personNav/
personalInfoNav/lastName,company&
$format=JSON
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/public/
EmpJob(seqNumber=1L,startDate=datetime'2010-12-01T00:00:00',userId='rallen1')"
},
"company": "ACE_USA",
"employmentNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/public/
EmpJob(seqNumber=1L,startDate=datetime'2010-12-01T00:00:00',userId='rallen1')/
employmentNav"
}
}
}
]
}
}
Request
Operation Upsert
URI https://<API-Server>/odata/v2/upsert
Payload
{
"__metadata": {
"uri":
"EmpJob(seqNumber=1L,startDate=datetime'
2018-12-28T00:00:00',userId='userIdVVas1
01')",
"type": "SFOData.EmpJob"
},
"userId": "userIdVVas101",
"seqNumber": "1",
"eventReason": "HIRNEW",
"company": "ACE IT",
"managerId" : "snadmin",
"timezone" : "IST"
}
Response
{
"d": [
{
"key": "EmpJob/seqNumber=1,EmpJob/
startDate=2018-12-28T00:00:00.000Z,EmpJob/userId=userIdVVas101",
"status": "OK",
"editStatus": "UPSERTED",
"message": null,
"index": 0,
"httpCode": 200,
"inlineResults": null
}
]
}
This example shows how to delete an employee's record. With the Upsert operation, the value DELETE can be
passed to the Operation field to delete the record.
Request
Operation Upsert
URI https://<API-Server>/odata/v2/upsert
Note
Remember to include the required property
eventReason in the payload.
Response
{
"d": [
{
"key": "EmpJob/seqNumber=2,EmpJob/
startDate=2017-01-01T00:00:00.000Z,EmpJob/userId=101028",
"status": "OK",
"editStatus": "UPSERTED",
"message": null,
"index": 0,
"httpCode": 200,
"inlineResults": null
}
]
}
Then, if you query the employee's record, you will get the following response:
Sample Code
{
"error": {
"code": "NotFoundException",
"message": {
"lang": "en-US",
"value": "EmpJob with key
(seqNumber=2L,startDate=datetime'2017-01-01T00:00:00',userId='101028') not
found!"
}
}
}
Use Case 4: Upsert Job Information of an Employee with Multiple User IDs
In case of an employee with multiple userIds, you can import the job information by using the
personIdExternal property.
Operation Upsert
URI https://<API-Server>/odata/v2/upsert
Payload
Sample Code
{
"__metadata": {
"uri":
"http://<API-Server>/odata/v2/
EmpJob",
},
"userId":
"&&USE_PERSON_ID_EXTERNAL&&",
"seqNumber": "2",
"startDate": "/
Date(858556800000)/",
"personIdExternal":
"103049",
"company": "1000",
"eventReason": "DATACHG",
"payGrade": "GR-11",
"jobCode": "50070999",
"jobTitle": "Management &
Planning",
"timezone": "Europe/
Berlin"
}
Response
{
"d": [
{
"key": "EmpJob/seqNumber=2,EmpJob/
startDate=1997-03-17T00:00:00.000Z,EmpJob/userId=&&USE_PERSON_ID_EXTERNAL&&",
"status": "OK",
"editStatus": "UPSERTED",
"message": null,
"index": 0,
"httpCode": 200,
"inlineResults": null
}
]
}
EmpJob support multiple changes per day (MCPD). In case of an employee's job information is changed several
times in one day, you can get the latest one by using the effectiveLatestChange property.
EmpJob Records
Request
Operation Query
URI https://<API-Server>/odata/V2/EmpJob?
$filter=userId eq 'cgrant'&
$fromDate=2017-03-15&toDate=2020-03-30&
$filter=effectiveLatestChange eq 'Y'
Response
Record 1, 2, and 4 are returned.
Related Information
6.7 EmpJobRelationships
This entity contains the employee relationship information to one or more managers.
Query, Upsert
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
operation To delete a record, use the upsert operation and set this prop
erty to DELIMIT.
Use Case 1: Query All Entries with the Same External Code
Request
The following example shows how to get all entries that have the external code "hr manager".
Operation Query
URI https://<API-Server>.com/odata/v2/
EmpJobRelationships?
$filter=relationshipTypeNav/externalCode
eq 'hr manager'&
$expand=relationshipTypeNav&
$select=relationshipTypeNav/
externalCode,relationshipType&$format=JSON
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
EmpJobRelationships(relationshipType='5777',startDate=datetime'2011-07-13T00:00:00',
userId='147')",
"type": "SFOData.EmpJobRelationships"
Reqeust
The following example shows how to delimit the job relationship between user "4000021" and user "4000185".
Operation Upsert
URI http://<API-Server>/odata/v2/upsert
Payload {
"__metadata":{
"uri":"EmpJobRelationships(relationshipT
ype='5777',startDate=datetime'2013-11-15
T00:00:00',userId='4000021')",
"type":"SFOData.EmpJobRelationships"
},
"startDate":"/Date(1384473600000)/",
"relationshipType":"5777",
"userId":"4000021",
"relUserId":"4000185",
"operation":"DELIMIT"
}
Response
{
"d": [
{
"key": "EmpJobRelationships/relationshipType=5777,EmpJobRelationships/
startDate=2013-11-15T00:00:00.000+08:00,EmpJobRelationships/userId=4000021",
"status": "OK",
"editStatus": "UPSERTED",
"message": null,
"index": 0,
"httpCode": 200,
"inlineResults": null
}
]
}
6.8 EmpPensionPayout
This entity contains information about how the pension will be paid to the employee.
Supported Operations
Query, Upsert
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Request
Operation Query
URI https://<API-Server>/odata/v2/
EmpPensionPayout?$filter=userId eq
'TestUser'&
$expand=empCompensationCalculatedNav
Related Information
6.9 EmpWfRequest
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
● No Edit
Approvers do not have in-flight editing capability.
● Edit with Route Change
Approvers can edit a workflow and the workflow route will
be recalculated when they submit the request.
● Edit without Route Change
Approvers can edit a workflow but the workflow route will
not be recalculated when they submit the request.
● Edit Attachments Only
Approver can only edit the attachments of the workflow.
Use Case: Get All the Request Types and Event Reasons by Workflow Subject
Request
Operation Query
URI https://<API-Server>/odata/v2/
EmpWfRequest?$filter=subjectId eq
'cgrant1'&$select=eventReason,subjectId&
$format=JSON
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/EmpWfRequest(307L)",
"type": "SFOData.EmpWfRequest"
},
"eventReason": "PAYMKT",
"subjectId": "cgrant1"
},
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/EmpWfRequest(306L)",
"type": "SFOData.EmpWfRequest"
},
"eventReason": "PAYMKT",
"subjectId": "cgrant1"
},
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/EmpWfRequest(305L)",
"type": "SFOData.EmpWfRequest"
},
Related Information
Supported Operations
Query, Upsert
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
The information in this section is only appliable for customers who import work permits on the Centralized
services. Other customers are not affected.
Importing work permits on the Centralized services is based on user ID, instead of person ID. Because one person
can have multiple user accounts, so you could end up purging work permit information of multiple users when you
chose to purge data for one person. Now, with a user ID-based importing process, you only purge work permit
information for the particular user ID you selected.
The entity uses four fields to make up a business key: userId, country, documentType, and documentNumber.
Upserting a record with a duplicate business key will be blocked and trigger a validation error. Both the full-purge
mode and the incremental load mode are supported.
Property Description
Request
Operation Query
URI https://<API-Server>/odata/v2/
EmpWorkPermit?$filter=country eq 'USA'&
$format=JSON
Response
Sample Code
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
EmpWorkPermit(country='USA',documentNumber='gr',documentType='6148',userId='174')
",
"type": "SFOData.EmpWorkPermit"
},
"documentType": "6148",
"userId": "174",
"documentNumber": "gr",
"country": "USA",
"attachmentFileSize": "44711",
"attachmentStatus": "1",
"expirationDate": "/Date(1377129600000)/",
"attachmentFileName": "EmeprgencyBeforeImport.jpeg",
"issueDate": "/Date(1373328000000)/",
"attachmentMimeType": "image/jpeg",
"lastModifiedOn": "/Date(1377254694000)/",
"lastModifiedDateTime": "/Date(1377269094000+0000)/",
"attachment": "/9j/4AAQSkZJRgABAAEAYABgAAD//
gAfTEVBRCBUZWNobm9sb2dpZXMgSW5jLiBWMS4wMQD/2wCE\r
\nAAUFBQgFCAwHBwwMCQkJDA0MDAwMDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0N\r
\nDQ0NDQ0NDQ0BBQgICgcKDAcHDA0MCgwNDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0N\r
\nDQ0NDQ0NDQ0NDQ0NDQ0NDf/EAaIAAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKCwEAAwEBAQEB\r
\nAQEBAQAAAAAAAAECAwQFBgcICQoLEAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEU\r
\nMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2Rl\r
\nZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK\r
\n0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+foRAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYS\r
\nQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNU\r
\nVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5\r
\nusLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/AABEIAJkEegMBEQACEQEDEQH/\r
\n2gAMAwEAAhEDEQA/AMeaZYIy5OFUE55zwCTnjOABmvZ9D5889vNXuLpyQzRpnhVJHHbOOp478Zzg\r
\nDOK3UUjFyfojLqyAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKA\r
Request
Operation Upsert
URI https://<API-Server>//odata/v2/upsert
Payload
{
"__metadata": {
"uri": "EmpWorkPermit"
},
"country": "6057",
"documentType": "6345",
"documentNumber": "1234567",
"userId": "afong1",
"isValidated": true,
"documentTitle": null,
"issueDate": "/Date(1585699200000)/"
}
Response
Sample Code
{
"d": [
{
"key": "EmpWorkPermit/country=6057,EmpWorkPermit/
documentNumber=1234567,EmpWorkPermit/documentType=6345,EmpWorkPermit/
userId=afong1",
"status": "OK",
"editStatus": "UPSERTED",
"message": null,
"index": 0,
"httpCode": 200,
"inlineResults": null
}
]
}
Related Information
Supported Operations
Query, Upsert
Each payment record is associated with a sequence number, which enables you to have more than one pay
component on the same pay date. It can be defined as an additional business key via data model configuration.
With or without the seqNumber property being enabled, the business key and required fields for the entity are
different.
No user_sys_id user_sys_id
pay-component-code pay-component-code
pay_date pay_date
seqNumber pay-component-code
pay_date
seqNumber
Remember
As a customer, you don't have access to Provisioning. To complete tasks in Provisioning, contact your
implementation partner or Account Executive. For any non-implementation tasks, contact Product Support.
Caution
Once sequenceNumber is introduced as a business key, its value must be maintained. If the value is not
maintained in integrations that rely on the uniqueness of the pay component, these integrations could break.
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
operation To delete a record, use the upsert operation and set this prop
erty to DELIMIT.
Request
The following request queries the value and the date of the payment, and first and last name of all payments higher
than $5000.
Operation Query
URI https://<API-Server>/odata/v2/
EmpPayCompNonRecurring?$filter=value gt
'5000' and currencyCode eq 'USD'&
$select=value,employmentNav/personNav/
personalInfoNav/firstName,employmentNav/
personNav/personalInfoNav/lastName&
$expand=employmentNav/personNav/
personalInfoNav&$format=JSON
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/public/
EmpPayCompNonRecurring(payComponentCode='BNS-
USA',payDate=datetime'2011-05-09T00:00:00',userId='mbarista1')",
"type": "SFOData.EmpPayCompNonRecurring"
},
"value": "20000",
"employmentNav": {
"__metadata": {
"uri": "https://<API-Server>/odata/v2/public/
EmpEmployment(personIdExternal='mbarista1',userId='mbarista1')",
"type": "SFOData.EmpEmployment"
},
"personNav": {
"__metadata": {
"uri": "https://<API-Server>/odata/v2/public/
PerPerson('mbarista1')",
"type": "SFOData.PerPerson"
},
"personalInfoNav": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
public/
PerPersonal(personIdExternal='mbarista1',startDate=datetime'1990-01-01T00:00:00')",
"type": "SFOData.PerPersonal"
},
"lastName": "Barista",
"firstName": "Marcia"
}
]
}
}
}
}
]
}
}
Related Information
You can use this entity to manage the recurring component of an employee's compensation, such as base salary,
hourly wage or house allowance.
Supported Operations
Query, Upsert
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
personIdExternal This property is a unique identifier for employees. You can use
this property to update or add the recurring compensation in
formation of an employee with only one active employment.
no-changes-until-date This property shows how long a pay component is valid for. It is
a transient field which is not stored in database, so it is not visi
ble in OData API Data Dictionary. To configure this field, go to
Admin Center > Manage Business Configuration.
operation To delete a record, use the upsert operation and set this prop
erty to DELIMIT.
Request
Operation Query
URI https://<API-Server>/odata/v2/
EmpPayCompRecurring?$filter=payComponent
eq 'Base Salary' and paycompvalue ge
'100000' and currencyCode eq 'USD' and
frequency eq 'ANN'&$format=JSON
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
EmpPayCompRecurring(payComponent='Base
Salary',seqNumber=1L,startDate=datetime'2011-03-19T00:00:00',userId='wsown1')"
},
"startDate": "/Date(1300492800000)/",
"payComponent": "Base Salary",
"userId": "wsown1",
"seqNumber": "1",
"paycompvalue": "100000",
"currencyCode": "USD",
"endDate": "/Date(253402300799000)/",
"frequency": "ANN",
"lastModifiedDateTime": "/Date(1304284880000+0000)/",
"lastModifiedOn": "/Date(1304284880000)/",
"createdOn": "/Date(1304284880000)/",
"createdBy": "wsown1",
"createdDateTime": "/Date(1304284880000+0000)/",
"lastModifiedBy": "wsown1",
"notes": null,
"frequencyNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
EmpPayCompRecurring(payComponent='Base
Salary',seqNumber=1L,startDate=datetime'2011-03-19T00:00:00',userId='wsown1')/
frequencyNav"
}
},
"payComponentNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
EmpPayCompRecurring(payComponent='Base
Salary',seqNumber=1L,startDate=datetime'2011-03-19T00:00:00',userId='wsown1')/
payComponentNav"
}
},
"compensationNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
EmpPayCompRecurring(payComponent='Base
Salary',seqNumber=1L,startDate=datetime'2011-03-19T00:00:00',userId='wsown1')/
compensationNav"
}
},
Use Case 2: Upsert the Recurring Pay Component of an Employee with Multiple
User Ids
In case of an employee with multiple userIds, you can import the recurring compensation information by using
the personIdExternal property.
Request
Operation Upsert
URI https://<API-Server>/odata/v2/upsert
Payload {
"__metadata": {
"uri": "https://<API-Server>/
odata/v2/EmpPayCompRecurring"
},
"userId":
"&&USE_PERSON_ID_EXTERNAL&&",
"seqNumber": "1",
"startDate": "/
Date(1272672000000)/",
"personIdExternal": "104038",
"payComponent": "BASIC_BZ",
"frequency": "MON",
"paycompvalue": "15000"
}
Response
{
"d": [
{
"key": "EmpPayCompRecurring/payComponent=BASIC_BZ,EmpPayCompRecurring/
seqNumber=1,EmpPayCompRecurring/
Related Information
6.13 EmpTimeAccountBalance
The EmpTimeAccountBalance entity provides time account balance information, enabling external systems like
payrolls to capture this data. The most common use case for deriving time account balance information is to enrich
the employee’s pay slip with time off data.
Context Information
A prerequisite for this API is a configured Employee Central Time Off solution.
As the balance is not stored in Employee Central Time Off, the API needs to calculate the balance as of the
specified date (balance as of date). The API therefore needs to determine the valid time accounts of the respective
user (that is, employment) and time account type and calculate the balance by summing up the time account
details.
The API currently returns only calculated data based on accrual runs already performed. Simulated data is not
returned by the API.
For details, check the corresponding Implementation Information for Time Off available at http://help.sap.com/
cloud4hr?current=on-demand#section5.
Note
Example
If the service is called with a balance as of date 1.3.2018, the system identifies two valid time accounts and
returns both results. Result would be 2 records as above.
If the service is called with a balance as of date 1.8.2018, the system identifies only one valid time account.
Result would be 18 days. One record is returned only.
● The balance considers all positive and negative bookings up to the selected date. This includes:
○ All accruals and entitlements
○ Manual adjustments (deduction and adding)
○ Carry forward values from period end processing (negative or positive)
○ All recalculation values for example due to an FTE change (negative and positive)
○ All taken leave up to the selected day
○ And all other bookings
Supported Operations
Query
Parameters
The entity has two required filters, to be used in $filter, which support IN and EQ operators only. The second
optional parameter is a normal URL parameter which requires a date in format YYYY-MM-DD.
Caution
The external code of the time ac
count type is case sensitive. Make
sure that the external code is cor
rect.
When you use this entity in middleware or Integration Center, bulk data abstraction is not possible because
userId is a mandatory field and giving all userId in the filter criteria will lead to a large query that would result in
a failure.
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
The following properties are returned for each record. The API might return several records per user and time
account type provided in the filter. The unique key of the returned records is neither the userId nor the
timeAccountType but the unique UUID of the TimeAccount Entity. This means that the API returns the balance for
all relevant time accounts of the given users and adds additional information based on the returned time account.
Property Description
Use Case 1: Payroll Integration: Provide Time Account Balance Information for
Payslip
Request
Operation Query
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
EmpTimeAccountBalance('168c659421714e16bcd1963d9937731b')",
"type": "SFOData.EmpTimeAccountBalance"
},
"timeAccount": "168c659421714e16bcd1963d9937731b",
"balance": "240",
"userId": "btassimo",
"timeUnit": "HOURS",
"accountClosed": false,
"timeAccountType": "bgs_tacct_irregularWorkSchedule_hours"
},
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
EmpTimeAccountBalance('b081c83b83c6472fa0920bd47057f74c')",
"type": "SFOData.EmpTimeAccountBalance"
},
"timeAccount": "b081c83b83c6472fa0920bd47057f74c",
"balance": "-4.2166666667",
"userId": "bwfapproval",
"timeUnit": "HOURS",
"accountClosed": false,
"timeAccountType": "bgs_tacct_WF_stepEM_CcEMM"
},
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
EmpTimeAccountBalance('03f7b8cd4fac41f08a0d44f3f38eb015')",
"type": "SFOData.EmpTimeAccountBalance"
},
"timeAccount": "03f7b8cd4fac41f08a0d44f3f38eb015",
"balance": "39.75",
"userId": "bwfapproval",
"timeUnit": "DAYS",
"accountClosed": false,
"timeAccountType": "bgs_tacct_WF_NoStep_CcRole-Person"
},
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
EmpTimeAccountBalance('168c659421714e16bcd1963d9937731b')",
"type": "SFOData.EmpTimeAccountBalance"
},
"timeAccount": "168c659421714e16bcd1963d9937731b",
"balance": "240",
"userId": "btassimo",
Error Handling
Invalid userIds or Time Account Types are not reported as errors and will lead to an empty result.
Related Information
This entity contains information about changing the hire date of an employee in Employee Central.
Permissions
Supported Operations
Query
Request
Operation Query
URI https://<API-SErver>/odata/v2/HireDateChange?
$filter=usersSysId eq 'testUserSysID’&$format=json
Response
Sample Code
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/HireDateChange?
$filter=usersSysId eq 'testUserSysID’&$format=json",
"type": "SFOData.HireDateChange"
},
"code": "testCode",
"originalHireDate": "/Date(1696723200000)/",
"lastModifiedDateTime": "/Date(1571150956000+0000)/",
"lastModifiedBy": "testUserSysID",
"createdDateTime": "/Date(1571150956000+0000)/",
"mdfSystemRecordStatus": "N",
"newHireDate": "/Date(2011737600000)/",
"processingStatus": "SUCCESSFUL",
"usersSysId": "testUserSysID",
Related Information
This entity allows you to create an alternative cost distribution for employees.
Permissions
Supported Operations
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Navigation Properties
Query continuous requests about the alternate cost distribution for an employee.
Request
Operation Query
URI https://<api-server>/odata/v2/EmpCostDistribution?
$filter=usersSysId eq <User-ID>&$expand=items&$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
EmpCostDistribution(effectiveStartDate=datetime'2021-03-26T00:00:00',usersSysId='<Us
er-ID>')",
"type": "SFOData.EmpCostDistribution"
},
"usersSysId": <User-ID>,
"effectiveStartDate": "/Date(1616716800000)/",
"effectiveEndDate": "/Date(253402214400000)/",
"lastModifiedDateTime": "/Date(1616733672000+0000)/",
"lastModifiedBy": "223344",
"createdDateTime": "/Date(1616733672000+0000)/",
"mdfSystemRecordStatus": "N",
"createdBy": "223344",
"usersSysIdNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
EmpCostDistribution(effectiveStartDate=datetime'2021-03-26T00:00:00',usersSysId='<Us
er-ID>')/usersSysIdNav"
}
},
"createdByNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
EmpCostDistribution(effectiveStartDate=datetime'2021-03-26T00:00:00',usersSysId='<Us
er-ID>')/createdByNav"
}
},
"wfRequestNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
EmpCostDistribution(effectiveStartDate=datetime'2021-03-26T00:00:00',usersSysId='<Us
er-ID>')/wfRequestNav"
}
},
Request
Operation Upsert
URI https://<api-server>/odata/v2/upsert?
Payload {
"__metadata": {
"uri": "/
EmpCostDistribution(effectiveStartDate=datetime'2021-03-
26T00:00:00',usersSysId='<User-Id>')",
"type":
"SFOData.EmpCostDistribution"
},
"usersSysId": <User-Id>,
"effectiveStartDate": "/
Date(1616716800000)/",
"items": [
{
"__metadata": {
"uri": "https://<API-
Server>/odata/v2/
EmpCostDistributionItem(EmpCostDistribution_effectiveSta
rtDate=datetime'2021-03-26T00:00:00',EmpCostDistribution
_usersSysId='438',externalCode=147843L)",
"type":
"SFOData.EmpCostDistributionItem"
},
"EmpCostDistribution_usersSysId": <User-Id>,
"EmpCostDistribution_effectiveStartDate": "/
Date(1616716800000)/",
"lastModifiedDateTime": "/
Date(1616733672000+0000)/",
"costCenter": "MC_240001",
"lastModifiedBy": "223344",
"createdDateTime": "/
Date(1616733672000+0000)/",
"mdfSystemRecordStatus":
"N",
"createdBy": "223344",
"percentage": "1"
}
]
}
{
"d": [
{
"key": "EmpCostDistribution/
effectiveStartDate=2021-03-26T00:00:00.000Z,EmpCostDistribution/usersSysId=<User-
Id>",
"status": "OK",
"editStatus": "UPSERTED",
"message": null,
"index": 0,
"httpCode": 200,
"inlineResults": null
}
]
}
Request
Operation Merge
URI https://<api-server>/odata/v2/
EmpCostDistribution(effectiveStartDate=datetime'2021-03-26T
00:00:00',usersSysId='<User-Id>')
Content-Type: application/json
Payload {
"__metadata": {
"uri": "/
EmpCostDistribution(effectiveStartDate=datetime'2021-03-
26T00:00:00',usersSysId='<User-Id>')",
"type":
"SFOData.EmpCostDistribution"
},
"usersSysId": "<User-Id>",
"effectiveStartDate": "/
Date(16167168004559)/",
}
Operation Insert
URI https://<api-server>/odata/v2/EmpCostDistribution
Payload {
"__metadata": {
"uri": "/
EmpCostDistribution(effectiveStartDate=datetime'2021-03-
29T00:00:00',usersSysId='<User-Id>')",
"type":
"SFOData.EmpCostDistribution"
},
"usersSysId": "<User-Id>",
"effectiveStartDate": "/
Date(16167164004879)/",
"items": [
{
"__metadata": {
"uri": "https://<API-
Server>/odata/v2/
EmpCostDistributionItem(EmpCostDistribution_effectiveSta
rtDate=datetime'2021-03-29T00:00:00',EmpCostDistribution
_usersSysId='<User-Id>',externalCode=147843L)",
"type":
"SFOData.EmpCostDistributionItem"
},
"EmpCostDistribution_usersSysId": "<User-Id>",
"EmpCostDistribution_effectiveStartDate": "/
Date(16167164004879)/",
"costCenter": "MC_240001",
"lastModifiedBy": "223344",
"percentage": "48"
}
]
}
Response
{
"d": {
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
EmpCostDistribution(effectiveStartDate=datetime'2482-04-25T00:00:00',usersSysId='<Us
er-Id>')",
"type": "SFOData.EmpCostDistribution"
},
"usersSysId": "<User-Id>",
"effectiveStartDate": "/Date(16167081600000)/",
"items": {
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
EmpCostDistributionItem(EmpCostDistribution_effectiveStartDate=datetime'2021-03-29T0
0:00:00',EmpCostDistribution_usersSysId='<User-Id>',externalCode=147843L)",
"type": "SFOData.EmpCostDistributionItem"
},
"EmpCostDistribution_usersSysId": "<User-Id>",
"EmpCostDistribution_effectiveStartDate": "/Date(16167164004879)/",
"costCenter": "MC_240001",
Request
Operation Delete
URI https://<api-server>/odata/v2/
EmpCostDistribution(effectiveStartDate=datetime'2021-04-01T
00:00:00',usersSysId='<User-Id>')
6.15.1 EmpCostDistributionItem
The EmpCostDistributionItem entity is a composite child entity of the EmpCostDistribution entity and contains the
individual alternative cost distribution for each employee.
Prerequisites
Permissions
Supported Operations
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Navigation Properties
Query continuous requests about the alternate cost distribution item for an employee.
Request
Operation Query
URI https://<api-server>/odata/v2/EmpCostDistributionItem?
$filter=EmpCostDistribution_usersSysId eq <User-Id> &
$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
EmpCostDistributionItem(EmpCostDistribution_effectiveStartDate=datetime'2021-03-26T0
0:00:00',EmpCostDistribution_usersSysId='<User-Id>',externalCode=147843L)",
"type": "SFOData.EmpCostDistributionItem"
},
"externalCode": "147843",
Request
Operation Upsert
URI https://<api-server>/odata/v2/upsert?
"EmpCostDistribution_effectiveStartDate": "/
Date(1616716800000)/",
"costCenter": "MC_240001",
"percentage": "1"
}
Response
{
"d": [
{
"key": "EmpCostDistributionItem/
EmpCostDistribution_effectiveStartDate=2021-03-26T00:00:00.000Z,EmpCostDistributionI
tem/EmpCostDistribution_usersSysId=<User-Id>,EmpCostDistributionItem/
externalCode=147843",
"status": "OK",
"editStatus": "UPSERTED",
"message": null,
"index": 0,
"httpCode": 200,
"inlineResults": null
}
]
}
Request
Operation Merge
URI https://<api-server>/odata/v2/
EmpCostDistributionItem(EmpCostDistribution_effectiveStartD
ate=datetime'2021-04-01T00:00:00',EmpCostDistribution_users
SysId='<User-Id>',externalCode=419336L)
Content-Type: application/json
Payload {
"percentage": "55"
}
Request
Operation Insert
URI https://<api-server>/odata/v2/EmpCostDistributionItem
Payload {
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
EmpCostDistributionItem(EmpCostDistribution_effectiveSta
rtDate=datetime'2021-04-01T00:00:00',EmpCostDistribution
_usersSysId='<User-Id>')",
"type": "SFOData.EmpCostDistributionItem"
},
"EmpCostDistribution_usersSysId": "<User-Id>",
"EmpCostDistribution_effectiveStartDate": "/
Date(1617235200000)/",
"percentage": "1",
"costCenter": "7500-1110"
}
Response
{
"d": {
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
EmpCostDistributionItem(EmpCostDistribution_effectiveStartDate=datetime'2021-04-01T0
0:00:00',EmpCostDistribution_usersSysId='<User-Id>',externalCode=419337L)",
"type": "SFOData.EmpCostDistributionItem"
},
"percentage": "1",
"costCenter": "7500-1110",
"externalCode": "419337",
"EmpCostDistribution_usersSysId": "<User-Id>",
"EmpCostDistribution_effectiveStartDate": "/Date(1617235200000)/"
}
}
Request
Operation Delete
URI https://<api-server>/odata/v2/
EmpCostDistributionItem(EmpCostDistribution_effectiveStartD
ate=datetime'2021-04-01T00:00:00',EmpCostDistribution_users
SysId='<User-Id>',externalCode=419337L)
6.16 SecondaryAssignments
You use this entity to differentiate primary from secondary employments during concurrent employment
replications.
Supported Operations
Request
Request Information
Operation Query
URI https://<API-Server>/odata/v2/PerPerson?
$format=json&$filter=personIdExternal%20eq
%20'jsmith'&
$expand=secondaryAssignmentsNav/
allSfProcesses
Reponse
{
"d": {
"results": [
6.16.1 SecondaryAssignmentsItem
A composite child of SecondaryAssignments. It can only be upserted with SecondaryAssignments. Along with
SecondaryAssignments, it captures concurrent employment information. To be precise, the PerPerson entity has a
navigation secondayAssignmentsNav that lets you navigate to the entity SecondaryAssignments.
Supported Operations
Note
Although all operations are supported, the only one that makes any business sense is upsert.
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
There is not often a business case for this operation but it has been provided to support the cloning or transfer of
data between similar instances in a different environment. In this example, user system ID (represented by the
externalcode) for the primary employment is PrimaryEmployment and the userSysID for secondary employment is
represented by 301 (a number automatically generated when a secondary employment is created).
Operation Upsert
URI https://<API-Server>/odata/v2/upsert
Payload {
"__metadata": { "uri":
"SecondaryAssignments"},
"effectiveStartDate" : "/
Date(1420066800000)/",
"externalCode" : "mjaschob",
"allSfProcesses": {
"__metadata": { "uri":
"SecondaryAssignmentsItem"},
"SecondaryAssignments_effectiveStartDate
" : "/Date(1420066800000)/",
"SecondaryAssignments_externalCode" :
"mjaschob",
"externalCode" :
"myexternalcode55",
"usersSysId" : "301"
}
}
Additional Information
You can see an example of SecondaryAssigmentsItem in use in Differentiating primary from secondary
employment during concurrent employment replication [page 844]
Related Information
7.1 HDTempAssignment
The HDTempAssignment API allows you to retrieve or store Higher Duty or Temporary Assignment position,
responsibility, and allowance details.
Supported Operations
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Navigation Properties
Operation Query
URI https://<API-Server>/odata/v2/HDTempAssignment?
$filter=responsibilityType eq ‘FULL_RESPONSIBILITY’
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-server>/odata/v2/
HDTempAssignment(mdfSystemEffectiveStartDate=datetime'2020-01-27T00:00:00',usersSysI
d='cgrant1')",
"type": "SFOData.HDTempAssignment"
},
"mdfSystemEffectiveStartDate": "/Date(1580083200000)/",
"usersSysId": "cgrant1",
"effectiveEndDate": "/Date(253402214400000)/",
"lastModifiedDateTime": "/Date(1580117557000+0000)/",
"createdDateTime": "/Date(1580117557000+0000)/",
"percentageAllowance": null,
"discardLessThanHalfDay": false,
"substantiveReferenceSalary": "66.76",
"hdTempAmtsCurrency": null,
"percentageHDTemp": "88.88",
"responsibilityType": "FULL_RESPONSIBILITY",
"countingRule": null,
"substantiveRefSalaryPayComp": null,
"lastModifiedBy": "admin",
"substantiveAmtsCurrency": null,
"substantiveRefSalaryAdjustedAmt": null,
"hdTempRefSalaryAdjustedAmt": null,
"hdTempRefSalaryPayComp": null,
"s17Indicator": false,
"mdfSystemRecordStatus": "N",
"hdTempReferencePosition": "MGR_ACTNE",
"createdBy": "admin",
"allowanceBasis": "NOT_APPLICABLE",
"hdTempReferenceSalaryFromPerson": false,
"subReferenceUserID": null,
"costAssignment": "DEFAULT_FROM_POSITION",
"hdTempReferenceSalary": null,
"hdTempReferenceUserID": null,
"usersSysIdNav": {
"__deferred": {
"uri": "https://<API-server>/odata/v2/
HDTempAssignment(mdfSystemEffectiveStartDate=datetime'2020-01-27T00:00:00',usersSysI
d='cgrant1')/usersSysIdNav"
}
},
"createdByNav": {
"__deferred": {
"uri": "https://<API-server>/odata/v2/
HDTempAssignment(mdfSystemEffectiveStartDate=datetime'2020-01-27T00:00:00',usersSysI
d='cgrant1')/createdByNav"
}
},
"hdTempRefSalaryPayCompNav": {
"__deferred": {
Create a new Higher Duty/Temporary Assignment MDF or a new time-slice of the same assignment for a Higher
Duty/Temporary Assignment employment.
Request
Operation Insert
URI https://<API-Server>/odata/v2/HDTempAssignment
Additional Information
7.2 EmpCostAssignment
The EmpCostAssignment API allows you to define the primary assignment and secondary/alternative assignment
of the cost center, fund, grant, functional area, budget period, and funds center for an employee.
Permissions
Supported Operations
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Navigation Properties
wrokerNav User
mdfSystemRecordStatusNav MDFEnumValue
createdByNav User
lastModifiedByNav User
Use Case 1: Query the Employee Cost Assignment record for a user
Request
Operation Query
URI https://<API-Server>/odata/v2/EmpCostAssignment?
$expand=items&$filter=worker eq <User-ID>&$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
Request
Operation Upsert
URI https://<API-Server>/odata/v2/upsert?purgeType=record
Response
{
"d": [
{
"key": "EmpCostAssignment/
effectiveStartDate=2020-07-23T00:00:00.000Z,EmpCostAssignment/worker=<User-ID>",
"status": "OK",
"editStatus": "UPSERTED",
"message": null,
"index": 0,
"httpCode": 200,
"inlineResults": null
}
]
}
7.3 EmpCostAssignmentItem
The EmpCostAssignmentItem entity is a composite child entity of the EmpCostAssignment entity containing
individual cost assignment for an employee.
Supported Operations
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Navigation Properties
mdfSystemRecordStatusNav MDFEnumValue
createdByNav User
lastModifiedByNav User
Use Case 1: Query all the cost assignments for a user for a given effective start
date
Query all the cost assignments for a user for a given effective start date.
Request
Operation Query
URI https://<API-Server>/odata/v2/EmpCostAssignmentItem?
$filter=EmpCostAssignment_effectiveStartDate eq
datetime'2020-07-23T00:00:00' and EmpCostAssignment_worker
eq <User-ID>
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2020-07-23T00:00
:00',EmpCostAssignment_worker=<User-ID>,externalCode=12523L)",
"type": "SFOData.EmpCostAssignmentItem"
},
"externalCode": "12523",
"EmpCostAssignment_worker": "<User-ID>",
"EmpCostAssignment_effectiveStartDate": "/Date(1595462400000)/",
"defaultAssignment": false,
"lastModifiedDateTime": "/Date(1596178338000+0000)/",
"costCenter": "35105",
"lastModifiedBy": "<LastModifiedBy-User-ID>",
"createdDateTime": "/Date(1596178338000+0000)/",
"fundCenter": null,
"mdfSystemRecordStatus": "N",
"createdBy": "<CreatedBy-User-ID>",
"fund": "FUND0617/0001",
"functionalArea": "FA1",
"budgetPeriod": "BP1",
"percentage": "25",
"grant": null,
"createdByNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2020-07-23T00:00
:00',EmpCostAssignment_worker=<User-ID>,externalCode=12523L)/createdByNav"
}
},
"costCenterNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2020-07-23T00:00
:00',EmpCostAssignment_worker=<User-ID>,externalCode=12523L)/costCenterNav"
}
},
Additional Information
7.4 FundGO
An employee cost assignment refers to assignment of accounting objects for an employee. Fund is one of the
standard accounting objects supported.
Permissions
Supported Operations
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Navigation Properties
createdByNav User
effectiveStatusNav MDFEnumValue
fundDescriptionTranslationTextNav MDFLocalizedValue
lastModifiedByNav User
mdfSystemRecordStatusNav MDFEnumValue
wfRequestNav WfRequest
Use Case 1: Query Employee Cost Assignment items information for a user
Request
Operation Query
URI https://<API-Server>/odata/v2/
EmpCostAssignment(effectiveStartDate=datetime'2021-07-21T00
:00:00',worker=’<userid>’)/items?$format=JSON
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15344L)",…
},
"externalCode": "15344",
"EmpCostAssignment_worker": "196",
"EmpCostAssignment_effectiveStartDate": "/Date(1626825600000)/",
"defaultAssignment": true,
"lastModifiedDateTime": "/Date(1626870986000+0000)/",
"costCenter": "35106",
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1626870917000+0000)/",
"fundCenter": null,
"mdfSystemRecordStatus": "N",
"createdBy": "admin",
"fund": "100/f1",
"functionalArea": "fun2Test",
"budgetPeriod": "Bud1Test",
"percentage": "50",
"grant": "GRANT1TEST",
"budgetPeriodNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15344L)/budgetPeriodNav"…
},
"fundNav": {
"__deferred": {
"EmpCostAssignment_effectiveStartDate": "/Date(1626825600000)/",
"defaultAssignment": false,
"lastModifiedDateTime": "/
Date(1626870986000+0000)/",
"costCenter": "35106",
"lastModifiedBy": "admin",
"functionalAreaNav": {
"__deferred": {
"uri":
"https://<api-server>/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15362L)/functionalAreaNav"…
},
"fundCenterNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15362L)/fundCenterNav"…
},
"costCenterNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15362L)/costCenterNav"…
},
"lastModifiedByNav": {
"uri": "https://<api-server>/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15362L)/lastModifiedByNav"…
},
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15362L)/mdfSystemRecordStatusNav"…
}
]
}
}
7.5 FundCenterGO
An employee cost assignment refers to assignment of accounting objects for an employee. These entities are
controlled via a provisioning switch. Fund center is one of the standard accounting objects supported.
Permissions
Supported Operations
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
createdByNav User
effectiveStatusNav MDFEnumValue
fundCenterDescriptionTranslationText MDFLocalizedValue
Nav
lastModifiedByNav User
mdfSystemRecordStatusNav MDFEnumValue
wfRequestNav WfRequest
Use Case 1: Query Employee Cost Assignment items information for a user
Request
Operation Query
URI https://<API-Server>/odata/v2/
EmpCostAssignment(effectiveStartDate=datetime'2021-07-21T00
:00:00',worker=’<userid>’)/items?$format=JSON
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15344L)",…
},
"externalCode": "15344",
"EmpCostAssignment_worker": "196",
"EmpCostAssignment_effectiveStartDate": "/Date(1626825600000)/",
"defaultAssignment": true,
"lastModifiedDateTime": "/Date(1626870986000+0000)/",
"costCenter": "35106",
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1626870917000+0000)/",
"fundCenter": null,
"mdfSystemRecordStatus": "N",
"createdBy": "admin",
"fund": "100/f1",
"functionalArea": "fun2Test",
"EmpCostAssignment_effectiveStartDate": "/Date(1626825600000)/",
"defaultAssignment": false,
"lastModifiedDateTime": "/
Date(1626870986000+0000)/",
"costCenter": "35106",
"lastModifiedBy": "admin",
"createdDateTime": "/
Date(1626870986000+0000)/",
"fundCenter": null,
"mdfSystemRecordStatus": "N",
"createdBy": "admin",
"fund": "100/f1",
"functionalArea": "fun1Test",
"budgetPeriod": "Bud2Test",
"percentage": "50",
"grant": "GRANT2TEST",
"budgetPeriodNav": {
"__deferred": {
"uri": "https://<api-
server>/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15362L)/budgetPeriodNav"…
},
"fundNav": {
"__deferred": {
"uri": "https://
<api-server>/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15362L)/fundNav"…
},
"createdByNav": {
"__deferred": {
"uri": "https://
<api-server>/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15362L)/createdByNav"…
},
"grantNav": {
"__deferred": {
"uri":
"https://<api-server>/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15362L)/grantNav"…
},
"functionalAreaNav": {
"__deferred": {
"uri":
"https://<api-server>/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15362L)/functionalAreaNav"…
},
"fundCenterNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15362L)/fundCenterNav"…
},
"costCenterNav": {
"uri": "https://<api-server>/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15362L)/costCenterNav"…
},
"lastModifiedByNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15362L)/lastModifiedByNav"…
},
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15362L)/mdfSystemRecordStatusNav"…
}
]
}
}
7.6 GrantGO
An employee cost assignment refers to assignment of accounting objects for an employee. Grant is one of the
standard accounting objects supported.
Permissions
Supported Operations
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Navigation Properties
createdByNav User
effectiveStatusNav MDFEnumValue
grantDescTranslationTextNav MDFLocalizedValue
lastModifiedByNav User
mdfSystemRecordStatusNav MDFEnumValue
wfRequestNav WfRequest
Use Case 1: Query Employee Cost Assignment items information for a user
Request
Operation Query
URI https://<API-Server>/odata/v2/
EmpCostAssignment(effectiveStartDate=datetime'2021-07-21T00
:00:00',worker=’<userid>’)/items?$format=JSON
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15344L)",…
},
"externalCode": "15344",
"EmpCostAssignment_worker": "196",
"EmpCostAssignment_effectiveStartDate": "/Date(1626825600000)/",
"defaultAssignment": true,
"EmpCostAssignment_effectiveStartDate": "/Date(1626825600000)/",
"defaultAssignment": false,
"lastModifiedDateTime": "/
Date(1626870986000+0000)/",
"costCenter": "35106",
"lastModifiedBy": "admin",
"createdDateTime": "/
Date(1626870986000+0000)/",
"fundCenter": null,
"mdfSystemRecordStatus": "N",
"createdBy": "admin",
"fund": "100/f1",
"functionalArea": "fun1Test",
"budgetPeriod": "Bud2Test",
"percentage": "50",
"grant": "GRANT2TEST",
"budgetPeriodNav": {
"__deferred": {
"uri": "https://<api-
server>/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15362L)/budgetPeriodNav"…
},
"fundNav": {
"__deferred": {
"uri": "https://
<api-server>/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15362L)/fundNav"…
},
"createdByNav": {
"__deferred": {
"uri": "https://
<api-server>/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15362L)/createdByNav"…
},
"grantNav": {
"__deferred": {
"uri":
"https://<api-server>/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15362L)/grantNav"…
},
"functionalAreaNav": {
"__deferred": {
"uri":
"https://<api-server>/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15362L)/functionalAreaNav"…
},
"fundCenterNav": {
"uri": "https://<api-server>/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15362L)/fundCenterNav"…
},
"costCenterNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15362L)/costCenterNav"…
},
"lastModifiedByNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15362L)/lastModifiedByNav"…
},
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15362L)/mdfSystemRecordStatusNav"…
}
]
}
}
7.7 BudgetPeriodGO
An employee cost assignment refers to assignment of accounting objects for an employee. Budget period is one of
the standard accounting objects supported.
Permissions
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Navigation Properties
createdByNav User
effectiveStatusNav MDFEnumValue
budgetPeriodDescriptionTranslationText MDFLocalizedValue
Nav
lastModifiedByNav User
mdfSystemRecordStatusNav MDFEnumValue
wfRequestNav WfRequest
Use Case 1: Query Employee Cost Assignment items information for a user
Request
Operation Query
URI https://<API-Server>/odata/v2/
EmpCostAssignment(effectiveStartDate=datetime'2021-07-21T00
:00:00',worker=’<userid>’)/items?$format=JSON
Response
{
"d": {
"EmpCostAssignment_effectiveStartDate": "/Date(1626825600000)/",
"defaultAssignment": false,
"lastModifiedDateTime": "/
Date(1626870986000+0000)/",
"costCenter": "35106",
"lastModifiedBy": "admin",
"createdDateTime": "/
Date(1626870986000+0000)/",
"fundCenter": null,
"mdfSystemRecordStatus": "N",
"createdBy": "admin",
"fund": "100/f1",
"functionalArea": "fun1Test",
"budgetPeriod": "Bud2Test",
"percentage": "50",
"grant": "GRANT2TEST",
"budgetPeriodNav": {
"__deferred": {
"uri": "https://
localhost:443/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15362L)/budgetPeriodNav"…
},
"fundNav": {
"__deferred": {
"uri": "https://
localhost:443/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15362L)/fundNav"…
},
"createdByNav": {
"__deferred": {
"uri": "https://
localhost:443/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15362L)/createdByNav"…
},
"grantNav": {
"__deferred": {
"uri":
"https://localhost:443/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15362L)/grantNav"…
},
"__deferred": {
"uri":
"https://localhost:443/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15362L)/functionalAreaNav"…
},
"fundCenterNav": {
"__deferred": {
"uri": "https://localhost:443/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15362L)/fundCenterNav"…
},
"costCenterNav": {
"__deferred": {
"uri": "https://localhost:443/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15362L)/costCenterNav"…
},
"lastModifiedByNav": {
"__deferred": {
"uri": "https://localhost:443/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15362L)/lastModifiedByNav"…
},
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://localhost:443/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15362L)/mdfSystemRecordStatusNav"…
}
]
}
}
An employee cost assignment refers to assignment of accounting objects for an employee. Fund is one of the
standard accounting objects supported.
Permissions
Supported Operations
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Navigation Properties
createdByNav User
effectiveStatusNav MDFEnumValue
functionalAreaDescriptionTranslation MDFLocalizedValue
TextNav
lastModifiedByNav User
mdfSystemRecordStatusNav MDFEnumValue
wfRequestNav WfRequest
Request
Operation Query
URI https://<API-Server>/odata/v2/
EmpCostAssignment(effectiveStartDate=datetime'2021-07-21T00
:00:00',worker=’<userid>’)/items?$format=JSON
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://localhost:443/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15344L)",…
},
"externalCode": "15344",
"EmpCostAssignment_worker": "196",
"EmpCostAssignment_effectiveStartDate": "/Date(1626825600000)/",
"defaultAssignment": true,
"lastModifiedDateTime": "/Date(1626870986000+0000)/",
"costCenter": "35106",
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1626870917000+0000)/",
"fundCenter": null,
"mdfSystemRecordStatus": "N",
"createdBy": "admin",
"fund": "100/f1",
"functionalArea": "fun2Test",
"budgetPeriod": "Bud1Test",
"percentage": "50",
"grant": "GRANT1TEST",
"budgetPeriodNav": {
"__deferred": {
"uri": "https://localhost:443/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15344L)/budgetPeriodNav"…
},
"fundNav": {
"__deferred": {
"uri": "https://localhost:443/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15344L)/fundNav"…
},
"createdByNav": {
"__deferred": {
"uri": "https://localhost:443/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15344L)/createdByNav"…
},
"grantNav": {
"__deferred": {
"uri": "https://localhost:443/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15344L)/grantNav"…
"EmpCostAssignment_effectiveStartDate": "/Date(1626825600000)/",
"defaultAssignment": false,
"lastModifiedDateTime": "/
Date(1626870986000+0000)/",
"costCenter": "35106",
"lastModifiedBy": "admin",
"createdDateTime": "/
Date(1626870986000+0000)/",
"fundCenter": null,
"mdfSystemRecordStatus": "N",
"createdBy": "admin",
"fund": "100/f1",
"functionalArea": "fun1Test",
"budgetPeriod": "Bud2Test",
"percentage": "50",
"grant": "GRANT2TEST",
"budgetPeriodNav": {
"__deferred": {
"uri": "https://
localhost:443/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15362L)/budgetPeriodNav"…
"functionalAreaNav": {
"__deferred": {
"uri":
"https://localhost:443/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15362L)/functionalAreaNav"…
},
"fundCenterNav": {
"__deferred": {
"uri": "https://localhost:443/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15362L)/fundCenterNav"…
},
"costCenterNav": {
"__deferred": {
"uri": "https://localhost:443/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15362L)/costCenterNav"…
},
"lastModifiedByNav": {
"__deferred": {
"uri": "https://localhost:443/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15362L)/lastModifiedByNav"…
},
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://localhost:443/odata/v2/
EmpCostAssignmentItem(EmpCostAssignment_effectiveStartDate=datetime'2021-07-21T00:00
:00',EmpCostAssignment_worker='196',externalCode=15362L)/mdfSystemRecordStatusNav"…
}
]
}
}
8.1 FiscalYearVariant
This entity contains information about the fiscal year variant created for income tax declaration.
Supported Operations
Operation Description
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
periods This field contains period information of the fiscal year variant.
Request
Operation Query
URI https://<API-Server>/odata/v2/
FiscalYearVariant?$top=10&$format=JSON
Response
{
"d": {
Related Information
This entity contains the mapping information between a fiscal year variant and a country or a region.
Supported Operations
Operation Description
Query You can query the fiscal year variant mapping information.
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
Request
Operation Query
URI https://<API-Server>/odata/v2/
FiscalYearToCountryMap?$top=10&
$format=JSON
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
FiscalYearToCountryMap('FYC_IN')",
Related Information
Flexible associations can be defined between two foundation objects in the Corporate Data Model. The example
below shows a one to one relationship between location and geozone; a one to many relationship is defined
between location and company. OData automatically creates navigations from the source entity to the target
entities, based on the relationship defined.
<hris-element id="location">
<hris-associations>
<association id="id" multiplicity="ONE_TO_ONE" destination-
entity="geozone"/>
<association id="id" multiplicity="ONE_TO_MANY" destination-
entity="company"/>
</hris-associations>
</hris-associations>
The diagram below shows the default relationships between the different OData entities.
Changing the associations in the Corporate Data Model might cause OData APIs to fail, more so when the
association is deleted. This usually happens when association is already being used by the OData API.
You can use this entity to query, create, or modify a dynamic role that can be used as approvers in Employee
Central workflows.
Supported Operations
Operation Description
Query You can get the information of dynamic roles with Job Info
as Base Object.
Upsert You can create a new dynamic role or modify an existing role.
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
resolverType You can use this property to define the approver type in the
Employee Central workflows. There are three approver types:
Person, Dynamic Group, and Position.
Request
Operation Query
URI https://<API-Server>/odata/v2/
FODynamicRole?$format=JSON&
$filter=resolverType eq 'POSITION'&
$select=dynamicRoleAssignmentId,resolverTy
pe
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/FODynamicRole(6M)"
},
"dynamicRoleAssignmentId": "6",
"resolverType": "POSITION"
},
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/FODynamicRole(21M)"
},
"dynamicRoleAssignmentId": "21",
"resolverType": "POSITION"
},
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/FODynamicRole(22M)"
},
"dynamicRoleAssignmentId": "22",
"resolverType": "POSITION"
}
Request
Operation Upsert
URI https://<API-Server>/odata/v2/upsert
Response
{
"d": [
{
"key": "FODynamicRole/dynamicRoleAssignmentId=null",
"status": "OK",
"editStatus": "UPSERTED",
"message": null,
"index": 0,
"httpCode": 200,
"inlineResults": null
}
]
}
Related Information
9.3 FOEventReason
You can use this entity to define the event reasons why an event occurs, such as creating, changing, or deleting
employee data. An event reason can change the employee status of employees when an event occurs for them.
Operation Description
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
event You can use this property to specify the event for which the
event reason is created. Events are defined in the
PicklistV2 entity.
emplStatus You can use this property to change the employee status after
the event occurs. For example, if you make a data change and
use the event reason with emplStatus as inactive, the status
of the employee becomes inactive after the data change.
Request
Operation Query
URI https://<API-Server>/odata/v2/
FOEventReason?$filter=externalCode eq
'PAYMLA'&
$select=status,event,externalCode&
$format=JSON
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
FOEventReason(externalCode='PAYMLA',startDate=datetime'1970-01-01T00:00:00')"
},
Related Information
9.4 FOFrequency
This entity is used to define how an employee is paid, such as monthly or weekly.
Supported Operations
Operation Description
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
Property Description
annualizationFactor You can use this property to define the times an employee is
paid in one year. For example, set this property as 12 if the em
ployee is paid monthly.
Request
Operation Query
URI https://<API-Server>/odata/v2/FOFrequency?
$filter=externalCode eq 'DLY'&
$select=externalCode,name,description,annu
alizationFactor&$format=JSON
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/FOFrequency('DLY')"
},
"externalCode": "DLY",
"description": "Daily",
"name": "Daily",
"annualizationFactor": "365"
}
]
}
}
Related Information
This entity enables you to group multiple company locations within the same cost-of-living areas as a Geo Zone.
You can offset the impacts of higher or lower-than-average costs of living to pay range.
Supported Operations
Operation Description
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
adjustmentPercentage You can use this property to define the adjustment percentage
of the Geo Zone compared to the average pay range, so as to
offset the impact of higher or lower cost-of-living on the pay
range.
Request
Operation Query
URI https://<API-Server>/odata/v2/FOGeozone?
$filter=externalCode eq 'APAC'&
$select=status,name,createdBy&$format=JSON
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
FOGeozone(externalCode='APAC',startDate=datetime'1990-01-01T00:00:00')"
},
"createdBy": "admin",
"status": "A",
"name": "Asia Pacific"
}
]
}
}
Related Information
9.6 FOLocation
Operation Description
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Use Case 1: Query the Company Location by External Code and Expand the
Address
Request
Operation Query
URI https://<API-Server>/odata/v2/FOLocation?
$filter=externalCode eq 'KO_SEO'&
$expand=addressNavDEFLT&$format=JSON
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/public/
FOLocation(externalCode='KO_SEO',startDate=datetime'1990-01-01T00:00:00')"
},
"startDate": "/Date(631152000000)/",
"externalCode": "KO_SEO",
"status": "A",
"endDate": "/Date(253402300799000)/",
"lastModifiedDateTime": "/Date(1317104275000+0000)/",
"lastModifiedOn": "/Date(1317104275000)/",
"createdOn": "/Date(1300819181000)/",
"timezone": "Asia/Seoul",
"createdBy": "admin",
Request
Operation Upsert
URI https://<API-Server>/odata/v2/upsert
Payload
{
"__metadata":{
"uri":"FOLocation(externalCode='KO_SEO',
startDate=datetime'1990-01-01T00:00:00')
"
},
"status":"A",
"endDate":"/Date(253402300799000)/",
"timezone":"Asia/Seoul",
"geozoneFlx":"APAC",
"description":"Seoul, Korea",
"name":"Seoul",
"locationGroup":"APAC",
"addressCountry": "KOR"
}
Response
{
"d": [
{
"key": "FOLocation/externalCode=KO_SEO,FOLocation/
startDate=1990-01-01T00:00:00.000+08:00",
"status": "OK",
"editStatus": "UPSERTED",
"message": null,
"index": 0,
"httpCode": 200,
"inlineResults": null
}
]
}
9.7 FOLocationGroup
You can use this entity to group multiple company locations for reporting or filtering purposes.
Supported Operations
Operation Description
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Request
Operation Query
URI https://<API-Server>/odata/v2/
FOLocationGroup?$filter=externalCode eq
'APAC'&
$select=status,name,createdBy&fromDate=201
3-01-01&toDate=2014-01-01&$format=JSON
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
FOLocationGroup(externalCode='APAC',startDate=datetime'1990-01-01T00:00:00')"
},
"createdBy": "admin",
"status": "A",
"name": "APAC"
}
]
}
}
Related Information
9.8 FOPayComponent
You can use this entity to assign a pay component, that is a payment or deduction, to an employee. You can define
the frequency and currency of the pay component.
Supported Operations
Operation Description
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
payComponentType You cn use this property to specify the type of the pay compo
nent as Amount or Percentage.
payComponentValue You can use this property to specify the value of the pay com
ponent.
currency You can use this property to specify the currency in which the
pay component is paid. If no currency is specified, the local
currency for the employee is used as default.
isEarning You can use this property to define the pay component as an
earning or a deduction.
Request
Operation Query
URI https://<API-Server>/odata/v2/
FOPayComponent?$filter=externalCode eq
'Base Salary'&$format=JSON
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
FOPayComponent(externalCode='Base Salary',startDate=datetime'1970-01-01T00:00:00')",
"type": "SFOData.FOPayComponent"
},
"startDate": "/Date(0)/",
"externalCode": "Base Salary",
"basePayComponentGroup": null,
"usedForCompPlanning": "COMP",
"payComponentType": "AMOUNT",
"endDate": "/Date(253370764800000)/",
"lastModifiedDateTime": "/Date(1304801484000+0000)/",
"currency": "USD",
"selfServiceDescription": null,
"isEarning": true,
"description": "Base Salary for USA",
"name": "Base Salary",
"recurring": true,
"status": "A",
"lastModifiedOn": "/Date(1304787084000)/",
"createdOn": "/Date(1299914597000)/",
"displayOnSelfService": true,
"createdBy": "v4admin",
"canOverride": true,
"frequencyCode": "ANN",
"payComponentValue": null,
"taxTreatment": null,
"createdDateTime": "/Date(1299932597000+0000)/",
"lastModifiedBy": "admin",
"target": false,
"basePayComponentGroupNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
FOPayComponent(externalCode='Base Salary',startDate=datetime'1970-01-01T00:00:00')/
basePayComponentGroupNav"
}
},
"taxTreatmentNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
FOPayComponent(externalCode='Base Salary',startDate=datetime'1970-01-01T00:00:00')/
taxTreatmentNav"
}
},
"frequencyCodeNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
FOPayComponent(externalCode='Base Salary',startDate=datetime'1970-01-01T00:00:00')/
frequencyCodeNav"
}
}
}
]
}
}
9.9 FOPayComponentGroup
This entity enables you to group multiple pay components for summations, totals, and annualizations. You can
group pay components of different currencies and frequencies in one pay component group.
Supported Operations
Operation Description
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
useForComparatioCalc You can use this property to define whether the pay compo
nent group is used for the comp ratio calculation.
showOnCompUI You can use this property to define whether the pay compo
nent group is displayed on the Comp UI.
useForRangePenetration You can use this property to define whether the pay compo
nent group is used to determine how far an employee has pro
gressed into a given pay range.
Use Case: Get the Pay Component Group for Base Salary
Request
Operation Query
URI https://<API-Server>/odata/v2/
FOPayComponentGroup?$filter=externalCode
eq 'Base Salary'&$select=externalCode&
$format=JSON
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
FOPayComponentGroup(externalCode='Base
Salary',startDate=datetime'1970-01-01T00:00:00')"
},
"externalCode": "Base Salary"
}
]
}
}
Related Information
You can use this entity to define a pay level for employees. A pay grade generally relates to a pay range.
Supported Operations
Operation Description
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
paygradeLevel You can use a number to define the level of the pay grade.
Request
Operation Query
URI https://<API-Server>/odata/v2/FOPayGrade?
$filter=status eq 'A' and externalCode eq
'GR-1'&$format=JSON
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
FOPayGrade(externalCode='GR-1',startDate=datetime'1990-01-01T00:00:00')"
},
"startDate": "/Date(631152000000)/",
"externalCode": "GR-1",
"createdOn": "/Date(1320750704000)/",
"createdBy": "admin",
"status": "A",
"description": null,
"paygradeLevel": "1",
"name": "Salary Grade 1",
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1320768704000+0000)/",
"endDate": "/Date(253402214400000)/",
"lastModifiedOn": "/Date(1320750704000)/",
"lastModifiedDateTime": "/Date(1320768704000+0000)/"
}
]
}
}
Related Information
9.11 FOPayRange
You can use this entity to define a pay range for a particular pay grade. A pay range can be used to calculate compa
ratio and range penetration.
Supported Operations
Operation Description
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Request
Operation Query
URI https://<API-Server>/odata/v2/FOPayRange?
$filter=status eq 'A' and externalCode eq
'PR-1-EU'&$format=JSON
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
FOPayRange(externalCode='PR-1-EU',startDate=datetime'1990-01-01T00:00:00')"
},
"startDate": "/Date(631152000000)/",
"externalCode": "PR-1-EU",
"minimumPay": "7146",
"status": "A",
"endDate": "/Date(253402214400000)/",
"lastModifiedOn": "/Date(1311238423000)/",
"lastModifiedDateTime": "/Date(1311252823000+0000)/",
Related Information
This entity contains workflow configuration information, such as role and type of the workflow approver, .
Supported Operations
Operation Description
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
● No Edit
Approvers do not have in-flight editing capability.
● Edit with Route Change
Approvers can edit a workflow and the workflow route will
be recalculated when they submit the request.
● Edit without Route Change
Approvers can edit a workflow but the workflow route will
not be recalculated when they submit the request.
● Edit Attachments Only
Approver can only edit the attachments of the workflow.
skipType You can defines how the system react when there is an empty
position or dynamic group. Possible values are Stop the
Workflow and Skip this Step.
Use Case: Get All the Workflow Configuration Information by External Code
Request
Operation Query
URI https://<API-Server>/odata/v2/FOWfConfig?
$filter=externalCode eq 'GRT_TEST'&
$format=JSON
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/FOWfConfig('GRT_TEST')",
"type": "SFOData.FOWfConfig"
},
"externalCode": "GRT_TEST",
"createdOn": "/Date(1379578155000)/",
"futureDatedAlternateWorkflow": null,
"createdBy": "admin",
"description": "GRT_TEST",
"name": "GRT_TEST",
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1379592555000+0000)/",
"lastModifiedOn": "/Date(1379578155000)/",
Related Information
9.13 FOWfConfigStepApprover
Supported Operations
Operation Description
Query You can get the information of approver for a workflow step.
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
● No Edit
Approvers do not have in-flight editing capability.
● Edit with Route Change
Approvers can edit a workflow and the workflow route will
be recalculated when they submit the request.
● Edit without Route Change
Approvers can edit a workflow but the workflow route will
not be recalculated when they submit the request.
● Edit Attachments Only
Approver can only edit the attachments of the workflow.
skipType Determines how the system react when there is an empty posi
tion or dynamic group. Possible values are Stop the
Workflow and Skip this Step.
Use Case: Get the Approver Information of the First Step in the Leave of
Absence Workflow
Request
Operation Query
URI https://<API-Server>/odata/v2/
FOWfConfigStepApprover?
$filter=externalCode eq 'LOA' and stepNum
eq 1&$format=JSON
Response
Additional Information
You can either query this entity directly as described above or via $expand=wfStepApproverNav from FOWfConfig.
Related Information
Contains information on working with FO (Foundation Objects) that have been migrated to MDF (Metadata
Framework)
As part of the phased migration of Foundation Objects (FO) to Metadata Framework (MDF), the FOs Cost Center,
Business Unit, Division, Department, Legal Entity, Job Classification, Job Function, Job Family, Pay Group, and
PayCalendar have been migrated. After migration, these FOs are now Generic Objects.
For these newly created GOs, you can influence the way the fields behave in API queries. For example, if Division
was not mapped, it would be displayed as any other MDF OData source, and you would still have the field
effectiveStartDate in the API query. In element field mapping, effectiveStartDate is mapped to the HRIS element ID
start-date. Here, we are telling the system that the original field name for effectiveStartDate is startdate. Likewise,
effectiveStatus is mapped to status, cust_string1 is mapped to custom_string1, cust_string2 is mapped to
custom_string2, and so on.
Let’s see how it works for the various fields. The system searches the object definition and then the element type
map. If there is a mapping in the Element Type Map (see Element Field Map for EC Migration section), it displays the
field name from the map. For example, you define a new custom field called cust_string7.
There are a few special handlings. In object definition, if you map a field that is translatable, for example, name or
description, the behavior is the same as it was earlier. You will also have the field with the element map name.
Additionally, you will have this field with the suffix for the language.
You have a picklist field and now you define a field in the object definition, for example, cust_string4 is mapped to
custom-string4.
Now you will have four attributes in OData. This entry means that you will have the following four fields:
The cust_string4 and cust_string4Nav coming from the MDF object definition will be available even if you do not
have an entry in the element type map.
If the element type map does not have cust_string4, that is, if it is not mapped there, you still have the cust_string4
and cust_string4Nav
The customString4 gives the optionID of picklist option from ECV2 and customString4Nav provides navigation to
the old ECV2 picklist option as illustrated in the screenshot below. If you do not have an element type map , a
default mapping is made available.
To delete a cust_string, select Take Action Make Correction , and delete cust_string4.
The two extra fields will not be available now since there is no mapping.
Before the migration, migrated FOs exposed language-independent texts for Name and Description. In addition, it
provided two links to FOTranslation to find the language-dependent texts for both fields. For example, the OData
entities FOJobFunction and FOPayGroup provided the navigation attributes nameTranslationNav and
descriptionTranslationNav to FoTranslation, if the translation of FOs is activated in Provisioning.
Remember
As a customer, you don't have access to Provisioning. To complete tasks in Provisioning, contact your
implementation partner or Account Executive. For any non-implementation tasks, contact Product Support.
After the migration, Name and Description will still be available for migrated FOs,to expose language-independent
texts. In addition, the two navigation attributes will also be available. However, they will not be really linked to
FOTranslation, but will always return an empty value. So the language-dependent texts will be integrated as
additional attributes into the migrated FO Odata entity (for example FOJobFunction, FOPayGroup) in the standard
MDF way.
If you are not using FOTranslation for migrated FOs, de-select the FOTranslation navigation in Boomi. In case you
are using FOTranslation for migrated FOs, you need to adapt the UI.
The element type mapping shows the mapping between HRIS field names and field names for the GOs. The steps
to view the element type mapping for a migrated Foundation Object are described here
Note
Not everyone can view the element Element Type Mapping. Grant the relevant permissions in User
Permissions Miscellaneous Permissions as follows:
9.14.2 Associations
Let’s say, in the object definition you have an association defined. The association is called cust_toLegalEntity and
the definition is called Legal Entity. In the Element Type map (under Element Association Map for EC Migration
section), you have the association name cust_toLegalEntity, which is mapped to HRIS destination entity company.
This association is handled in the same way as an association for an FO is defined in the Corporate Data Model.
This means that you have the fields companyFlx and companyFlxNav in OData object definition. These fields will be
available only if the association defined in the object definition is added to the Association Element Type map.
For GO associations, if the field is not in the association mapping, you will only have the field that has the same
name as the association, for example, cust_toLegalEntity. This field can be queried and upserted. If this field is
added to the element association map, you will have the fields companyFlxNav and companyFlx for query and
upsert respectively.
If you want to add an association or a field, and want the field to behave in the same way as before the migration,
you must manually adjust the mapping objects.
Country/region-specific fields are fields of an object that are only relevant for specific countries or regions. For
example, for legal entities in the US, you have to specify a Federal Reserve Bank ID, which is not relevant for legal
entities in other countries or regions.
The only migrated FOs, which have country/region-specific fields, are Legal Entity (company) and Job
Classification (jobCode).
In OData (as well as the MDF object model), these fields are not stored directly in the main entity (FO Company or
FO Job Code). Instead, they are part of additional country/region-specific entities (see the sections
LegalEntity<Country/region> and JobClassification<Country/region>). These country/region-specific entities can
be reached from the main entity using navigation attributes.
Points to note:
● For FOCompany, the navigation attributes for the delivered country or region specializations follow the naming
conventions toLegalEntity<Country/region> (see the section FOCompany).
● For FOJobCode, there is an intermediate entity JobClassificationCountry (see section
JobClassificationCountry).
These navigation attributes and entity names differ from the legacy names. To ensure backward compatibility, you
can activate the old behavior for individual countries or regions by maintaining the localization map in the element
type map.
The following is an example of the element type map of Legal Entity (company):
Here, the localization map is maintained for two countries (USA and Germany). The effect of this is that, for these
two countries, additional navigation attributes and target entities will be available in addition to the standard
navigation attributes and entities described above. For USA, the effects are as follows:
● In addition to the standard entity LegalEntityUSA, there will be the backward-compatible entity
FOLegalEntityLocalUSA. This means that the MDF object LegalEntityUSA has two different OData
representations.
● In addition to the standard navigation attribute toLegalEntityUSA (with a target LegalEntityUSA), there is a
navigation attribute localNavUSA (with a target FOLegalEntityLocalUSA).
Similarly, if you maintain the localization map for USA in the element type map of Job Classification (jobCode), the
effects are as follows:
● In addition to the standard entity JobClassificationUSA, there will be the backward-compatible entity
FOJobCodeLocalUSA. These are different representations of the same MDF object JobClassificationUSA.
● In addition to the standard navigation chain toJobClassificationCountry/toJobClassificationUSA
(with target JobClassificationUSA), there is a shortcut navigation attribute called localNavUSA (with target
FOJobClassLocalUSA).
If you do not maintain an element type map, you have the following localization mapping that is used (as a fall
back):
GO Association Country/Region
toLegalEntityARG ARG
toLegalEntityDEU DEU
toLegalEntityESP ESP
toLegalEntityFRA FRA
toLegalEntityUSA USA
GO Association Country/Region
toJobClassificationCountry.toJobClassificationAUS AUS
toJobClassificationCountry.toJobClassificationBRA BRA
toJobClassificationCountry.toJobClassificationCAN CAN
toJobClassificationCountry.toJobClassificationFRA FRA
toJobClassificationCountry.toJobClassificationGBR GBR
toJobClassificationCountry.toJobClassificationITA ITA
toJobClassificationCountry.toJobClassificationUSA USA
To add country/region-specific fields for a new country or region, refer to the section Adding Country/region-
Specific Fields for a New Country or Region.
If you need the backward-compatible OData representation for a country added in this way, you must do the
following:
● Maintain an entry in the localization map of the host element type map.
For this, you must add the association name for the new country or region and the ISO country code for it.
● Create an element type map for the new MDF object that you have created.
If you want to map the new country/region-specific fields to the legacy field names (for example,
genericString1), you must maintain an element field map.
In the example for India (as in section Adding Country/region-Specific Fields for a New Country or Region), you must
add the following:
Adding Country/Region-Specific Fields for a New Country or Region (For Legal Entity) [page 251]
Adding Country/Region-Specific Fields for a New Country or Region (For Job Classification) [page 256]
Assume that you want to add country/region-specific fields for a new country or region, let us take India for
example. You need to follow these steps:
Related Information
Adding Country/Region-Specific Fields for a New Country or Region (For Job Classification) [page 256]
Procedure
To assign the new country or region object to Legal Entity, the steps are as follows:
Procedure
Assume that you want to add country/region-specific fields for a new country or region, let us take Spain for
example. You need to follow these steps:
Adding Country/Region-Specific Fields for a New Country or Region (For Legal Entity) [page 251]
Procedure
To assign the new country or region object to JobClassificationCountry, the steps are as follows:
Procedure
Let's take an example. The FO Business Unit is associated to Legal Entity and you have an association to company
1. You do an upsert by specifying the start date and external code of the business unit. In this case, either the
business unit is changed or a new one is created. Additionally, you list down the field that you want to change, for
example, companyFlx for company 2 and a pipe-separated list of the association target for company 3. Now the
existing association to company 1 is replaced and you have an association to company 2.
However, if you do an upsert through the MDF field cust_toLegalEntity, and specify company 1 and company 2, you
will have three associations. The upsert through the MDF field will only add or merge the existing ones.
Hence for example, Position will behave in the MDF way (merge behavior), and Job Classification, which is not on
MDF, will behave in the other manner (replacement).
9.14.5 CurrencyExchangeRate
This entity contains information about currency conversions based on the MDF object Currency Exchange Rate.
The source currency is 1 unit of USD and the target currency is 1 unit of CAD. The exchange rate shows how much
of the target currency (CAD) is needed to purchase one unit of the source currency (USD). Therefore, if the
exchange rate is 1.0950, it costs 1.0950 Canadian dollars to purchase 1 U.S. dollar.
The currency exchange rate type DEFAULT corresponds to the Compensation legacy currency conversion table
ECT_CONV_TABLE. The currency exchange rate type is defined as a picklist.
Object Information
MDF Object:CurrencyExchangeRate
Business Keys:sourceCurrency,targetCurrency,currencyExchangeRateType
Required
Fields:sourceCurrency,targetCurrency,effectiveStartDate,exchangeRate,currencyExchang
eRateType
Full Purge:Yes
Incremental Purge:Yes
Effective-date:true
Supported Operations
Operation Description
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Request
Operation Query
URI https://<API-Server>/odata/v2/
CurrencyExchangeRate?$format=json&
$select=externalCode&$top=3
Response
{
"d": {
"results": [{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
CurrencyExchangeRate(effectiveStartDate=datetime'1900-01-01T00:00:00',externalCode='
DEFAULT-ARS-MYR')",
"type": "SFOData.CurrencyExchangeRate"
},
"externalCode": "DEFAULT-ARS-MYR"
}, {
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
CurrencyExchangeRate(effectiveStartDate=datetime'1900-01-01T00:00:00',externalCode='
DEFAULT-HKD-EUR')",
"type": "SFOData.CurrencyExchangeRate"
},
"externalCode": "DEFAULT-HKD-EUR"
}, {
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
CurrencyExchangeRate(effectiveStartDate=datetime'1900-01-01T00:00:00',externalCode='
DEFAULT-HKD-SGD')",
Request
Operation Query
URI https://<API-Server>/odata/v2/
CurrencyExchangeRate(externalCode='DEFAULT
-USD-
EUR',effectiveStartDate=datetime'1900-01-0
1T00:00:00')?$format=json
Response
{
"d": {
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
CurrencyExchangeRate(effectiveStartDate=datetime'1900-01-01T00:00:00',externalCode='
DEFAULT-USD-EUR')",
"type": "SFOData.CurrencyExchangeRate"
},
"effectiveStartDate": "\/Date(-2208988800000)\/",
"externalCode": "DEFAULT-USD-EUR",
"exchangeRate": "1.125",
"targetCurrency": "EUR",
"effectiveStatus": "A",
"sourceCurrency": "USD",
"currencyExchangeRateType": "DEFAULT",
"sourceCurrencyNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
CurrencyExchangeRate(effectiveStartDate=datetime'1900-01-01T00:00:00',externalCode='
DEFAULT-USD-EUR')/sourceCurrencyNav"
}
},
"targetCurrencyNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
CurrencyExchangeRate(effectiveStartDate=datetime'1900-01-01T00:00:00',externalCode='
DEFAULT-USD-EUR')/targetCurrencyNav"
}
},
"currencyExchangeRateTypeNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
CurrencyExchangeRate(effectiveStartDate=datetime'1900-01-01T00:00:00',externalCode='
DEFAULT-USD-EUR')/currencyExchangeRateTypeNav"
}
},
"effectiveStatusNav": {
"__deferred": {
Request
Operation Upsert
URI https://<API-Server>/odata/v2/upsert
Payload
{
"__metadata": {
"uri": "https://<API-
Server>/odata/v2/
CurrencyExchangeRate(effectiveStartDate=
datetime'1900-01-01T00:00:00',externalCo
de='DEFAULT-USD-EUR')",
"type":
"SFOData.CurrencyExchangeRate"
},
"exchangeRate": "1.125",
"targetCurrency": "EUR",
"effectiveStatus": "A",
"sourceCurrency": "USD",
"currencyExchangeRateType":
"DEFAULT"
}
Response
{
"d": [
{
"key": "CurrencyExchangeRate/
effectiveStartDate=1900-01-01T00:00:00.000-05:00,CurrencyExchangeRate/
externalCode=DEFAULT-ZAR-ARS",
"status": "OK",
"editStatus": "UPSERTED",
"message": null,
"index": 0,
"httpCode": 200,
"inlineResults": null
}
]
}
Request
Operation Delete
URI https://<API-Server>/odata/v2/
CurrencyExchangeRate(effectiveStartDate=da
tetime'1900-01-01T00:00:00',externalCode='
DEFAULT-USD-EUR')
Error Messages
The table below lists the error messages generated when using this API:
WORKSTRUCTURE_VALIDATION_IDENTICAL_SOURCE_TAR Exchange rate with the same source currency and target
GET_CURRENCIES_NOT_ALLOWED
currency is not allowed.
WORKSTRUCTURE_VALIDATION_REVERSE_RATE_OF_CURR A reverse exchange rate with source currency USD and target
ENCY_PAIR_ALREADY_EXISTS
currency EUR of currency exchange rate type DEFAULT
already exists.
Related Information
Object Information
MDF Object:BusinessUnit
Business Keys: externalCode + startDate
Effective-date:true
Supported Operations
Operation Description
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
Request
Operation Query
URI https://<API-Server>/odata/v2/FOBusinessUnit?
$filter=externalCode eq 'RETAIL'&$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
FOBusinessUnit(externalCode='RETAIL',startDate=datetime'1900-01-01T00:00:00')",
"type": "SFOData.FOBusinessUnit"
},
"externalCode": "RETAIL",
"startDate": "/Date(-2208988800000)/",
"description_ko_KR": null,
"lastModifiedDateTime": "/Date(1508375121000+0000)/",
"name_localized": "Retail",
"description_th_TH": null,
"endDate": "/Date(253402214400000)/",
"entityUUID": "57A51193D2B440C9B94A62FD67712362",
"name_ko_KR": "소매",
"createdDateTime": "/Date(1487286780000+0000)/",
"name_th_TH": null,
"description_ar_SA": null,
"description_pt_BR": null,
"description_es_ES": null,
"name_pt_BR": "Varejo",
"description_nl_NL": null,
"name_nl_NL": null,
"description_defaultValue": null,
"name_ar_SA": null,
"name_de_DE": "Einzelhandel",
"name_zh_TW": "零售",
"name": "Retail",
"name_es_ES": "Comercio",
"description_en_US": null,
"description_en_DEBUG": null,
"description_ru_RU": null,
"status": "A",
"name_ru_RU": "Розничная торговля",
"description_ja_JP": null,
"description_fr_FR": null,
"name_pt_PT": null,
"description": null,
"description_de_DE": null,
"name_fr_FR": "Commerce de détail",
"name_en_DEBUG": null,
"name_ja_JP": "小売",
"createdOn": "/Date(1487268780000)/",
"headOfUnit": null,
"name_en_US": "Retail",
"description_iw_IL": null,
"description_zh_TW": null,
"name_zh_CN": "零售",
Request
Operation Upsert
URI https://<API-Server>/odata/v2/upsert
Payload
{
"__metadata": {
"uri":"FOBusinessUnit(startDate=datetime'2014-09-11T00:0
0:00',externalCode='20000')" },
"status":"A" }
Response
{
"d": [
{
"key": "FOBusinessUnit/externalCode=20000,FOBusinessUnit/
startDate=2014-09-11T00:00:00.000-05:00",
"status": "OK",
"editStatus": "UPSERTED",
"message": null,
"index": 0,
"httpCode": 200,
"inlineResults": null
}
]
}
Error Codes
The table below lists different error codes generated when using this API.
AFFECTED_EXTERNAL_CODE_ERROR This record cannot be saved since one or more records of this
Code have reported errors.
Related Information
9.14.7 FOCostCenter
Object Information
Supported Operations
Operation Description
Replace You can replace an existing cost center record with a new re
cord.
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
entityOID This property stores the One Domain Model (ODM) object ID
that is used in master data integration.
Use Case 1: Query a Cost Center Record by External Code and Start Date
Request
Operation Query
URI https://<API-Server>/odata/v2/
FOCostCenter?$filter=externalCode eq
'aaaa' and startDate eq '/
Date(1398124800000)/'&$format=JSON
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
FOCostCenter(externalCode='aaaa',startDate=datetime'2014-04-22T00:00:00')"
},
"startDate": "\/Date(1398124800000)\/",
"externalCode": "aaaa",
"costcenterManager": null,
"description_de_DE": null,
"endDate": "\/Date(253402214400000)\/",
"lastModifiedDateTime": "\/Date(1398306271000+0000)\/",
"name_ja_JP": null,
"businessUnitFlx": null,
"description": null,
"name_defaultValue": "aaaa",
"name_en_US": "aaaa",
"glStatementCode": "SA49163",
"description_en_US": null,
"status": "A",
...
...
"customString1Nav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
FOCostCenter(externalCode='aaaa',startDate=datetime'2014-04-22T00:00:00')/
customString1Nav"
}
Note
Any custom navigations and fields added after migration without any mapping maintained by the customer will
be returned as cust_<type><number>. For example, cust_string1Nav. For existing ones with mapping, the field
and navigation will be returned as–is. For example, customString1.
Operation Upsert
URI https://<API-Server>/odata/v2/upsert?
$format=json
Payload
{
"__metadata":{
"uri":"FOCostCenter(startDate=datetime'2
014-09-11T00:00:00',externalCode='20000'
)"
},
"status":"A"
}
Response
{
"d": [
{
"key": "FOCostCenter/externalCode=20000,FOCostCenter/
startDate=2014-09-11T00:00:00.000Z",
"status": "OK",
"editStatus": "UPSERTED",
"message": null,
"index": 0,
"httpCode": 200,
"inlineResults": null
}
]
}
Error Codes
The table below lists different error codes generated when using this API.
AFFECTED_EXTERNAL_CODE_ERROR This record cannot be saved since one or more records of this
Code have reported errors.
Related Information
Object Information
MDF Object:LegalEntity
Business Keys: externalCode + startDate
Effective-date:true
Supported Operations
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
entityOID This property stores the One Domain Model (ODM) object ID
that is used in master data integration.
Request
Operation Query
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
FOCompany(externalCode='1000',startDate=datetime'1900-01-01T00:00:00')",
"type": "SFOData.FOCompany"
},
"externalCode": "1000",
"startDate": "/Date(-2208988800000)/",
"country": "DEU",
"description_ko_KR": "BestRun 독일",
"lastModifiedDateTime": "/Date(1611298654000+0000)/",
"name_localized": "BestRun Germany",
"description_th_TH": null,
"endDate": "/Date(253402214400000)/",
"name_ko_KR": "BestRun 독일",
"createdDateTime": "/Date(1443727091000+0000)/",
"name_th_TH": null,
"description_ar_SA": null,
"description_pt_BR": "BestRun Alemanha",
"description_es_ES": "BestRun Alemania",
"name_pt_BR": "BestRun Alemanha",
"description_nl_NL": null,
"name_nl_NL": null,
"standardHours": "40",
"description_defaultValue": "BestRun Germany",
"name_ar_SA": null,
"name_de_DE": "BestRun Deutschland",
"name_zh_TW": "BestRun 德國",
"name": "BestRun Germany",
"name_es_ES": "BestRun Alemania",
"description_en_US": "BestRun Germany",
"description_en_DEBUG": null,
"description_ru_RU": "BestRun Германия",
"status": "I",
"name_ru_RU": "BestRun Германия",
"description_ja_JP": "BestRun ドイツ",
"description_fr_FR": "BestRun Allemagne",
"name_pt_PT": null,
"description": "BestRun Germany",
"description_de_DE": "BestRun Deutschland",
"name_fr_FR": "BestRun Allemagne",
"name_en_DEBUG": null,
"name_ja_JP": "BestRun ドイツ",
"createdOn": "/Date(1443712691000)/",
"name_en_US": "BestRun Germany",
"description_iw_IL": null,
"currency": "EUR",
"description_zh_TW": "BestRun 德國",
"name_zh_CN": "BestRun 德国",
"name_defaultValue": "BestRun Germany",
"description_en_GB": "BestRun Germany",
"lastModifiedBy": "sfadmin",
"defaultPayGroup": null,
"name_en_GB": "BestRun Germany",
"name_iw_IL": null,
"lastModifiedOn": "/Date(1611280654000)/",
"description_zh_CN": "BestRun 德国",
Request
Operation Upsert
URI https://<API-Server>/odata/v2/upsert?
$format=json
Payload
{
"__metadata":{
"uri":"FOCompany(startDate=datetime'2014
-09-11T00:00:00',externalCode='20000')"
},
"status":"A"
}
Response
{
"d": [
{
"key": "FOCompany/externalCode=20000,FOCompany/
startDate=2014-09-11T00:00:00.000-05:00",
"status": "OK",
"editStatus": "UPSERTED",
"message": null,
"index": 0,
"httpCode": 200,
"inlineResults": null
}
]
}
The table below lists different error codes generated when using this API.
AFFECTED_EXTERNAL_CODE_ERROR This record cannot be saved since one or more records of this
Code have reported errors.
Related Information
9.14.9 FODepartment
Object Information
MDF Object:Department
Business Keys: externalCode + startDate
Effective-date:true
Supported Operations
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Request
Operation Query
URI https://<API-Server>/odata/v2/
FODepartment?$format=json&
$filter=externalCode eq '50150016'
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
FODepartment(externalCode='50150016',startDate=datetime'1900-01-01T00:00:00')",
"type": "SFOData.FODepartment"
},
"externalCode": "50150016",
"startDate": "/Date(-2208988800000)/",
"parent": "50150011",
"description_ko_KR": "자산 관리 US",
"lastModifiedDateTime": "/Date(1508375230000+0000)/",
"name_localized": "Asset Management US",
"description_th_TH": null,
"endDate": "/Date(253402214400000)/",
"entityUUID": "F7F2CC007EAB4C2A938F6506DCDF8C17",
"name_ko_KR": "자산 관리 US",
"createdDateTime": "/Date(1443996398000+0000)/",
"name_th_TH": null,
"description_ar_SA": null,
"description_pt_BR": "Gestão de ativos - US",
"description_es_ES": "Gestión de activos fijos (EE. UU.)",
"name_pt_BR": "Gestão de ativos - US",
"description_nl_NL": null,
"name_nl_NL": null,
"costCenter": "US10_RDGEN",
"description_defaultValue": "Asset Management US",
"name_ar_SA": null,
"name_de_DE": "Anlagenmanagement (US)",
"name_zh_TW": "資產管理 - 美國",
"name": "Asset Management US",
"name_es_ES": "Gestión de activos fijos (EE....",
"description_en_US": "Asset Management US",
"description_en_DEBUG": null,
"description_ru_RU": "Управление активами (США)",
"status": "A",
"name_ru_RU": "Управление активами (США)",
"description_ja_JP": "資産管理 (US)",
"description_fr_FR": "Gestion des ressources US",
Request
Operation Upsert
URI https://<API-Server>/odata/v2/upsert?&
$format=json
"uri":"Department(startDate=datetime'201
4-09-11T00:00:00',externalCode='20000')"
},
"status":"A"
}
Response
{
"d": [
{
"key": "FODepartment/externalCode=20000,FODepartment/
startDate=2014-09-11T00:00:00.000-05:00",
"status": "OK",
"editStatus": "UPSERTED",
"message": null,
"index": 0,
"httpCode": 200,
"inlineResults": null
}
]
}
Error Codes
The table below lists different error codes generated when using this API.
AFFECTED_EXTERNAL_CODE_ERROR This record cannot be saved since one or more records of this
Code have reported errors.
Related Information
Object Information
MDF Object:Division
Business Keys: externalCode + startDate
Effective-date:true
Supported Operations
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
Request
Operation Query
URI https://<API-Server>/odata/v2/FODivision?
$format=json&$filter=externalCode eq
'INSIDE_SALES'
Response
Request
Operation Upsert
URI https://<API-Server>/odata/v2/upsert?&
$format=json
Payload
{
"__metadata":{
"uri":"FODivision(startDate=datetime'201
4-09-11T00:00:00',externalCode='20000')"
},
"status":"A"
}
Response
{
"d": [
{
"key": "FODivision/externalCode=20000,FODivision/
startDate=2014-09-11T00:00:00.000-05:00",
"status": "OK",
"editStatus": "UPSERTED",
"message": null,
"index": 0,
"httpCode": 200,
"inlineResults": null
}
]
}
Error Codes
The table below lists different error codes generated when using this API.
AFFECTED_EXTERNAL_CODE_ERROR This record cannot be saved since one or more records of this
Code have reported errors.
9.14.11 FOLegalEntityLocal<Country/Region>
This chapter covers several entities containing country/region-specific fields of legal entities. The country or region
identifier in the entity name is the country/region ISO Code. For example, for Germany, the name of this entity is
FOLegalEntityLocalDEU.
These entities are made available for backward-compatibility reasons only. For a particular country or region, the
corresponding entity exists if the following pre-requisites are fulfilled:
● There is an MDF object modeled that holds the country/region-specific legal entity fields for this country or
region.
● The API Visibility of the entity is different from Not Visible.
● The element type map contains information, which indicates that the backward-compatible entity should be
offered for this country or region.
By default, five such country/region-specific entities are pre-shipped. These are FOLegalEntityLocalARG,
FOLegalEntityLocalDEU, FOLegalEntityLocalFRA, FOLegalEntityLocalESP, and FOLegalEntityLocalUSA.
Object Information
MDF Object:LegalEntity<Country/Region>
Business Keys: externalCode + startDate + country
Effective-date:true
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
The country/region-specific properties for the five pre-shipped countries are listed below.
genericString1 cuitCode
For Germany:
genericString1 taxUnit
genericString2 socialAccidentInsurance
genericString3 socialAccidentInsuranceRegistrationNumber
For Spain:
genericString1 certificadoDeIdentificacionFiscal
For France:
genericNumber1 nafCode
genericNumber2 sirenCode
For USA:
genericString1 federalReserveBankID
genericString2 fedReserveBankDistrict
genericString3 employerID
genericString4 eeoCompanyCode
Request
Operation Query
URI https://<API-Server>/odata/v2/
FOLegalEntityLocalCAN?$format=json&
$select=externalCode&$top=3
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
FOLegalEntityLocalCAN(country='CAN',externalCode='comTest2',startDate=datetime'2013-
12-02T00:00:00')",
"type": "SFOData.FOLegalEntityLocalCAN"
},
"externalCode": "comTest2"
},
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
FOLegalEntityLocalCAN(country='CAN',externalCode='SF2',startDate=datetime'2014-05-07
T00:00:00')",
"type": "SFOData.FOLegalEntityLocalCAN"
},
"externalCode": "SF2"
},
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
FOLegalEntityLocalCAN(country='CAN',externalCode='ADOBEIND',startDate=datetime'2015-
02-11T00:00:00')",
"type": "SFOData.FOLegalEntityLocalCAN"
},
"externalCode": "ADOBEIND"
}
]
}
}
Error Codes
The table below lists different error codes generated when using this API.
AFFECTED_EXTERNAL_CODE_ERROR This record cannot be saved since one or more records of this
code have reported errors.
Related Information
9.14.11.1 LegalEntity<Country/Region>
This topic covers several entities containing country/region-specific fields of legal entities. The country or region
identifier in the entity name is the country/region ISO Code. For example, for USA, the name of this entity will be
LegalEntityUSA. Five such country/region-specific entities are pre-shipped. These are LegalEntityESP,
LegalEntityARG, LegalEntityUSA, LegalEntityDEU, and LegalEntityFRA.
Object information
MDF Object:LegalEntity<Country/Region>
Business Keys:LegalEntity_effectiveStartDate, LegalEntity_externalCode, externalCode
Effective-date:true
The country/region-specific properties for the five pre-shipped countries are listed below.
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
For Argentina:
cuitCode
For Germany:
taxUnit
socialAccidentInsurance
socialAccidentInsuranceRegistrationNumber
For Spain:
certificadoDeIdentificacionFiscal
For France:
nafCode
sirenCode
For USA:
legalEntityType
federalReserveBankID
fedReserveBankDistrict
employerID
eeoCompanyCode
Navigation Properties
For USA
legalEntityTypeNav PickListValueV2
cust_string6Nav PickListValueV2
cust_string7Nav PickListValueV2
cust_string8Nav PickListValueV2
LegalEntityUSAPermissionsNav LegalEntityUSAPermissions
cust_employerIDNav PickListValueV2
cust_fedReserveBankDistrictNav PickListValueV2
For Germany
cust_string6Nav PickListValueV2
cust_string7Nav PickListValueV2
cust_string8Nav PickListValueV2
LegalEntityDEUPermissionsNav LegalEntityDEUPermissions
For Argentina
cust_string6Nav PickListValueV2
cust_string7Nav PickListValueV2
cust_string8Nav PickListValueV2
LegalEntityARGPermissionsNav LegalEntityARGPermissions
For Spain
cust_string6Nav PickListValueV2
cust_string7Nav PickListValueV2
cust_string8Nav PickListValueV2
LegalEntityESPPermissionsNav LegalEntityESPPermissions
For France
cust_string6Nav PickListValueV2
cust_string7Nav PickListValueV2
cust_string8Nav PickListValueV2
LegalEntityFRAPermissionsNav LegalEntityFRAPermissions
Operation Query
URI https://<API-Server>/odata/v2/LegalEntityUSA?$format=json
Response
Sample Code
{
"d": {
"results": [{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
LegalEntityUSA(LegalEntity_effectiveStartDate=datetime'1990-01-01T00:00:00',Legal
Entity_externalCode='ACE_USA',externalCode=6596L)",
"type": "SFOData.LegalEntityUSA"
},
"LegalEntity_externalCode": "ACE_USA",
"LegalEntity_effectiveStartDate": "\/Date(631152000000)\/",
"externalCode": "6596",
"mdfSystemEffectiveEndDate": "\/Date(253402214400000)\/",
"mdfSystemObjectType": "LegalEntityUSA",
"mdfSystemVersionId": null,
"lastModifiedDateTime": "\/Date(1341142694000+0000)\/",
"mdfSystemTransactionSequence": "1",
"cust_string1": null,
"mdfSystemRecordId": "159A8AB02B040C6EE050007F020046AE",
"mdfSystemEntityId": "159A8AB02B050C6EE050007F020046AE",
"mdfSystemStatus": "A",
"federalReserveBankID": "11-1231/2721",
"lastModifiedDateWithTZ": "\/Date(1341142694000+0000)\/",
"createdDate": "\/Date(1341171494000)\/",
"mdfSystemRecordStatus": "N",
"employerID": "44-98765",
"createdBy": "admin",
"lastModifiedBy": "admin",
"createdDateTime": "\/Date(1341142694000+0000)\/",
"lastModifiedDate": "\/Date(1341171494000)\/",
"mdfSystemEffectiveStartDate": "\/Date(-2208988800000)\/",
"fedReserveBankDistrict": "San Francisco",
"legalEntityType": "C",
"eeoCompanyCode": "123145-9",
"legalEntityTypeNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
LegalEntityUSA(LegalEntity_effectiveStartDate=datetime'1990-01-01T00:00:00',Legal
Entity_externalCode='ACE_USA',externalCode=6596L)/legalEntityTypeNav"
}
},
"cust_string1Nav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
LegalEntityUSA(LegalEntity_effectiveStartDate=datetime'1990-01-01T00:00:00',Legal
Entity_externalCode='ACE_USA',externalCode=6596L)/cust_string1Nav"
}
},
"mdfSystemRecordStatusNav": {
"__deferred": {
Operation Upsert
Request https://<API-Server>/odata/v2/upsert
Payload {
"__metadata": {
"uri":
"LegalEntityUSA(LegalEntity_effectiveStartDate=datetime'1990-01-01T00:
00:00',LegalEntity_externalCode='ACE_USA',externalCode=6596L)",
"type": "SFOData.LegalEntityUSA"
},
"LegalEntity_externalCode": "ACE_USA",
"LegalEntity_effectiveStartDate": "/Date(631152000000)/",
"externalCode": "6596"
}
Response
Sample Code
The table below lists different error codes generated when using this API.
AFFECTED_EXTERNAL_CODE_ERROR This record cannot be saved since one or more records of this
Code have reported errors.
9.14.12 FOJobClassLocal<Country/Region>
Describes several entities containing country and region-specific fields of job classifications. The country identifier
in the entity name is the country/region ISO Code. For example, for Brazil, the name of this entity will be
FOJobClassLocalBRA.
These entities are made available for backward-compatibility reasons only. For a particular country or region, the
corresponding entity exists if the following prerequisites are fulfilled:
● There is an MDF object modeled that holds the country/region-specific job classification fields for this country
or region.
● The API Visibility of the entity is different from Not Visible.
● The element type map contains information, which indicates that the backward-compatible entity should be
offered for this country or region.
By default, seven such country-specific entities are pre-shipped. These are FOJobClassLocalAUS,
FOJobClassLocalBRA, FOJobClassLocalCAN, FOJobClassLocalGBR, FOJobClassLocalUSA, FOJobClassLocalITA,
and FOJobClassLocalFRA. For more information, see the Country/Region-Specific Fields section.
Object Information
Supported Operations
Query
The country/region-specific properties for the seven pre-shipped countries are listed below.
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
For Australia:
genericString1 ascoCode
genericNumber1 occupationalCode
For Canada:
genericString1 occupationalClassification
For France:
genericString1 inseeCode
genericNumber2 employeeCategory
genericNumber1 occupationalCode
For USA:
genericString1 localJobTitle
For Brazil:
For Italy:
genericNumber1 inailCode
Navigation Properties
For USA
genericNumber1Nav PicklistOption
genericNumber2Nav PicklistOption
genericNumber3Nav PicklistOption
genericNumber4Nav PicklistOption
genericNumber5Nav PicklistOption
genericNumber6Nav PicklistOption
eeo1JobCategoryNav PickListValueV2
eeo4JobCategoryNav PickListValueV2
eeo5JobCategoryNav PickListValueV2
eeo6JobCategoryNav PickListValueV2
eeoJobGroupNav PickListValueV2
flsaStatusUSANav PickListValueV2
For Brazil
genericString1Nav PicklistOption
occupationalCodeNav PickListValueV2
Use Case: Get the External Code of Job Classes for Canada
Request
Operation Query
URI https://<API-Server>/odata/v2/
FOJobClassLocalLocalCAN?$format=json&
$select=externalCode&$top=3
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
FOJobClassLocalCAN(country='CAN',externalCode='PS',startDate=datetime'2013-10-17T00:
00:00')",
"type": "SFOData.FOJobClassLocalCAN"
},
"externalCode": "PS"
},
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
FOJobClassLocalCAN(country='CAN',externalCode='ACC',startDate=datetime'2015-09-03T00
:00:00')",
"type": "SFOData.FOJobClassLocalCAN"
},
"externalCode": "ACC"
},
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
FOJobClassLocalCAN(country='CAN',externalCode='JC1',startDate=datetime'2015-08-25T00
:00:00')",
"type": "SFOData.FOJobClassLocalCAN"
},
"externalCode": "JC1"
Error Codes
The table below lists different error codes generated when using this API.
AFFECTED_EXTERNAL_CODE_ERROR This record cannot be saved since one or more records of this
Code have reported errors.
Related Information
9.14.13 JobClassificationCountry
Object information
MDF Object:JobClassificationCountry
Business Keys:JobClassification_effectiveStartDate, JobClassification_externalCode,
country
Effective-date:true
Supported Operations
Request
Operation Query
URI https://<API-Server>/odata/v2/JobClassificationCountry?$format=json
Response
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
JobClassificationCountry(JobClassification_effectiveStartDate=datetime'1990-01-01T00
:00:00',JobClassification_externalCode='EXE-CEO',country='USA')",
"type": "SFOData.JobClassificationCountry"
},
"JobClassification_effectiveStartDate": "\/Date(631152000000)\/",
"JobClassification_externalCode": "EXE-CEO",
"country": "USA",
"mdfSystemEffectiveEndDate": "\/Date(253402214400000)\/",
"mdfSystemObjectType": "JobClassificationCountry",
"mdfSystemVersionId": null,
"lastModifiedDateTime": "\/Date(1447406820000+0000)\/",
"effectiveStatus": "A",
"mdfSystemTransactionSequence": "1",
"mdfSystemRecordId": "4FCA7B68851E41C1936B2AE1D5E25E4C",
"mdfSystemEntityId": "D5D533446DEA400FBC3388F5DDBA5C14",
"lastModifiedDateWithTZ": "\/Date(1447406820000+0000)\/",
"createdDate": "\/Date(1447435620000)\/",
"mdfSystemRecordStatus": "N",
"createdBy": "admin",
"lastModifiedBy": "admin",
"createdDateTime": "\/Date(1447406820000+0000)\/",
"lastModifiedDate": "\/Date(1447435620000)\/",
"mdfSystemEffectiveStartDate": "\/Date(-2208988800000)\/",
"toJobClassificationAUS": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
JobClassificationCountry(JobClassification_effectiveStartDate=datetime'1990-01-01T00
:00:00',JobClassification_externalCode='EXE-CEO',country='USA')/
toJobClassificationAUS"
}
},
"toJobClassificationGBR": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
JobClassificationCountry(JobClassification_effectiveStartDate=datetime'1990-01-01T00
:00:00',JobClassification_externalCode='EXE-CEO',country='USA')/
toJobClassificationGBR"
}
},
"countryNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
JobClassificationCountry(JobClassification_effectiveStartDate=datetime'1990-01-01T00
:00:00',JobClassification_externalCode='EXE-CEO',country='USA')/countryNav"
}
},
"toJobClassificationFRA": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
JobClassificationCountry(JobClassification_effectiveStartDate=datetime'1990-01-01T00
Request
Operation Upsert
URI https://<API-Server>/odata/v2/upsert?
$format=json
Payload
{
"__metadata": {
"uri":
"JobClassificationCountry(JobClassificat
ion_effectiveStartDate=datetime'1990-01-
01T00:00:00',JobClassification_externalC
ode='EXE-CEO',country='USA')",
"type":
"SFOData.JobClassificationCountry"
},
"JobClassification_effectiveStartDate":
"/Date(631152000000)/",
"JobClassification_externalCode":
"EXE-CEO",
"country": "USA"
}
Response
{
"d": [
{
"key": "JobClassificationCountry/country='USA',JobClassificationCountry/
JobClassificationCountry_externalCode='EXE_CEO',JobClassificationCountry/
JobClassification_effectiveStartDate=1990-01-01T00:00:00.000-05:00",
"status": "OK",
"editStatus": "UPSERTED",
"message": null,
"index": 0,
"httpCode": 200,
"inlineResults": null
}
]
}
Error Codes
The table below lists different error codes generated when using this API.
AFFECTED_EXTERNAL_CODE_ERROR This record cannot be saved since one or more records of this
Code have reported errors.
Related Information
9.14.14 FOJobFunction
Object Information
MDF Object:JobFunction
Business Keys: externalCode + startDate
Effective-date:true
Supported Operations
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
Request
Operation Query
URI https://<API-Server>/odata/v2/
FOJobFunction?$format=json&
$filter=externalCode eq '50070898'
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
FOJobFunction(externalCode='50070898',startDate=datetime'1900-01-01T00:00:00')",
"type": "SFOData.FOJobFunction"
},
"externalCode": "50070898",
"startDate": "/Date(-2208988800000)/",
"description_ko_KR": "고객 관리자(영업)",
"lastModifiedDateTime": "/Date(1440392298000+0000)/",
"name_localized": "Account Managers (Sales)",
"description_th_TH": null,
"endDate": "/Date(253402214400000)/",
"name_ko_KR": "고객 관리자(영업)",
"createdDateTime": "/Date(1440392298000+0000)/",
"name_th_TH": null,
"description_ar_SA": null,
"type": "3578",
"description_pt_BR": "Gerentes de conta (Vendas)",
"description_es_ES": "Supervisores de cuentas (Ventas)",
"name_pt_BR": "Gerentes de conta (Vendas)",
"description_nl_NL": null,
"parentFunctionCode": null,
"name_nl_NL": null,
"description_defaultValue": "Account Managers (Sales)",
"name_ar_SA": null,
"name_de_DE": "Kundenbetreuer (Vertrieb)",
"name_zh_TW": null,
"name": "Account Managers (Sales)",
"name_es_ES": "Supervisores de cuentas (Ventas)",
"description_en_US": "Account Managers (Sales)",
"description_en_DEBUG": null,
"description_ru_RU": "Менеджеры по работе с клиентами (сбыт)",
"status": "A",
"name_ru_RU": "по работе с клиентами (сбыт)...",
"description_ja_JP": "アカウントマネージャー (販売)",
"description_fr_FR": "Gestionnaires de comptes (ventes)",
"name_pt_PT": null,
"description": "Account Managers (Sales)",
"description_de_DE": "Kundenbetreuer (Vertrieb)",
"name_fr_FR": "ionnaires de comptes (ventes)...",
"name_en_DEBUG": null,
"name_ja_JP": "アカウントマネージャー (販売)",
"createdOn": "/Date(1440377898000)/",
"name_en_US": "Account Managers (Sales)",
"description_iw_IL": null,
"description_zh_TW": null,
"name_zh_CN": "客户经理(销售)",
Request
Operation Upsert
URI https://<API-Server>/odata/v2/upsert?&
$format=json
Payload
{
"__metadata":{
"uri":"FOJobFunction(startDate=datetime'
2014-09-11T00:00:00',externalCode='20000
')"
},
"status":"A"
}
Response
{
"d": [
{
"key": "FOJobFunction/externalCode=20000,FOJobFunction/
startDate=2014-09-11T00:00:00.000-05:00",
"status": "OK",
"editStatus": "UPSERTED",
"message": null,
"index": 0,
"httpCode": 200,
"inlineResults": null
}
]
}
Error Codes
The table below lists different error codes generated when using this API.
AFFECTED_EXTERNAL_CODE_ERROR This record cannot be saved since one or more records of this
Code have reported errors.
Related Information
9.14.15 FOJobCode
Before the migration, you could handle the translatable fields in two ways. You would do translations for Job Code
using Legacy Translations and FOTranslations. This is replaced with the MDF standard translation approach. Now
translatable fields are handled in the same way as translatable fields in other migrated objects. This means that
you have these additional fields such as name_en_US, name_en_GB, and so on in the object structure. To maintain
backward compatibility, the old navigations to translations are maintained. However, they come with certain
restrictions. Have a look:
Important changes to FOJobCode – name, description and custom string fields in APIs
● Used locale to return data: During migration of Job Code Translations, the Corporate Locale will be used to
copy translations to the new persistency. While copying, the corporate language will be used to copy a default
translations into the translatable fields of FO Job Code (such as name, description or custom string). After
enabling the new translation feature, the SOAP and OData API will return those default values in the corporate
language while it returned the values in the language of the API user before activating the feature. In case this
corporate locale differs from the locale of the API user (can be seen in Employee Central UI through options for
this user), the result of the translatable fields could differ. To avoid this, ensure that corporate language and API
user language are the same before migrating or activating the new Job Code Translation feature in
Provisioning. This is described later below.
● Before the migration, every custom string field of type worker was regarded as translatable if legacy translation
was used. Thus, for every worker field, a navigation attribute was added leading to LocalizedData. After the
migration, navigation attribute is still available, but this will not lead to any instance data.
● Filters and sort on translation navigation: After switching to the new Job Code Translation, the OData API will
no longer support filter, and order by for the navigations of translatable fields in FO Job Code. Filter is still
supported for default translation in field name. This means queries such as /odata/v2/FOJobCode?
$filter=nameTranslatioNav/localizedDataTranslation+eq+'My Job Code' will no longer be possible. Query such
as /odata/v2/FOJobCode?$filter=name+eq+'My Job Code'&$expand=nameTranslationNav will still work.
● Custom user ID fields: If a custom string field was configured as of type user, the corresponding user ID was
added to the translation table. With the new feature enabled, this user ID will now be returned in the
corresponding field itself and is not available anymore in the translation table.
● Top, skip, orderby, and query without filter: After switching to the new Job Code Translation, the
LocalizedData Entity can be queried using simple filter (using eq or in). However, there is no support anymore
for query without filter or paging, and ordering or sorting. LocalizedData must be retrieved using the Job Code
query using expand and not queried directly.
● Shortcut access: Direct access to the LocalizedData without $filter such as odata/vs2/
LocalizedData(localizedDataCode=(‘TR:421:,localizedDataLocale=‘en_GB’) is not possible anymore. Use
odata/v2/LocalizedData?$filter=localizedDataCode+eq+’TR:421’+and+localizedDataLocale+eq+‘en_GB’)
instead or do a direct expand from FOJobCode entity.
● Changed business keys: LocalizedData will have a different code instead of TR:11. A number such as 34569811
originating from the new GOLocalizedData will be returned.
● Null-values for a translation: This happens if LocalizedData is not returned anymore by the OData API. This is
also true for expanded navigations in FOJobCode.
Additional Information
Remember
As a customer, you don't have access to Provisioning. To complete tasks in Provisioning, contact your
implementation partner or Account Executive. For any non-implementation tasks, contact Product Support.
To minimize impact of change, make sure that you deal with setting the language as follows:
1. You have set the default language for your corporation in Provisioning.
2. You have set the user language under Options Change Langaguage . Make sure that the user language
and the default language are the same.
3. Activate the Provisioning settings.
Object Information
MDF Object:JobClassification
Business Keys: externalCode + startDate
Effective-date:true
Supported Operations
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Request
Operation Query
URI https://<API-Server>/odata/v2/FOJobCode?
$format=json&$filter=externalCode eq
'50000074'
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
FOJobCode(externalCode='50000074',startDate=datetime'1990-01-01T00:00:00')",
"type": "SFOData.FOJobCode"
},
"externalCode": "50000074",
"startDate": "/Date(631152000000)/",
"supervisorLevel": "29901",
"name_ko_KR": "엔지니어링",
"createdDateTime": "/Date(1440393282000+0000)/",
"cust_string6_pt_PT": null,
"cust_string1_th_TH": null,
"name_pt_BR": "Engenharia",
"cust_string7_ja_JP": null,
"parentJobCode": null,
"workerCompCode": null,
"cust_string6_iw_IL": null,
"cust_string6_localized": "t",
"cust_string1_de_DE": null,
"cust_string7_ru_RU": null,
"cust_string1_ar_SA": null,
"cust_string2_fr_FR": null,
"grade": "GR-10",
Request
Operation Upsert
URI https://<API-Server>/odata/v2/upsert?
$format=json
Payload
{
"__metadata": {
"uri":
"FOJobCode(startDate=datetime'2014-09-11
T00:00:00',externalCode='20000')"
},
"status": "A"
}
Response
{
"d": [
{
"key": "FOJobCode/externalCode=20000,FOJobCode/
startDate=2014-09-11T00:00:00.000-05:00",
"status": "OK",
"editStatus": "UPSERTED",
"message": null,
"index": 0,
"httpCode": 200,
"inlineResults": null
}
]
}
Error Codes
The table below lists different error codes generated when using this API.
Related Information
9.14.16 FOPayGroup
Object Information
MDF Object:PayGroup
Business Keys: externalCode + startDate
Effective-date:true
Supported Operations
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Request
Operation Query
URI https://<API-Server>/odata/v2/FOPayGroup?
$format=json&$filter=externalCode eq 'CN'
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
FOPayGroup(externalCode='CN',startDate=datetime'1900-01-01T00:00:00')",
"type": "SFOData.FOPayGroup"
},
"externalCode": "CN",
"startDate": "/Date(-2208988800000)/",
"primaryContactName": null,
"description_ko_KR": "중국 매월",
"lastModifiedDateTime": "/Date(1440391081000+0000)/",
"name_localized": "China Monthly",
"description_th_TH": null,
"endDate": "/Date(253402214400000)/",
"name_ko_KR": "중국 매월",
"createdDateTime": "/Date(1440391081000+0000)/",
"name_th_TH": null,
"dataDelimiter": null,
"description_ar_SA": null,
"paymentFrequency": "MT",
"description_pt_BR": "China mensal",
"lag": null,
"description_es_ES": "Mensual (China)",
"name_pt_BR": "China mensal",
"description_nl_NL": null,
"name_nl_NL": null,
"decimalPoint": null,
"secondaryContactName": null,
"description_defaultValue": "China Monthly",
"name_ar_SA": null,
"payrollVendorId": null,
"name_de_DE": "Monatlich (China)",
"name_zh_TW": null,
"name": "China Monthly",
"name_es_ES": "Mensual (China)",
"description_en_US": "China Monthly",
"description_en_DEBUG": null,
"description_ru_RU": "Китай, ежемесячно",
"status": "A",
Request
Operation Upsert
URI https://<API-Server>/odata/v2/upsert?
$format=json
Payload
{
"__metadata":{
"uri":"FOPayGroup(startDate=datetime'201
4-09-11T00:00:00',externalCode='20000')"
},
"status":"A"
}
Response
{
"d": [
{
"key": "FOPayGroup/externalCode=20000,FOPayGroup/
startDate=2014-09-11T00:00:00.000-05:00",
"status": "OK",
"editStatus": "UPSERTED",
"message": null,
"index": 0,
"httpCode": 200,
"inlineResults": null
}
]
}
Error Codes
The table below lists different error codes generated when using this API.
Related Information
9.14.17 PayCalendar
This is a foundation object that describes a pay calendar for a particular pay group. This means it is the collection of
all pay periods referring to the same pay group.
Object information
MDF Object:PayCalendar
Business Keys: payGroup
Effective-date:false
Supported Operations
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Request
Operation Query
URI https://<API-Server>/odata/v2/PayCalendar?
$format=json&$filter=payGroup eq
'APAC_GROUP'
Response
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/PayCalendar('APAC_GROUP')",
"type": "SFOData.PayCalendar"
},
"payGroup": "APAC_GROUP",
"mdfSystemEffectiveEndDate": "\/Date(253402214400000)\/",
"mdfSystemObjectType": "PayCalendar",
"mdfSystemVersionId": null,
"lastModifiedDateTime": "\/Date(1447049529000+0000)\/",
"mdfSystemTransactionSequence": "1",
"createdBy": "admin",
"mdfSystemRecordId": "B48CD96182B440348ECAE2439136091E",
"mdfSystemEntityId": "A2FF33F88E724BF386D5D225975D0F17",
"createdDateTime": "\/Date(1442990456000+0000)\/",
"lastModifiedBy": "admin",
"mdfSystemStatus": "A",
"lastModifiedDate": "\/Date(1447078329000)\/",
"mdfSystemEffectiveStartDate": "\/Date(-2208988800000)\/",
"lastModifiedDateWithTZ": "\/Date(1447049529000+0000)\/",
"createdDate": "\/Date(1443019256000)\/",
"mdfSystemRecordStatus": "N",
"payGroupNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/PayCalendar('APAC_GROUP')/
payGroupNav"
}
},
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/PayCalendar('APAC_GROUP')/
mdfSystemRecordStatusNav"
}
},
"toPayPeriod": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/PayCalendar('APAC_GROUP')/
toPayPeriod"
}
},
"mdfSystemStatusNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/PayCalendar('APAC_GROUP')/
mdfSystemStatusNav"
}
}
}
Request
Operation Upsert
URI https://<API-Server>/odata/v2/upsert?
$format=json
Payload
{
"__metadata":{
"uri":"PayCalendar(externalCode='APAC_GR
OUP')"
},
payGroup": "APAC_GROUP
}
Response
{
"d": [
{
"key": "PayCalendar/externalCode='APAC_GROUP'",
"status": "OK",
"editStatus": "UPSERTED",
"message": null,
"index": 0,
"httpCode": 200,
"inlineResults": null
}
]
}
Error Codes
The table below lists different error codes generated when using this API.
AFFECTED_EXTERNAL_CODE_ERROR This record cannot be saved since one or more records of this
Code have reported errors.
Related Information
Object information
MDF Object:PayPeriod
Business Keys: PayCalendar_payGroup,externalCode
Effective-date:false
Supported Operations
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Use Case 1: Get the Pay Period for the APAC Pay Group
Request
Operation Query
URI https://<API-Server>/odata/v2/PayPeriod?
$format=json&$filter=PayCalendar_payGroup
eq 'APAC_GROUP'
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
PayPeriod(PayCalendar_payGroup='APAC_GROUP',externalCode=6636L)",
"type": "SFOData.PayPeriod"
]
}
}
Request
Operation Upsert
URI https://<API-Server>/odata/v2/upsert?
$format=json
Payload
{
"__metadata": {
"uri": "https://
<API-Server>/odata/v2/
PayPeriod(PayCalendar_payGroup='UM',exte
rnalCode=474699L)",
"type":
"SFOData.PayPeriod"
},
"externalCode":
"474699",
"PayCalendar_payGroup":
"UM",
}
{
"d": [
{
"key": "PayPeriod/PayCalendar_payGroup=UM,PayPeriod/
externalCode=474699",
"status": "OK",
"editStatus": "UPSERTED",
"message": null,
"index": 0,
"httpCode": 200,
"inlineResults": null
}
]
}
Error Codes
The table below lists different error codes generated when using this API.
AFFECTED_EXTERNAL_CODE_ERROR This record cannot be saved since one or more records of this
Code have reported errors.
Related Information
Global Benefits offers a simplified, one-stop shop Benefits administration tool for organizations spread across the
globe.
10.1 Benefit
This entity is used to create and configure benefits. It is used for reimbursements and allowances, such as medical
bills, higher education, and a company car.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
effectiveStartDate The date and time the benefit is effective. This is a business
key.
Request
Operation Query
URI https://<api-server>/odata/v2/
Benefit(benefitId='746',effectiveStartDate
=datetime'2015-01-01T00:00:00')
Response
{
"d": {
"__metadata": {
"uri": "https://<api-server>/odata/v2/
Benefit(benefitId='746',effectiveStartDate=datetime'2015-01-01T00:00:00')",
"type": "SFOData.Benefit"
},
"effectiveStartDate": "/Date(1420070400000)/",
"benefitId": "746",
"employerPayComponent": null,
"schemeType": null,
"createdDateTime": "/Date(1440664594000+0000)/",
"mdfSystemVersionId": null,
"savingsPlanCatchUpDetail": null,
"plan": null,
"qualifyingScheme": null,
"claimDetail": null,
"benefitSchedule": "1561",
"carryForwardEnrollment": false,
"mdfSystemRecordStatus": "N",
"dependentSpecificRule": false,
"empAnnualLimitPayComponent": null,
"benefitSpecific": null,
"bandingsConfiguration": null,
"deductionStartDate": null,
"claimScreenID": null,
"claimsLimitPerFrequencyPeriod": null,
"showRemaningNoOfDaysForClaim": null,
"status": "A",
"annualMaxPayComponent": null,
"benefitType": "ALLOWANCE",
"benefitEntityID": "27CB5565588140138DC80B75DCF62459",
"showRemaningNoOfDaysForEnrollment": "SHOW_NO_OF_DAYS",
"nomineeRelevant": null,
"claimDetailRequired": null,
"dummyField": null,
"savingsPlanSubType": null,
"beneficiaryRelevant": null,
"employeeClaimWorkflowId": null,
"currency": "AUD",
"exceptionWorkflowId": null,
"employeeEnrollmentEditAllowed": true,
"decimalPrecisionSettingForContributionAmount": null,
"emailNotificationForEnrollment": true,
"mdfSystemObjectType": "Benefit",
"optOutWorkflowId": null,
"createdDate": "/Date(1440650194000)/",
"pensionMinMaxContributionLimits": null,
"taxationMode": null,
"mdfSystemRecordId": "C9E5130358824D0980781019D4B0E675",
"country": null,
"creditPoints": null,
"lastModifiedDateTime": "/Date(1545161881000+0000)/",
"benefitShortDescription": "Transportation Allowance Australia",
"annualMinContributionAmount": null,
"ageOfRetirement": null,
"employeeEnrollmentWorkflowId": null,
"insuranceType": null,
Related Information
10.2 BenefitAutomaticActionConfiguration
This entity contains ID, Benefit, Adjustment/Action, Effective From Rule and Deduction Change Effective From Rule.
This object is used to configure Benefit Automatic Action Configuration for Benefit Life Event Configuration.
Note
This API is read-only. To create or edit data, please use imports function.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Navigation Properties
Use Case
Request
Operation Query
URI https://<api-server>/odata/v2/
BenefitAutomaticActionConfiguration?$format=json
Response
"d": {
"results": [{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitAutomaticActionConfiguration",
"type": "SFOData.BenefitAutomaticActionConfiguration"
},
“id”: "benefitAutomaticActionConfiguration1",
“benefit”: "benefit1",
“actionFor”: "Delemit_Enrollment",
“effectiveDateRule”: "effectiveDateRule1",
“deductionEffectiveDateRule”: "deductionEffectiveDateRule1",
"mdfSystemRecordStatus": "N",
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitAutomaticActionConfiguration/mdfSystemRecordStatusNav"
}
}
}]
}
}
This entity is used to carry forward the unclaimed balances from the previous periods to the next period.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
maximumBalanceCarryForwardAmount Amount that can be carry forwarded from the previous sched
ule period to the next period.
upperLimitOnTotalBalanceCarryForwardAmount The maximum amount that can be carried forward to the end
of the highest schedule period.
Use Case
Request
Operation Query
URI https://<api-server>/odata/v2/BenefitBalanceCarryForward?
$format=json
Response
{
"d": {
"results": [
{
Related Information
This enitity enables the accumulation of benefit claims so they can be tracked within a defined cycle.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
Navigation Properties
Benefit Claim Accumulation benefitClaims Gets the Benefit Employee Claim details.
A query operation on the VendorInfo entity returns all the information related to a given vendor.
Operation Query
URI https://<API-Server>/odata/v2/
BenefitClaimAccumulation(160705)?
$format=JSON
Response
{
"d": {
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitClaimAccumulation(160705L)",
"type": "SFOData.BenefitClaimAccumulation"
},
"externalCode": "160705",
"exception": null,
"mdfSystemLastModifiedDateWithTZ": "/Date(1486004759000+0000)/",
"lastModifiedDateTime": "/Date(1486004759000+0000)/",
"mdfSystemCreatedBy": "sfadmin",
"mdfSystemEffectiveEndDate": "/Date(253402214400000)/",
"balanceCarryForwardAmount": "0",
"createdDateTime": "/Date(1486004759000+0000)/",
"mdfSystemVersionId": null,
"mdfSystemLastModifiedBy": "sfadmin",
"mdfSystemEffectiveStartDate": "/Date(-2208988800000)/",
"remainingAmount": "900",
"accumulatedAmount": "100",
"balanceCredits": null,
"mdfSystemStatus": "A",
"mdfSystemEntityId": "35E741DEF0384DBDA7ED530E663CF103",
"currency": "GBP",
"claimWindowEnd": "/Date(1514678400000)/",
"mdfSystemObjectType": "BenefitClaimAccumulation",
"workerId": "101037",
"mdfSystemLastModifiedDate": "/Date(1485986759000)/",
"lastModifiedBy": "sfadmin",
"mdfSystemRecordStatus": "N",
"benefit": "644",
"accumulatedCredits": null,
"mdfSystemTransactionSequence": "1",
"claimWindowStart": "/Date(1483228800000)/",
"createdBy": "sfadmin",
"mdfSystemCreatedDate": "/Date(1485986759000)/",
"mdfSystemRecordId": "D7A6D5DE033242F6BA5BEB60B4A582BE",
"schedulePeriod": "108381",
"benefitBalanceCarryForwardDetails": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitClaimAccumulation(160705L)/benefitBalanceCarryForwardDetails"
}
},
"mdfSystemStatusNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitClaimAccumulation(160705L)/mdfSystemStatusNav"
}
},
"createdByNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitClaimAccumulation(160705L)/createdByNav"
10.5 BenefitCompanyCarAllowedModels
This entity is used to create values for different car models that are selected from the drop-down list in the
application.
Note
This API is read-only. To create or edit data, please use imports function.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
Navigation Properties
Request
Operation Query
URI https://<api-server>/odata/v2/
BenefitCompanyCarAllowedModels?$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitCompanyCarAllowedModels(effectiveStartDate=datetime'2019-04-01T00:00:00',exte
rnalCode='13411')",
"type": "SFOData.BenefitCompanyCarAllowedModels"
},
"externalCode": "13411",
"effectiveStartDate": "/Date(1554076800000)/",
"effectiveEndDate": "/Date(253402214400000)/",
"lastModifiedDateTime": "/Date(1554187003000+0000)/",
"createdBy": "sriadmin",
"carModelName": "C11",
"lastModifiedBy": "sriadmin",
"createdDateTime": "/Date(1554187003000+0000)/",
"mdfSystemRecordStatus": "N",
"wfRequestNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitCompanyCarAllowedModels(effectiveStartDate=datetime'2019-04-01T00:00:00',exte
rnalCode='13411')/wfRequestNav"
}
},
"createdByNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitCompanyCarAllowedModels(effectiveStartDate=datetime'2019-04-01T00:00:00',exte
rnalCode='13411')/createdByNav"
}
},
"lastModifiedByNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitCompanyCarAllowedModels(effectiveStartDate=datetime'2019-04-01T00:00:00',exte
rnalCode='13411')/lastModifiedByNav"
}
},
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitCompanyCarAllowedModels(effectiveStartDate=datetime'2019-04-01T00:00:00',exte
rnalCode='13411')/mdfSystemRecordStatusNav"
}
}
}
]
}
}
10.6 BenefitCompanyCarLeaseServiceProvider
This entity is used to create values for car lease service providers.
Note
This API is read-only. To create or edit data, please use imports function.
Supported Operations
Query
Properties
Property Description
effectiveStartDate The effective start date of the car lease from the service provider.
emiInterestRate The interest rate from the service provider for the equated monthly installments.
Navigation Properties
Request
Operation Query
URI https://<api-server>/odata/v2/
BenefitCompanyCarLeaseServiceProvider?$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitCompanyCarLeaseServiceProvider(effectiveStartDate=datetime'2019-04-02T00:00:0
0',externalCode='34235234')",
"type": "SFOData.BenefitCompanyCarLeaseServiceProvider"
},
"externalCode": "34235234",
"effectiveStartDate": "/Date(1554163200000)/",
"effectiveEndDate": "/Date(253402214400000)/",
"lastModifiedDateTime": "/Date(1554186900000+0000)/",
"lastModifiedBy": "sriadmin",
"createdDateTime": "/Date(1554186900000+0000)/",
"mdfSystemRecordStatus": "N",
"serviceProviderName": "SAP",
"createdBy": "sriadmin",
"emiInterestRate": "10",
"createdByNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitCompanyCarLeaseServiceProvider(effectiveStartDate=datetime'2019-04-02T00:00:0
0',externalCode='34235234')/createdByNav"
}
},
"wfRequestNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitCompanyCarLeaseServiceProvider(effectiveStartDate=datetime'2019-04-02T00:00:0
0',externalCode='34235234')/wfRequestNav"
}
},
"lastModifiedByNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitCompanyCarLeaseServiceProvider(effectiveStartDate=datetime'2019-04-02T00:00:0
0',externalCode='34235234')/lastModifiedByNav"
}
},
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitCompanyCarLeaseServiceProvider(effectiveStartDate=datetime'2019-04-02T00:00:0
0',externalCode='34235234')/mdfSystemRecordStatusNav"
}
}
}
]
}
Related Information
10.7 BenefitsConfirmationStatementConfiguration
This entity is meant for mapping the template to various legal entity. Here Legal Entity is external code to address
the requirement of having only one template mapped per legal entity.
Supported Operations
Query
Use Case
Request
Operation Query
URI https://<api-server>/odata/v2/
BenefitsConfirmationStatementConfiguration
?$format=json&$top=1
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitsConfirmationStatementConfiguration",
"type": "SFOData.BenefitsConfirmationStatementConfiguration"
},
"legalEntity": "ACE_USA",
"effectiveStartDate": "/Date(1496016000000)/",
" templateId ": "benefits",
"createdBy": "admin",
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1496123038000+0000)/",
Related Information
10.8 BenefitCompanyCarRecommendedVendors
This entity stores the details of recommended vendors for the company car benefit.
Note
This API is read-only. To create or edit data, please use imports function.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
Navigation Properties
Request
Operation Query
URI https://<api-server>/odata/v2/
BenefitCompanyCarRecommendedVendors
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitCompanyCarRecommendedVendors(effectiveStartDate=datetime'2019-04-01T00:00:00'
,externalCode='54545')",
"type": "SFOData.BenefitCompanyCarRecommendedVendors"
},
"externalCode": "54545",
"effectiveStartDate": "/Date(1554076800000)/",
"effectiveEndDate": "/Date(253402214400000)/",
"carVendorName": "Hundai",
"lastModifiedDateTime": "/Date(1554187073000+0000)/",
"createdBy": "sriadmin",
"lastModifiedBy": "sriadmin",
"createdDateTime": "/Date(1554187073000+0000)/",
"mdfSystemRecordStatus": "N",
"wfRequestNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitCompanyCarRecommendedVendors(effectiveStartDate=datetime'2019-04-01T00:00:00'
,externalCode='54545')/wfRequestNav"
}
},
"createdByNav": {
"__deferred": {
Related Information
10.9 BenefitContact
This entity stores the contact details of persons who are responsible for providing benefit-related information.
Note
This API is read-only. To create or edit data, please use imports function.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
Use Case: Get contact details of persons who are responsible for providing
benefit-related information
Request
Operation Query
URI https://<api-sever>/odata/v2/BenefitContact
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitContact('JPATRICK')",
"type": "SFOData.BenefitContact"
},
"externalCode": "JPATRICK",
"employeeName": "James Patrick",
"lastModifiedDateTime": "/Date(1630644200000+0000)/",
"contactEmail": "[email protected]",
"lastModifiedBy": "ecadmin",
"createdDateTime": "/Date(1630644200000+0000)/",
"contactType": null,
"mdfSystemRecordStatus": "N",
"contactEmployeeId": "103073",
"createdBy": "ecadmin",
"contactPhone": "67809876",
"createdByNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitContact('JPATRICK')/createdByNav"
}
},
"contactEmployeeIdNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitContact('JPATRICK')/contactEmployeeIdNav"
}
},
"contactTypeNav": {
"__deferred": {
Related Information
10.10 BenefitDeductibleDetails
This object is used to capture the Benefit Deduction details during Benefit creation.
Note
This API is read-only. To create or edit data, please use function import.
Supported Operations
Query
Request
Operation Query
URI https://<api-server>/odata/v2/
BenefitDeductionDetails?$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitDeductionDetails(Benefit_benefitId='SAVINGS_PALN',Benefit_effectiveStartDate=
datetime'2018-03-23T00:00:00',dedcutionDetailId=25291L)",
"type": "SFOData.BenefitDeductionDetails"
},
"Benefit_effectiveStartDate": "/Date(1521763200000)/",
"Benefit_benefitId": "SAVINGS_PALN",
"dedcutionDetailId": "25291",
"deductionPayComponent": "Savings plan paycomp",
"basePayComponent": "Savings plan paycomp",
"lastModifiedDateTime": "/Date(1521780910000+0000)/",
"createdBy": "admin",
"createdDateTime": "/Date(1521780910000+0000)/",
"lastModifiedBy": "admin",
"payFrequency": "MON",
"mdfSystemRecordStatus": "N",
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitDeductionDetails(Benefit_benefitId='SAVINGS_PALN',Benefit_effectiveStartDate=
datetime'2018-03-23T00:00:00',dedcutionDetailId=25291L)/mdfSystemRecordStatusNav"
}
},
"deductionPayComponentNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitDeductionDetails(Benefit_benefitId='SAVINGS_PALN',Benefit_effectiveStartDate=
datetime'2018-03-23T00:00:00',dedcutionDetailId=25291L)/deductionPayComponentNav"
}
},
"basePayComponentNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitDeductionDetails(Benefit_benefitId='SAVINGS_PALN',Benefit_effectiveStartDate=
datetime'2018-03-23T00:00:00',dedcutionDetailId=25291L)/basePayComponentNav"
}
},
"payFrequencyNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitDeductionDetails(Benefit_benefitId='SAVINGS_PALN',Benefit_effectiveStartDate=
datetime'2018-03-23T00:00:00',dedcutionDetailId=25291L)/payFrequencyNav"
}
}
}
]
10.11 BenefitDocuments
This enity is used to store all kinds of documents related to the benefits, including policy documents, forms, and
relevant web links.
Note
This API is read-only. To create or edit data, please use function import.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
Request
Operation Query
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitDocuments(effectiveStartDate=datetime'2021-01-01T00:00:00',id='DOC')",
"type": "SFOData.BenefitDocuments"
},
"effectiveStartDate": "/Date(1609459200000)/",
"id": "DOC",
"lastModifiedDateTime": "/Date(1630308427000+0000)/",
"lastModifiedBy": "bijo",
"mdfSystemEffectiveEndDate": "/Date(253402214400000)/",
"createdDateTime": "/Date(1630308427000+0000)/",
"mdfSystemRecordStatus": "N",
"usefulLink": null,
"createdBy": "bijo",
"shortName": "DOC",
"createdByNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitDocuments(effectiveStartDate=datetime'2021-01-01T00:00:00',id='DOC')/
createdByNav"
}
},
"attachmentNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitDocuments(effectiveStartDate=datetime'2021-01-01T00:00:00',id='DOC')/
attachmentNav"
}
},
"wfRequestNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitDocuments(effectiveStartDate=datetime'2021-01-01T00:00:00',id='DOC')/
wfRequestNav"
}
},
"lastModifiedByNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitDocuments(effectiveStartDate=datetime'2021-01-01T00:00:00',id='DOC')/
lastModifiedByNav"
}
},
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitDocuments(effectiveStartDate=datetime'2021-01-01T00:00:00',id='DOC')/
mdfSystemRecordStatusNav"
Related Information
This entity stores the details of the claim transactions made by the employees for the various benefits in the
company.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
benefitDataSourceWithExternalCode The list of benefits that the employee is eligible to claim for.
Navigation Properties
Use Case: Get details of the claim transactions made by the employees
Request
Operation Query
URI https://<api-server>/odata/v2/BenefitEmployeeClaim
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitEmployeeClaim('1DE4AEF51E784AD9A1B4DE255B350E7E')",
"type": "SFOData.BenefitEmployeeClaim"
},
"id": "1DE4AEF51E784AD9A1B4DE255B350E7E",
"exception": null,
"lastModifiedDateTime": "/Date(1629284526000+0000)/",
"benefitDataSourceWithExternalCode": "CLAIM_API",
"createdDateTime": "/Date(1629284526000+0000)/",
"byPassWorkflow": null,
"externalName": "80300_CLAIM_API_TEST_08182021_110206",
"currency": "USD",
"benefitProgram": null,
"workerId": "80300",
"benefitDataSource": null,
"nrpId": null,
"lastModifiedBy": "bijo",
"benefit": "CLAIM_API",
"benefitClaimEntityID": "50F16D4AD3BD4CD7A659CBF331CDF83C",
"totalAmount": "1000",
"recordStatus": "N",
"claimDate": "/Date(1629244800000)/",
"createdBy": "bijo",
"isTotalAmountReadOnly": null,
"entitlementAmount": null,
"remarks": null,
"status": null,
"policyDocuments": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitEmployeeClaim('1DE4AEF51E784AD9A1B4DE255B350E7E')/policyDocuments"
10.13 BenefitEnrollment
This entity contains a list of all the benefits for which an Employee is eligible.An employee uses this object to enroll
for eligible benefits.
Note
This API is read-only. To create or edit data, please use imports function.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
Use Case: Get the list of all the enrolled benefits for the employee
Request
Operation Query
URI https://<api-server>/odata/v2/BenefitEnrollment
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitEnrollment(effectiveStartDate=datetime'2022-01-01T00:00:00',id='DC37B85658614
6CDB49AC2C02873A3CB')",
"type": "SFOData.BenefitEnrollment"
},
"effectiveStartDate": "/Date(1640995200000)/",
"id": "DC37B856586146CDB49AC2C02873A3CB",
"eligibleWalletAmount": null,
"exception": null,
"isDedStartDateCalculated": null,
"jobRunDate": null,
"lastModifiedDateTime": "/Date(1629958406000+0000)/",
"enrollmentContext": null,
"enrollmentDate": "/Date(1629849600000)/",
"createdDateTime": "/Date(1629958406000+0000)/",
Related Information
This Object is used to capture the Benefit Dependency containing Benefit Dependency Configuration Id, Comment
and Benefit Dependency Details. Benefit Dependency Details contains the Lead Benefit, Lead Insurance Plan,
Dependent Benefit, Dependent Insurance Plan and Enrollment Condition.
Note
This API is read-only. To create or edit data, please use function import.
Supported Operations
Query
Use Case
Request
Operation Query
URI https://<api-server>/odata/v2/
BenefitEnrollmentDependencyConfiguration(e
ffectiveStartDate=datetime'2017-10-02T00:0
0:00',id=694L)?$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitEnrollmentDependencyConfiguration",
"type": "SFOData. BenefitEnrollmentDependencyConfiguration"
},
"benefitDependencyId": "DEPENDENCY CONFIGURATION ID",
"comment": "Benefit Dependency Configuration with details",
"benefitDependencyDetails": "benefitDependencydetailList",
"createdBy": "admin",
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1496123038000+0000)/",
"lastModifiedDateTime": "/Date(1496123038000+0000)/",
"mdfSystemRecordStatus": "N",
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitEnrollmentDependencyConfiguration(/mdfSystemRecordStatusNav"
10.15 BenefitEnrollmentDependencyDetails
This Object is used to capture the Lead and Dependent Benefits with some Enrollment Condition.
Supported Operations
Query
Use Case
Request
Operation Query
URI https://<api-server>/odata/v2/
BenefitEnrollmentDependencyDetails(effecti
veStartDate=datetime'2017-10-02T00:00:00',
id=694L)/$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/BenefitEnrollmentDependencyDetails",
"type": "SFOData. BenefitEnrollmentDependencyDetails"
},
"leadBenefit": "DummyBenefit1",
"leadInsurancePlan": "DummyPlan1",
"enrollmentCondition": "ENROLLED",
"dependentBenefit": "DummyBenefit2",
"dependentInsurancePlan": "DummyPlan2",
"createdBy": "admin",
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1496123038000+0000)/",
"lastModifiedDateTime": "/Date(1496123038000+0000)/",
"mdfSystemRecordStatus": "N",
"leadBenefitNav": {
10.16 BenefitEnrollmentOptoutDetail
Note
This API is read-only. To create or edit data, please use function import.
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Navigation Properties
Request
Operation Query
URI https://<api-server>/odata/v2/
BenefitEnrollmentOptoutDetails?
$format=json
Response
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitEnrollmentOptoutDetails",
"type": "SFOData. BenefitEnrollmentOptoutDetails"
},
"benefitEnrollment": "BenefitEnrollment1",
“benefitEnrollmentId”: “AHDGJ879709BDJ”,
“benefitSchedulePeriod”: “BenefitSchedulePeriod1”,
“optoutRequestDate”: "/Date(1521763200000)/",
“enrollmentChangeDate”: "/Date(1523163200000)/",
“contributionChangeDate”: "/Date(1526263200000)/",
“optedoutBy”: “admin1”,
"createdBy": "admin",
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1496123038000+0000)/",
"lastModifiedDateTime": "/Date(1496123038000+0000)/",
10.17 BenefitEmployeeOptoutRequests
This entity is used to get the worked ID and Enrollment Optout details of an employee. This entity is used to store
the enrollment optout details for an employee.
Note
This API is read-only. To create or edit data, please use function import.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Navigation Properties
Request
Operation Query
URI https://<api-server>/odata/v2/
BenefitEmployeeOptoutRequests?$format=json
Response
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitEmployeeOptoutRequests",
"type": "SFOData. BenefitEmployeeOptoutRequests"
},
"workerId": "user1",
"benefitEnrollmentOptoutDetails": "benefitOptoutDetailsList",
"createdBy": "admin",
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1496123038000+0000)/",
"lastModifiedDateTime": "/Date(1496123038000+0000)/",
"mdfSystemRecordStatus": "N",
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitEmployeeOptoutRequests/mdfSystemRecordStatusNav"
}
}
}
]
}
}
10.18 BenefitEventDetermination
This entity contains System Event and Event Determination Rule Configuration. This entity is used to create Benefit
Event Determination object.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Navigation Properties
Use Case
Request
Operation Query
URI https://<api-server>/odata/v2/BenefitEventDetermination?
$format=json
Response
"d": {
"results": [{
"__metadata": {
"uri": "https://<api-server>/odata/v2/BenefitEventDetermination",
"type": "SFOData.BenefitEventDetermination"
},
“systemEvent”: "TERMINATION",
"eventDeterminationRuleConfiguration":
"eventDeterminationRuleConfiguration1",
"mdfSystemRecordStatus": "N",
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/BenefitEventDetermination/
mdfSystemRecordStatusNav"
}
}
}]
}
}
This entity contains Processing Log Id, Worker Id, System Event, System Event Id, Comment, Event Rule Name,
Benefit Event, Benefit Life Event Configuration, Event Processing Status,Processing Result Detail,Event Published
By,Processed Date, Processed Time and Benefit Processing Log Details. This entity is used to log the details of
Processed BenefitEvent.
Note
This API is read-only. To create or edit data, please use imports function.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Navigation Properties
Use Case
Request
Operation Query
URI https://<api-server>/odata/v2/BenefitEventProcessingLog?
$format=json
"d": {
"results": [{
"__metadata": {
"uri": "https://<api-server>/odata/v2/BenefitEventProcessingLog",
"type": "SFOData.BenefitEventProcessingLog"
},
"processingLogId": "ProcessingLog1",
"workerId": "admin",
"systemEvent": "TERMINATION",
"systemEventId": "Termination1",
"comment": "Terminated",
"eventRuleName": "TerminationRule",
"benefitEvent": "benefitEvent1",
"benefitLifeEventConfiguration": "benefitLifeEventConfiguration1",
"eventProcessingStatus": "SUCCESS",
"processingResultDetail": "Created",
"eventPublishedBy": "admin",
"processedDate": "/Date(1521763200000)/",
"processedTime": "/Date(1496123038000+0000)/",
"benefitProcessingLogDetails": "benefitProcessingLogDetails1",
"mdfSystemRecordStatus": "N",
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/BenefitEventProcessingLog/
mdfSystemRecordStatusNav"
}
}
}]
}
}
10.20 BenefitOpenEnrollmentCycleConfiguration
This entity contains the details of the Open Enrollment cycle – the benefits that are part of it, the legal entity it is
valid, the schedule it is applicable for. This is used to configure the Open Enrollment Cycle, based on which the
employee would be able to enroll into the related benefits.
Note
This API is read-only. To create or edit data, please use imports function.
Supported Operations
Query
Request
Operation Query
URI https://<api-server>/odata/v2/
BenefitOpenEnrollmentCycleConfiguration?
$format=json&$top=1
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https:<api-server>/odata/v2/
BenefitOpenEnrollmentCycleConfiguration",
"type": "SFOData.BenefitOpenEnrollmentCycleConfiguration"
},
"openEnrollmentSchedule": "Schedule 1",
"legalEntity": "ACE_USA",
"instructionTextURL": "https://www.example.com",
"tncURL": "https://www.example.com",
"createdBy": "admin",
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1496123038000+0000)/",
"lastModifiedDateTime": "/Date(1496123038000+0000)/",
"mdfSystemRecordStatus": "N",
"wfRequestNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitOpenEnrollmentCycleConfiguration/wfRequestNav"
},
"benefits": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/BenefitEnrollmentGroup/benefits"
}
}
},
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitOpenEnrollmentCycleConfiguration(/mdfSystemRecordStatusNav"
}
}
}
]
}
}
10.21 BenefitsException
This entity contains information about all the exceptions that occur if the enrollment amount does not match the
eligiblility criteria or if the enrollment period has expired.
Note
This API is read-only. To create or edit data, please use imports function.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
Navigation Properties
Use Case: Get Details of Benefit exceptions that occur when the enrollment
period has expired
Request
Operation Query
URI https://<api-server>/odata/v2/BenefitsException
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitsException(28322L)",
"type": "SFOData.BenefitsException"
},
"exceptionId": "28322",
"lastModifiedDateTime": "/Date(1630604770000+0000)/",
"exceptionStartDate": "/Date(1630540800000)/",
"lifeEventConfiguration": null,
"createdDateTime": "/Date(1630604770000+0000)/",
"isAutomation": null,
"exceptionCreationDate": "/Date(1630540800000)/",
"legalEntity": "1700",
"newExceptionWindow": true,
"exceptionName": "103073_ENROLLMENT",
"workerId": "103073",
"lastModifiedBy": "ecadmin",
"mdfSystemRecordStatus": "N",
"createdBy": "ecadmin",
"exceptionFor": "ENROLLMENT",
"exceptionEndDate": "/Date(1631404800000)/",
"eventDate": "/Date(1630540800000)/",
"createdByNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitsException(28322L)/createdByNav"
}
},
"exceptionForNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitsException(28322L)/exceptionForNav"
Related Information
This object is used to capture the URL and label for the URL to display with each benefit. The hyperlinks configured
in each benefit will be displayed with benefit on the employee screen.
Note
This API is read-only. To create or edit data, please use imports function.
Supported Operations
Query
Use Case
Request
Operation Query
URI https://<api-server>/odata/v2/
BenefitHyperlinkConfiguration/$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/BenefitHyperlinkConfiguration",
"type": "SFOData. BenefitHyperlinkConfiguration"
},
"url": "https://www.website.com",
"label": "Website",
"createdBy": "admin",
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1496123038000+0000)/",
"lastModifiedDateTime": "/Date(1496123038000+0000)/",
"mdfSystemRecordStatus": "N",
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/BenefitHyperlinkConfiguration(/
mdfSystemRecordStatusNav"
}
}
}
]
}
}
This entity fetches the employee insurance plan details such as plan name, insurance provider, pay component,
coverage option and so on. This entity is available under Create Benefit portlet.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
id Plan ID
frequency Frequency
Use Case
Request
Operation Query
URI https://<api-server>/odata/v2/
BenefitInsurancePlan?$format=json&$top=1
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitInsurancePlan(effectiveStartDate=datetime'2015-03-05T00:00:00',id=2664L)",
"type": "SFOData.BenefitInsurancePlan"
},
"id": "2664",
"effectiveStartDate": "/Date(1425513600000)/",
"planName_pt_BR": null,
"mdfSystemLastModifiedDate": "/Date(1425527952000)/",
"mdfSystemEffectiveEndDate": "/Date(253402214400000)/",
"mdfSystemObjectType": "BenefitInsurancePlan",
"planName_es_ES": null,
"mdfSystemVersionId": null,
"planName_ru_RU": null,
"mdfSystemLastModifiedDateWithTZ": "/Date(1425545952000+0000)/",
"lastModifiedDateTime": "/Date(1425545952000+0000)/",
"frequency": null,
"planName_en_US": "Medical Plan A",
"mdfSystemTransactionSequence": "1",
"mdfSystemRecordId": "1A93F027A29145E9AAFCE32C7C451741",
"planName_defaultValue": "Medical Plan A",
"mdfSystemEntityId": "B5DCF12B37A1422DA825FBCBD51D0578",
"planName_fr_CA": null,
"mdfSystemStatus": "A",
"planName_ko_KR": null,
"mdfSystemLastModifiedBy": "admin",
"mdfSystemCreatedBy": "admin",
"mdfSystemRecordStatus": "N",
"planName_it_IT": null,
"eligibilityRuleForCoverage": null,
"provider": "2661",
"employeeContribution": "HEALTH",
"planName_en_GB": null,
"planName_fr_FR": null,
"mdfSystemCreatedDate": "/Date(1425525792000)/",
"planName_ja_JP": null,
"planName_zh_CN": null,
"employerContribution": "HEALTH",
"createdBy": "admin",
"planName_de_DE": null,
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1425543792000+0000)/",
"premiumType": "FIXEDPREMIUMAMOUNT",
"planName_nl_NL": null,
"planName_es_MX": null,
"frequencyNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitInsurancePlan(effectiveStartDate=datetime'2015-03-05T00:00:00',id=2664L)/
frequencyNav"
}
},
"employerContributionNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitInsurancePlan(effectiveStartDate=datetime'2015-03-05T00:00:00',id=2664L)/
employerContributionNav"
}
},
"premiumTypeNav": {
"__deferred": {
Related Information
10.24 BenefitInsurancePlanEnrollmentDetails
Note
This API is read-only. To create or edit data, please use imports function.
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
externalCode externalCode
smoking Smoking
Use Case
Request
Operation Query
URI https://<api-server>/odata/v2/
BenefitInsurancePlanEnrollmentDetails?
$format=json&$top=1
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitInsurancePlanEnrollmentDetails(BenefitEnrollment_effectiveStartDate=datetime'
2015-05-26T00:00:00',BenefitEnrollment_id=4413L,externalCode=4414L)",
"type": "SFOData.BenefitInsurancePlanEnrollmentDetails"
},
"BenefitEnrollment_id": "4413",
Related Information
10.25 BenefitInsurancePlanUSA
This entity contains information about a benefit enrollment record when the insurance plans are subject to COBRA.
This entity is specific to the USA.
Note
This API is read-only. To create or edit data, please use imports function.
Supported Operations
Query
Request
Operation Query
URI https://<api-server>/odata/v2/
BenefitInsurancePlan(effectiveStartDate=da
tetime'2017-01-02T00:00:00',id=694L)/
insurancePlanUSA?$format=json
Response
{
"d":{
"results":[
{
"__metadata":{
"uri":"https://<api-server>/odata/v2/
BenefitInsurancePlanUSA(BenefitInsurancePlan_effectiveStartDate=datetime'2017-01-02T
00:00:00',BenefitInsurancePlan_id=694L,externalCode=695L)",
"type":"SFOData.BenefitInsurancePlanUSA"
},
"BenefitInsurancePlan_effectiveStartDate":"\/Date(1483315200000)\/",
"externalCode":"695",
"BenefitInsurancePlan_id":"694",
"enrolleeOptions":"692",
"createdBy":"admin",
"lastModifiedBy":"admin",
"createdDateTime":"\/Date(1490175536000+0000)\/",
"lastModifiedDateTime":"\/Date(1490175713000+0000)\/",
"mdfSystemRecordStatus":"N",
"cobraRelevant":{
"__deferred":{
"uri":"https://<api-server>/odata/v2/
BenefitInsurancePlanUSA(BenefitInsurancePlan_effectiveStartDate=datetime'2017-01-02T
00:00:00',BenefitInsurancePlan_id=694L,externalCode=695L)/cobraRelevant "
},
"mdfSystemRecordStatusNav":{
"__deferred":{
"uri":"https://<api-server>/odata/v2/
BenefitInsurancePlanUSA(BenefitInsurancePlan_effectiveStartDate=datetime'2017-01-02T
00:00:00',BenefitInsurancePlan_id=694L,externalCode=695L)/mdfSystemRecordStatusNav"
}
}
}
]
}
}
Additional Information
● To be able to query this entity, BenefitInsurancePlan entity as of 1705 API version and above is available; this
version contains the prerequisite country field and the nav insurancePlanUSA.
● BenefitInsurancePlanUSA is a composite entity and queried via BenefitInsurancePlan.
Related Information
10.26 BenefitInsuranceDependentDetail
This entity fetches the employee’s insurance dependent details such as dependent option and dependent type.
This entity is available under Insurance Plan portlet.
Note
This API is read-only. To create or edit data, please use imports function.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
Use Case:
Request
Operation Query
URI https://<api-server>/odata/v2/
BenefitInsuranceDependentDetail?
$format=json&$top=1
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitInsuranceDependentDetail(BenefitEnrollment_effectiveStartDate=datetime'2016-0
1-01T00:00:00',BenefitEnrollment_id=4441L,BenefitInsurancePlanEnrollmentDetails_exte
rnalCode=4442L,dependentName='4240')",
"type": "SFOData.BenefitInsuranceDependentDetail"
},
"dependentName": "4240",
"BenefitInsurancePlanEnrollmentDetails_externalCode": "4442",
"BenefitEnrollment_id": "4441",
"BenefitEnrollment_effectiveStartDate": "/Date(1451606400000)/",
"dateOfBirth": null,
"mdfSystemLastModifiedDate": "/Date(1447579447000)/",
"mdfSystemObjectType": "BenefitInsuranceDependentDetail",
"mdfSystemEffectiveEndDate": "/Date(253402214400000)/",
"mdfSystemVersionId": null,
"mdfSystemLastModifiedDateWithTZ": "/Date(1447597447000+0000)/",
"lastModifiedDateTime": "/Date(1447597447000+0000)/",
"mdfSystemCreatedDate": "/Date(1447579447000)/",
"mdfSystemTransactionSequence": "1",
"relationShipType": "2",
"mdfSystemRecordId": "0D5116710D4B4CFA8A19B8E714CE1EAA",
"createdBy": "v4admin",
"mdfSystemEntityId": "68C3D2FA452544D39BECF9786C95F740",
"createdDateTime": "/Date(1447597447000+0000)/",
"lastModifiedBy": "v4admin",
"mdfSystemStatus": "A",
"mdfSystemEffectiveStartDate": "/Date(-2208988800000)/",
"mdfSystemLastModifiedBy": "v4admin",
"mdfSystemRecordStatus": "N",
"mdfSystemCreatedBy": "v4admin",
"relationShipTypeNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitInsuranceDependentDetail(BenefitEnrollment_effectiveStartDate=datetime'2016-0
1-01T00:00:00',BenefitEnrollment_id=4441L,BenefitInsurancePlanEnrollmentDetails_exte
rnalCode=4442L,dependentName='4240')/relationShipTypeNav"
Related Information
10.27 BenefitInsuranceCoverage
This entity fetches the employee insurance coverage such as coverage name and type. This entity is available under
Insurance Plan portlet.
Note
This API is read-only. To create or edit data, please use imports function.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
Properties
Property Description
coverageid Coverage ID
amount Amount
factor Factor
percentage Percentage
Request
Operation Query
URI https://<api-server>/odata/v2/
BenefitInsuranceCoverage(2663L)?
$format=json&$top=1
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitInsuranceCoverage(2663L)",
"type": "SFOData.BenefitInsuranceCoverage"
},
"coverageId": "2663",
"mdfSystemLastModifiedDate": "/Date(1443075312000)/",
"mdfSystemObjectType": "BenefitInsuranceCoverage",
"mdfSystemLastModifiedDateWithTZ": "/Date(1443089712000+0000)/",
"lastModifiedDateTime": "/Date(1443089712000+0000)/",
"coverageLevel": "Wordlwide Cover incl. Winter",
"amount": "15000",
"coverageName_nl_NL": null,
"mdfSystemRecordId": "B239102F458F42BCAB96F2C0D3D6234B",
"mdfSystemEntityId": "1BEB3323C16E4D7E91D8EEA976E27913",
"mdfSystemStatus": "A",
"coverageName_defaultValue": "Annual",
"coverageName_ja_JP": null,
Related Information
10.28 BenefitInsuranceProvider
This entity fetches the e insurance provider details. This entity is available under Insurance Plan portlet
Note
This API is read-only. To create or edit data, please use imports function.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
providerId Provider ID
Use Case
Request
Operation Query
URI https://<api-server>/odata/v2/
BenefitInsuranceProvider?$format=json&
$top=1
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitInsuranceProvider(2661L)",
"type": "SFOData.BenefitInsuranceProvider"
},
"providerId": "2661",
"mdfSystemLastModifiedDate": "/Date(1425525515000)/",
"contactPhone": "+4487989000982",
"mdfSystemObjectType": "BenefitInsuranceProvider",
"mdfSystemEffectiveEndDate": "/Date(253402214400000)/",
"mdfSystemVersionId": null,
"contactEmail": "[email protected]",
"mdfSystemLastModifiedDateWithTZ": "/Date(1425543515000+0000)/",
"lastModifiedDateTime": "/Date(1425543515000+0000)/",
"mdfSystemCreatedDate": "/Date(1425525504000)/",
"mdfSystemTransactionSequence": "1",
"mdfSystemRecordId": "43201A09918840F1B87D878FF128F94A",
"createdBy": "admin",
"providerName": "AIG",
"mdfSystemEntityId": "777611AD2B674B528C32082B9705AAA0",
"createdDateTime": "/Date(1425543504000+0000)/",
"lastModifiedBy": "admin",
"mdfSystemStatus": "A",
"mdfSystemEffectiveStartDate": "/Date(-2208988800000)/",
"mdfSystemLastModifiedBy": "admin",
"contactPerson": "Jaison",
"mdfSystemRecordStatus": "N",
"mdfSystemCreatedBy": "admin",
"usefulLinks": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitInsuranceProvider(2661L)/usefulLinks"
}
},
"policyDocuments": {
"__deferred": {
Related Information
10.29 BenefitInsuranceEnrolleeOptions
This entity fetches the employee enrollee options such as enrollee option name and dependent option. This entity
is available under Insurance Plan portlet.
Note
This API is read-only. To create or edit data, please use imports function.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
id Enrollee Options ID
Use Case:
Request
Operation Query
URI https://<api-server>/odata/v2/
BenefitInsuranceEnrolleeOptions?
$format=json&$top=1
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitInsuranceEnrolleeOptions(2662L)",
"type": "SFOData.BenefitInsuranceEnrolleeOptions"
},
"id": "2662",
"mdfSystemLastModifiedDate": "\/Date(1425525745000)\/",
"mdfSystemObjectType": "BenefitInsuranceEnrolleeOptions",
"mdfSystemEffectiveEndDate": "\/Date(253402214400000)\/",
"mdfSystemVersionId": null,
"enrolleeOptionsName": "Self+Family",
"mdfSystemLastModifiedDateWithTZ": "\/Date(1425543745000+0000)\/",
"lastModifiedDateTime": "\/Date(1425543745000+0000)\/",
"mdfSystemCreatedDate": "\/Date(1425525745000)\/",
"mdfSystemTransactionSequence": "1",
"dependentOption": "Self+Family",
"mdfSystemRecordId": "982370C227EC4F30857B4E75EE06E4C1",
"createdBy": "admin",
"mdfSystemEntityId": "C13F8D8D493D4207B714C69E6BB7F2DF",
"createdDateTime": "\/Date(1425543745000+0000)\/",
"lastModifiedBy": "admin",
"mdfSystemStatus": "A",
"mdfSystemEffectiveStartDate": "\/Date(-2208988800000)\/",
"mdfSystemLastModifiedBy": "admin",
"mdfSystemRecordStatus": "N",
"mdfSystemCreatedBy": "admin",
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitInsuranceEnrolleeOptions(2662L)/mdfSystemRecordStatusNav"
}
},
"enrolleType": {
Related Information
10.30 BenefitInsuranceRateChart
This entity fetches the rate chart details such as employee’s age, Insurance plan, factor, flat amount and per
dependent. This entity is available under Insurance Plan portlet.
Note
This API is read-only. To create or edit data, please use imports function.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
factor Factor
Use Case
Request
Operation Query
URI https://<api-server>/odata/v2/
BenefitInsuranceRateChart?$format=json&
$top=1
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitInsuranceRateChart(effectiveStartDate=datetime'2015-04-28T00:00:00',rateChart
Id='C20')",
"type": "SFOData.BenefitInsuranceRateChart"
},
"effectiveStartDate": "\/Date(1430179200000)\/",
"rateChartId": "C20",
"insurancePlan": "3943",
"mdfSystemLastModifiedDate": "\/Date(1438848870000)\/",
"mdfSystemObjectType": "BenefitInsuranceRateChart",
"mdfSystemEffectiveEndDate": "\/Date(253402214400000)\/",
"mdfSystemVersionId": null,
"mdfSystemLastModifiedDateWithTZ": "\/Date(1438863270000+0000)\/",
"lastModifiedDateTime": "\/Date(1438863270000+0000)\/",
"mdfSystemTransactionSequence": "1",
"currency": "BRL",
"mdfSystemRecordId": "174CBED54BCF48818B758CD287B3589B",
"ageAsOfYear": null,
Related Information
10.31 BenefitInsuranceRateChartEnrollee
This entity fetches the enrollee rate chart details. This entity is available under Insurance Rate Chart portlet.
Note
This API is read-only. To create or edit data, please use imports function.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
externalCode externalCode
Use Case
Request
Operation Query
URI https://<api-server>/odata/v2/
BenefitInsuranceRateChartEnrollee?
$format=json&$top=1
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitInsuranceRateChartEnrollee(BenefitInsuranceRateChart_effectiveStartDate=datet
ime'2015-03-05T00:00:00',BenefitInsuranceRateChart_rateChartId='Medical Plan
A',externalCode=2668L)",
"type": "SFOData.BenefitInsuranceRateChartEnrollee"
},
"BenefitInsuranceRateChart_rateChartId": "Medical Plan A",
"BenefitInsuranceRateChart_effectiveStartDate": "\/
Date(1425513600000)\/",
"externalCode": "2668",
"ageTo": "60",
"mdfSystemLastModifiedDate": "\/Date(1425526156000)\/",
"mdfSystemEffectiveEndDate": "\/Date(253402214400000)\/",
"mdfSystemObjectType": "BenefitInsuranceRateChartEnrollee",
"mdfSystemVersionId": null,
"mdfSystemLastModifiedDateWithTZ": "\/Date(1425544156000+0000)\/",
Related Information
10.32 BenefitInsuranceRateChartFixedAmount
This entity fetches the insurance rate chart with fixed amount.
Note
This API is read-only. To create or edit data, please use imports function.
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
externalCode externalCode
smoking Smoking
Use Case
Request
Operation Query
URI https://<api-server>/odata/v2/
BenefitInsuranceRateChartFixedAmount?
$format=json&$top=1
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitInsuranceRateChartFixedAmount(BenefitInsuranceRateChart_effectiveStartDate=da
tetime'2015-03-05T00:00:00',BenefitInsuranceRateChart_rateChartId='Medical Plan
A',externalCode=2667L)",
"type": "SFOData.BenefitInsuranceRateChartFixedAmount"
Related Information
10.33 BenefitInsuranceCoverageOptions
This entity fetches the employee’s insurance coverage options such coverage details and enrollment for details.
Coverage Details consists of coverage and rate chart information. Enrollment For consists of enrollee option name,
dependent option and dependent type. This entity is available under Insurance Plan portlet.
Note
This API is read-only. To create or edit data, please use imports function.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
externalCode externalCode
Use Case
Request
Operation Query
URI https://<api-server>/odata/v2/
BenefitInsuranceCoverageOptions?
$format=json&$top=1
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitInsuranceCoverageOptions(BenefitInsurancePlan_effectiveStartDate=datetime'201
5-03-05T00:00:00',BenefitInsurancePlan_id=2664L,externalCode=2665L)",
"type": "SFOData.BenefitInsuranceCoverageOptions"
},
"BenefitInsurancePlan_effectiveStartDate": "\/
Date(1425513600000)\/",
"externalCode": "2665",
"BenefitInsurancePlan_id": "2664",
"mdfSystemLastModifiedDate": "\/Date(1425527952000)\/",
"enrolleeOptions": "2662",
"mdfSystemObjectType": "BenefitInsuranceCoverageOptions",
"mdfSystemEffectiveEndDate": "\/Date(253402214400000)\/",
"mdfSystemVersionId": null,
"mdfSystemLastModifiedDateWithTZ": "\/Date(1425545952000+0000)\/",
"lastModifiedDateTime": "\/Date(1425545952000+0000)\/",
"mdfSystemCreatedDate": "\/Date(1425525792000)\/",
"mdfSystemTransactionSequence": "1",
"mdfSystemRecordId": "29309129560944A69F1786D1A6EA5270",
"createdBy": "admin",
"mdfSystemEntityId": "FD498B65E0C44131969392EF503E5D42",
"createdDateTime": "\/Date(1425543792000+0000)\/",
"lastModifiedBy": "admin",
"mdfSystemStatus": "A",
"mdfSystemEffectiveStartDate": "\/Date(-2208988800000)\/",
"mdfSystemLastModifiedBy": "admin",
"mdfSystemRecordStatus": "N",
"mdfSystemCreatedBy": "admin",
"enrolleeOptionsNav": {
"__deferred": {
Related Information
10.34 BenefitInsuranceCoverageDetails
This entity fetches the employee insurance coverage details such as coverage and rate chart. This entity is available
under Insurance Plan portlet.
Note
This API is read-only. To create or edit data, please use imports function.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
Use Case
Request
Operation Query
URI https://<api-server>/odata/v2/
BenefitInsuranceCoverageDetails?
$format=json&$top=1
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitInsuranceCoverageDetails(BenefitInsuranceCoverageOptions_externalCode=2665L,B
enefitInsurancePlan_effectiveStartDate=datetime'2015-03-05T00:00:00',BenefitInsuranc
ePlan_id=2664L,externalCode=2666L)",
"type": "SFOData.BenefitInsuranceCoverageDetails"
},
"BenefitInsuranceCoverageOptions_externalCode": "2665",
"BenefitInsurancePlan_effectiveStartDate": "\/
Date(1425513600000)\/",
"externalCode": "2666",
"BenefitInsurancePlan_id": "2664",
"mdfSystemLastModifiedDate": "\/Date(1425527952000)\/",
"mdfSystemEffectiveEndDate": "\/Date(253402214400000)\/",
"mdfSystemObjectType": "BenefitInsuranceCoverageDetails",
"mdfSystemVersionId": null,
"mdfSystemLastModifiedDateWithTZ": "\/Date(1425545952000+0000)\/",
Related Information
This entity fetches the employee insurance enrollee type details such as self, self+family, self+spouse. This entity is
available under Insurance Plan portlet.
Note
This API is read-only. To create or edit data, please use imports function.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
Use Case
Request
Operation Query
URI https://<api-server>/odata/v2/
BenefitInsuranceEnrolleeType?$format=json&
$top=1
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitInsuranceEnrolleeType(mdfSystemEffectiveStartDate=datetime'1900-01-01T00:00:0
0',relationShipType='2')",
"type": "SFOData.BenefitInsuranceEnrolleeType"
},
"relationShipType": "2",
"mdfSystemEffectiveStartDate": "\/Date(-2208988800000)\/",
"mdfSystemLastModifiedDate": "\/Date(1425525722000)\/",
"mdfSystemEffectiveEndDate": "\/Date(253402214400000)\/",
"mdfSystemObjectType": "BenefitInsuranceEnrolleeType",
"mdfSystemVersionId": null,
"mdfSystemLastModifiedDateWithTZ": "\/Date(1425543722000+0000)\/",
"lastModifiedDateTime": "\/Date(1425543722000+0000)\/",
"mdfSystemCreatedDate": "\/Date(1425525722000)\/",
"mdfSystemTransactionSequence": "1",
"mdfSystemRecordId": "8B742C5C791745FEAB0481E464E48CEB",
"createdBy": "admin",
"mdfSystemEntityId": "432103DBE8B64354A41EE26776B00996",
"createdDateTime": "\/Date(1425543722000+0000)\/",
"lastModifiedBy": "admin",
"mdfSystemStatus": "A",
"mdfSystemLastModifiedBy": "admin",
"mdfSystemRecordStatus": "N",
"mdfSystemCreatedBy": "admin",
"relationShipTypeNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitInsuranceEnrolleeType(mdfSystemEffectiveStartDate=datetime'1900-01-01T00:00:0
0',relationShipType='2')/relationShipTypeNav"
}
},
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitInsuranceEnrolleeType(mdfSystemEffectiveStartDate=datetime'1900-01-01T00:00:0
0',relationShipType='2')/mdfSystemRecordStatusNav"
}
},
"mdfSystemStatusNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitInsuranceEnrolleeType(mdfSystemEffectiveStartDate=datetime'1900-01-01T00:00:0
0',relationShipType='2')/mdfSystemStatusNav"
}
}
}
]
}
}
Related Information
This object is used to capture the Benefit Hyperlink Configuration to display hyperlinks on the Benefits Overview
page. It contains hyperlink configuration Id, hyperlink configuration name, and hyperlink configuration details.
Note
This API is read-only. To create or edit data, please use imports function.
Supported Operations
Query
Use Case
Request
Operation Query
URI https://<api-server>/odata/v2/
BenefitOverviewHyperlinkConfiguration?
$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitOverviewHyperlinkConfiguration",
"type": "SFOData. BenefitOverviewHyperlinkConfiguration "
},
"hyperlinkConfigurationId": "Benefits Hyperlink Configuration",
"hyperlinkConfigurationName": "Hyperlink Configuration",
"benefitOverviewHyperlinkDetails": "benefitHyperlinkDetailsList",
"createdBy": "admin",
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1496123038000+0000)/",
"lastModifiedDateTime": "/Date(1496123038000+0000)/",
"mdfSystemRecordStatus": "N",
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitOverviewHyperlinkConfiguration(/mdfSystemRecordStatusNav"
}
}
}
10.37 BenefitOverviewHyperlinkDetails
This Object is used to capture the Label, URL and the Eligibility rule for the Hyperlinks. The hyperlinks configured
will be displayed on the Benefits Overview page
Note
This API is read-only. To create or edit data, please use imports function.
Supported Operations
Query
Use Case
Request
Operation Query
URI https://<api-server>/odata/v2/
BenefitOverviewHyperlinkDetails/
$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/BenefitOverviewHyperlinkDetails",
"type": "SFOData.BenefitOverviewHyperlinkDetails"
},
"url": "https://www.website.com",
"label": "Website",
"eligibilityRule": "rule",
"createdBy": "admin",
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1496123038000+0000)/",
"lastModifiedDateTime": "/Date(1496123038000+0000)/",
"mdfSystemRecordStatus": "N",
10.38 BenefitProgramEnrollment
This entity contains the list of all of the benefit programs for which an employee is eligible.
Note
This API is read-only. To create or edit data, please use imports function.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
benefitProgramDataSourceWithExternalCode The list of all benefit programs for which employee is eligible.
effectiveEndDate The end date after which program enrollment is no longer ac
tive.
Navigation Properties
Use Case: Get the list of all the program enrollments for which the employee is
eligible
Request
Operation Query
URI https://<api-server>/odata/v2/BenefitProgramEnrollment
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitProgramEnrollment(effectiveStartDate=datetime'2019-01-01T00:00:00',id=278687L
)",
"type": "SFOData.BenefitProgramEnrollment"
},
"effectiveStartDate": "/Date(1546300800000)/",
"id": "278687",
"effectiveEndDate": "/Date(253402214400000)/",
"exception": null,
"benefitProgramDataSourceWithExternalCode": "11",
"mdfSystemLastModifiedDateWithTZ": "/Date(1540188096000+0000)/",
"lastModifiedDateTime": "/Date(1540188096000+0000)/",
"mdfSystemCreatedBy": "sriadmin",
"enrollmentDate": "/Date(1540166400000)/",
"createdDateTime": "/Date(1540188096000+0000)/",
"mdfSystemVersionId": null,
"mdfSystemLastModifiedBy": "sriadmin",
"externalName": "SF_AUS_3_RR_1811_Benefit_Program_10222018_060136",
"mdfSystemEntityId": "8F782F4A31394AC08A62303C3B808CCD",
"benefitProgram": "11",
"mdfSystemObjectType": "BenefitProgramEnrollment",
"workerId": "SF_AUS_3",
"mdfSystemLastModifiedDate": "/Date(1540188096000)/",
"lastModifiedBy": "sriadmin",
"programEntitlementAmount": "100",
"programAmount": "1",
Related Information
10.39 BenefitProgram
This entity is a bucket or pool that contains more than one benefit.
Note
This API is read-only. To create or edit data, please use imports function.
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
Navigation Properties
Use Case: get the list of all benefit programs in the system
Request
Operation Query
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitProgram(effectiveStartDate=datetime'2021-01-01T00:00:00',programId='BP2111')"
,
"type": "SFOData.BenefitProgram"
},
"effectiveStartDate": "/Date(1609459200000)/",
"programId": "BP2111",
"lastModifiedDateTime": "/Date(1630392380000+0000)/",
"mdfSystemEffectiveEndDate": "/Date(253402214400000)/",
"createdDateTime": "/Date(1630390725000+0000)/",
"programName": "BP2111",
"currency": "USD",
"exceptionWorkflowId": null,
"multipleSelectionAllowed": false,
"programSchedule": "9999",
"amount": null,
"lastModifiedBy": "sriadmin",
"eligibilityRuleId": null,
"mdfSystemRecordStatus": "N",
"supressClientDateValidation": false,
"programEnrollmentWorkflowId": null,
"createdBy": "sriadmin",
"status": null,
"benefits": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitProgram(effectiveStartDate=datetime'2021-01-01T00:00:00',programId='BP2111')/
benefits"
}
},
"programEnrollmentWorkflowIdNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitProgram(effectiveStartDate=datetime'2021-01-01T00:00:00',programId='BP2111')/
programEnrollmentWorkflowIdNav"
}
},
"policyDocuments": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitProgram(effectiveStartDate=datetime'2021-01-01T00:00:00',programId='BP2111')/
policyDocuments"
}
},
"createdByNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitProgram(effectiveStartDate=datetime'2021-01-01T00:00:00',programId='BP2111')/
createdByNav"
}
},
"statusNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitProgram(effectiveStartDate=datetime'2021-01-01T00:00:00',programId='BP2111')/
statusNav"
}
10.40 BenefitSavingsPlanEnrollmentDetails
This object is used to capture the annual and per pay period contribution amounts of the employee for Savings
Plan benefit. It contains the annual and per pay period contribution amounts of the employee, the minimum and
maximum contribution amounts.
Note
This API is read-only. To create or edit data, please use imports function.
Supported Operations
Query
Use Case
Request
Operation Query
URI http://<api-server>/odata/v2/
BenefitSavingsPlanEnrollmentDetails?
$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitSavingsPlanEnrollmentDetails(BenefitEnrollment_effectiveStartDate=datetime'20
18-03-23T00:00:00',BenefitEnrollment_id=25292L,id=25293L)",
"type": "SFOData.BenefitSavingsPlanEnrollmentDetails"
},
"id": "25293",
"BenefitEnrollment_id": "25292",
"BenefitEnrollment_effectiveStartDate": "/Date(1521763200000)/",
"annualMaxContributionAmount": "12",
This object is used to capture the catchup contribution details for the Health Savings Account Savings Plan benefit.
Note
This API is read-only. To create or edit data, please use imports function.
Supported Operations
Query
Use Case
Request
Operation Query
URI https://<api-server>/odata/v2/
BenefitSavingsPlanCatchUpDetail(effectiveS
tartDate=datetime'2017-10-02T00:00:00',id=
694L)?$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/BenefitSavingsPlanCatchUpDetail",
"type": "SFOData.BenefitSavingsPlanCatchUpDetail"
},
"id": "2L",
"payComponent": "BasicPay",
"createdBy": "admin",
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1496123038000+0000)/",
"lastModifiedDateTime": "/Date(1496123038000+0000)/",
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/BenefitSavingsPlanCatchUpDetail/
mdfSystemRecordStatusNav"
}
}
}
]
}
}
This object is used to capture the Employee's Contingent Beneficiaries for the Savings Plan
Note
This API is read-only. To create or edit data, please use imports function.
Supported Operations
Query
Use Case
Request
Operation Query
URI https://<api-server>/odata/v2/
BenefitSavingsPlanContingentBeneficiary(id
=694L)?$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitSavingsPlanContingentBeneficiary",
"type": "SFOData.BenefitSavingsPlanContingentBeneficiary"
},
"id": "2L",
"createdBy": "admin",
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1496123038000+0000)/",
"lastModifiedDateTime": "/Date(1496123038000+0000)/",
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitSavingsPlanContingentBeneficiary/mdfSystemRecordStatusNav"
}
}
}
]
}
}
This object is used to capture the Employer Contribution details for the Health Savings Account Savings Plan
benefit.
Note
This API is read-only. To create or edit data, please use imports function.
Supported Operations
Query
Use Case
Request
Operation Query
URI https://<api-server>/odata/v2/
BenefitSavingsPlanERContributionConfigDeta
il(effectiveStartDate=datetime'2017-10-02T
00:00:00',id=694L)?$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitSavingsPlanERContributionConfigDetail",
"type": "SFOData.BenefitSavingsPlanERContributionConfigDetail"
},
"id": "2L",
"payComponent": "BasicPay",
"createdBy": "admin",
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1496123038000+0000)/",
"lastModifiedDateTime": "/Date(1496123038000+0000)/",
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitSavingsPlanERContributionConfigDetail(/mdfSystemRecordStatusNav"
}
}
}
]
10.44 BenefitSavingsPlanERContributionConfig
This object is used to capture the Employer Contribution details for the Health Savings Account Savings Plan
benefit.
Note
This API is read-only. To create or edit data, please use imports function.
Supported Operations
Query
Use Case
Request
Operation Query
URI https://<api-server>/odata/v2/
BenefitSavingsPlanERContributionConfig(eff
ectiveStartDate=datetime'2017-10-02T00:00:
00',id=694L)?$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitSavingsPlanERContributionConfig",
"type": "SFOData.BenefitSavingsPlanERContributionConfig"
},
"id": "2L",
"payComponent": "BasicPay",
"createdBy": "admin",
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1496123038000+0000)/",
"lastModifiedDateTime": "/Date(1496123038000+0000)/",
"mdfSystemRecordStatusNav": {
"__deferred": {
10.45 BenefitSavingsPlanPrimaryBeneficiary
This object is used to capture the Employee's Primary Beneficiaries for the Savings Plan
Note
This API is read-only. To create or edit data, please use imports function.
Supported Operations
Query
Use Case
Request
Operation Query
URI https://<api-server>/odata/v2/
BenefitSavingsPlanPrimaryBeneficiary(id=69
4L)?$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitSavingsPlanPrimaryBeneficiary",
"type": "SFOData.BenefitSavingsPlanPrimaryBeneficiary"
},
"id": "2L",
"createdBy": "admin",
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1496123038000+0000)/",
10.46 BenefitSavingsPlanTierConfiguration
This object is used to capture the Tier related contribution details for the Health Savings Account Savings Plan
benefit.
Note
This API is read-only. To create or edit data, please use imports function.
Supported Operations
Query
Use Case
Request
Operation Query
URI https://<api-server>/odata/v2/
BenefitSavingsPlanTierConfiguration(effect
iveStartDate=datetime'2017-10-02T00:00:00'
,id=694L)?$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitSavingsPlanTierConfiguration",
"type": "SFOData.BenefitSavingsPlanTierConfiguration"
10.47 BenefitSchedulePeriod
This is used for defining a period (set of dates) within which a particular benefit and claim is available for enrollment
and eligible for an employee.
Note
This API is read-only. To create or edit data, please use imports function.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
Use Case: Get details of the benefit schedule periods in the system
Request
Operation Query
URI https://<api-server>/odata/v2/
BenefitSchedulePeriod
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitSchedulePeriod('2019')",
"type": "SFOData.BenefitSchedulePeriod"
},
"id": "2019",
"balanceCarryForwardUptoDate": null,
"claimWindowEndDate": null,
"lastModifiedDateTime": "/Date(1635247779000+0000)/",
"enrollmentValidityEndDate": "/Date(1672444800000)/",
"lastModifiedBy": "ecadmin",
"claimWindowStartDate": null,
"createdDateTime": "/Date(1550471720000+0000)/",
"periodName": "2019_21",
"mdfSystemRecordStatus": "N",
"enrollmentWindowStartDate": "/Date(1546300800000)/",
"enrollmentWindowEndDate": "/Date(1640908800000)/",
"createdBy": "sriadmin",
"enrollmentEffectiveFrom": "/Date(1640995200000)/",
"createdByNav": {
"__deferred": {
Related Information
10.48 BenefitSchedules
This entity is used for grouping two or more schedule periods. BenefitSchedules is required for allowances and
reimbursements. It defines the time period, by date, that an employee can enroll for and claim a benefit.
Note
This API is read-only. To create or edit data, please use imports function.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
Request
Operation Query
URI https://<api-server>/odata/v2/
BenefitSchedule
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitSchedules('2019_21')",
"type": "SFOData.BenefitSchedules"
},
"id": "2019_21",
"scheduleName": "2019_21",
"lastModifiedDateTime": "/Date(1627613647000+0000)/",
"lastModifiedBy": "adminb1",
"createdDateTime": "/Date(1550471730000+0000)/",
"mdfSystemRecordStatus": "N",
"createdBy": "sriadmin",
Related Information
10.49 BenefitEffectiveDate
This entity contains the details of the benefit and the effective from rule for the respective benefit. This is used to
configure the benefit and the effective from date rule the benefit.
Note
This API is read-only. To create or edit data, please use imports function.
Supported Operations
Query
Request
Operation Query
URI https://<api-server>/odata/v2/
BenefitEffectiveDateConfiguration(effectiv
eStartDate=datetime'2017-10-02T00:00:00',i
d=694L)?$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitEffectiveDateConfiguration",
"type": "SFOData. BenefitEffectiveDateConfiguration"
},
"benefit": "Benefit",
"rule": "Rule",
"parent": "BenefitLifeEventConfiguration",
"effectiveStartDate": "/Date(1496016000000)/",
"createdBy": "admin",
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1496123038000+0000)/",
"lastModifiedDateTime": "/Date(1496123038000+0000)/",
"mdfSystemRecordStatus": "N",
"benefitNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitEffectiveDateConfiguration/benefitNav"
},
"ruleNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitEffectiveDateConfiguration/ruleNav"
},
"parentNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitEffectiveDateConfiguration/parentNav"
},
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitEffectiveDateConfiguration(/mdfSystemRecordStatusNav"
}
}
}
}
}
}
]
}
}
This entity contains the details of Event like EventId and EventName for Benefit Event. This is used to configure a
benefit event.
Note
This API is read-only. To create or edit data, please use imports function.
Supported Operations
Query
Use Case
Request
Operation Query
URI https://<api-server>/odata/v2/
BenefitEvent(effectiveStartDate=datetime'2
017-10-02T00:00:00',id=694L)?$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/BenefitEvent",
"type": "SFOData. BenefitEvent"
},
"eventCode": "Newhireevent",
"eventId": "NEW HIRE",
"effectiveStartDate": "/Date(1496016000000)/",
"eventName": "newHire",
"createdBy": "admin",
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1496123038000+0000)/",
"lastModifiedDateTime": "/Date(1496123038000+0000)/",
"mdfSystemRecordStatus": "N",
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/BenefitEvent(/
mdfSystemRecordStatusNav"
}
}
}
Related Information
10.51 BenefitLifeEvent
This entity contains the details of the Benefit Event, Legal Entity and Exception Window Rule for Life Event
Configuration. This is used to configure Life Event Configuration for particular legal Entity and will be used for
creating exception for particular user.
Note
This API is read-only. To create or edit data, please use imports function.
Supported Operations
Query
Use Case
Request
Operation Query
URI https://<api-server>/odata/v2/
BenefitLifeEventConfiguration(effectiveSta
rtDate=datetime'2017-10-02T00:00:00',id=69
4L)/$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
10.52 BenefitDeductibleAllowanceEnrollment
This object is used to capture the employee and employer contribution details for Deductible Allowance
Enrollment. It contains the employee and employer contributions and respective pay components.
Note
This API is read-only. To create or edit data, please use imports function.
Query
Request
Operation Query
URI https://<api-server>/odata/v2/
BenefitDeductibleAllowanceEnrollment(effec
tiveStartDate=datetime'2017-10-02T00:00:00
',id=694L)?$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitDeductibleAllowanceEnrollment",
"type": "SFOData. BenefitDeductibleAllowanceEnrollment"
},
"id": "2L",
"employeeContribution": "1000",
"employerContribution": "1500",
"employeeContributionPayComponent": "PayComponent",
"employerContributionPayComponent": "PayComponent",
"createdBy": "admin",
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1496123038000+0000)/",
"lastModifiedDateTime": "/Date(1496123038000+0000)/",
"mdfSystemRecordStatus": "N",
"employeeContributionPayComponentNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitDeductibleAllowanceEnrollment/employeeContributionPayComponentNav "
},
"employerContributionPayComponentNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitDeductibleAllowanceEnrollment/employerContributionPayComponentNav "
},
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitDeducibleAllowanceEnrollment(/mdfSystemRecordStatusNav"
}
}
}
}
}
]
10.53 BenefitsIntegrationRecurringInfo
This entity contains Benefit Recurring amounts that aren’t payments or deductions such as Employer contribution
and Fixed amount imputed income. This can be used to replicate or integrate the benefit recurring amounts to the
payroll system.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
externalCode The object is populated from code and hence external code is
filled with UUID.
Request
Operation Query
URI https://<api-server>/odata/v2/public/
BenefitsIntegrationRecurringInfo?$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitsIntegrationRecurringInfo(id='26ADEA5250C94889B7F12A2CF3166DC7',payCompBeginD
ate=datetime'2019-09-16T00:00:00')",
"type": "SFOData.BenefitsIntegrationRecurringInfo"
},
"payCompBeginDate": "/Date(1568592000000)/",
"id": "26ADEA5250C94889B7F12A2CF3166DC7",
"lastModifiedDateTime": "/Date(1568484360000+0000)/",
"benefitSchedulePeriod": "25219",
"createdDateTime": "/Date(1568484360000+0000)/",
"frequency": "ANN",
"reference": null,
"externalName":
"admin_InsuranceTestmanual_INSURANCE_EMPLOYER_CONTRIBUTION",
"currency": "USD",
"value": "10000",
"payComponent": "HR-UK",
"workerId": "admin",
"unitOfMeasure": null,
"lastModifiedBy": "admin",
"benefit": "37776",
"benefitEnrollment": "E08DA731378B418299B0607A69C1FE37",
"payCompEndDate": "/Date(1568678400000)/",
"recordStatus": "N",
"createdBy": "admin",
"category": "INSURANCE_EMPLOYER_CONTRIBUTION",
"createdByNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitsIntegrationRecurringInfo(id='26ADEA5250C94889B7F12A2CF3166DC7',payCompBeginD
ate=datetime'2019-09-16T00:00:00')/createdByNav"
}
},
"frequencyNav": {
"__deferred": {
10.54 ConfigurationProcessingLogDetails
This entity contains Processing Log Details Id, Benefit, Enrollment Id, Exception Id, Processed Status and
Processed Result Detail. This entity is used to log the details of processing Benefits under the details logs of
processed benefit event.
Note
This API is read-only. To create or edit data, please use imports function.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Navigation Properties
Request
Operation Query
URI https://<API-Server>/odata/v2/
ConfigurationProcessingLogDetails?$format=json
Response
"d": {
"results": [{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
ConfigurationProcessingLogDetails",
"type": "SFOData.ConfigurationProcessingLogDetails"
},
"processingLogDetailsId": "processingLogDetailsId1",
"benefit": "benefit1",
"enrollmentId": "enrollmentId1",
"exceptionId": "exceptionId1",
"processedStatus": "SUCCESS",
"processedResultDetail": "success",
"mdfSystemRecordStatus": "N",
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
ConfigurationProcessingLogDetails(/mdfSystemRecordStatusNav"
}
}
}]
}
}
10.55 EventDeterminationRuleConfiguration
This entity contains Benefit Events Determination Rule, Apply Rule to All Legal Entities and Applicable Legal
Entities. This object is used to configure the rule for Benfits Event Dtetermination.
Note
This API is read-only. To create or edit data, please use imports function.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Navigation Properties
Use Case
Request
Operation Query
URI https://<API-Server>/odata/v2/
EventDeterminationRuleConfiguration?$format=json
Response
"d": {
"results": [{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
EventDeterminationRuleConfiguration ",
"type": "SFOData.EventDeterminationRuleConfiguration "
},
"benefitEventRule": "benefitEventRule1",
"eventRuleApplicableFor": "ALL_LEGAL_ENTITIES",
"legalEntityListForEventRule": "legalEntityListForEventRule1",
"mdfSystemRecordStatus": "N",
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
EventDeterminationRuleConfiguration(/mdfSystemRecordStatusNav"
}
}
}]
}
}
This entity provides ability for the user to create, modify, or delete EmployeeDismissalProtection entity. It also
provides the ability to link the EmployeeDismissalProtection to EmployeeDismissalProtectionDetail.
Note
This API is read-only. To create or edit data, please use imports function.
Supported Operations
Request
Operation Query
Response
{
"d": {
"__metadata": {
"uri": "https://<api-server>/odata/v2/restricted/
EmployeeDismissalProtection('SouzaB')",
"type": "SFOData.EmployeeDismissalProtection"
},
"workerId": "SouzaB",
"createdBy": "sriadmin",
"lastModifiedBy": "sriadmin",
"createdDateTime": "/Date(1539065659000+0000)/",
"lastModifiedDateTime": "/Date(1539065718000+0000)/",
"mdfSystemRecordStatus": "N",
"wfRequestNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/restricted/
EmployeeDismissalProtection('SouzaB')/wfRequestNav"
}
},
"workerIdNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/restricted/
EmployeeDismissalProtection('SouzaB')/workerIdNav"
}
},
"empDismissalProtectionDetails": {
Request
Operation Query
URI http://<api-server>/odata/v2/upsert
Payload {
"__metadata": {
"uri": "https://<api-
server>/odata/v2/restricted/
EmployeeDismissalProtection('fdgg45')",
"type":
"SFOData.EmployeeDismissalProtection"
},
"workerId": "fdgg45"
}
Response
This entity provides ability for the user to create, modify or delete EmployeeDismissalProtectionDetail entity.
Note
This API is read-only. To create or edit data, please use imports function.
Supported Operations
Request
Operation Query
URI https://<api-server>/odata/v2/
EmployeeDismissalProtectionDetail?
$filter=EmployeeDismissalProtection_worker
Id eq 'SouzaB'
Response
Sample Code
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/restricted/
EmployeeDismissalProtectionDetail(EmployeeDismissalProtection_workerId='SouzaB',e
xternalCode='80A2D2A19694440CB1261E3D91629AEC')",
"type": "SFOData.EmployeeDismissalProtectionDetail"
},
"EmployeeDismissalProtection_workerId": "SouzaB",
"externalCode": "80A2D2A19694440CB1261E3D91629AEC",
"protectionStartDate": "/Date(1483228800000)/",
"createdBy": "sriadmin",
"lastModifiedBy": "sriadmin",
"createdDateTime": "/Date(1539065718000+0000)/",
"lastModifiedDateTime": "/Date(1539065718000+0000)/",
"dismissalProtectionType": "Military Service1",
"protectionEndDate": "/Date(1514678400000)/",
"mdfSystemRecordStatus": "N",
Request
Operation Query
URI http://<api-server>/odata/v2/upsert
"EmployeeDismissalProtection_workerId":
"SouzaB",
"protectionStartDate":
"/Date(1483228800000)/",
"dismissalProtectionType": "Military
Service1",
"protectionEndDate": "/
Date(1514677700000)/"
}
Response
10.58 EmployeeSeniority
This object is used to maintain the seniority details of the employee. Seniority details includes Seniority Type,
Seniority Years, Seniority Months and Seniority Days.
Note
This API is read-only. To create or edit data, please use imports function.
Query
Use Case
Request
Operation Query
URI https://<api-server>/odata/v2/
EmployeeSeniority(effectiveStartDate=datetime'2017-10-02T00
:00:00',id=694L)/$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/ EmployeeSeniority",
"type": "SFOData. EmployeeSeniority"
},
"user": "user",
"validOn": "/Date(1496016000000)/",
"seniorityType": "SeniorityType",
"seniorityYears": "5L",
"seniorityMonths": "2L",
"seniorityDays": "10L",
"createdBy": "admin",
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1496123038000+0000)/",
"lastModifiedDateTime": "/Date(1496123038000+0000)/",
"mdfSystemRecordStatus": "N",
"seniorityTypeNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/EmployeeSeniority/
seniorityTypeNav "
},
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/EmployeeSeniority(/
mdfSystemRecordStatusNav"
}
}
}
}
]
}
}
This entity contains information about the matching employee and employer contribution percentages for pension
plan type Workplace.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
employeeWithEmployerMatchContributionEntri This field returns composite child association which holds the
es list of employee employer matching contribution percentage
entries.
This example shows how to get all the EmployeeWithEmployerMatchContributions objects created in the system.
Request
Operation Query
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
EmployeeWithEmployerMatchContributions(configurationId='EE_ER_MATCH1',effectiveStart
Date=datetime'2021-01-01T00:00:00')",
"type": "SFOData.EmployeeWithEmployerMatchContributions"
},
"effectiveStartDate": "/Date(1609459200000)/",
"configurationId": "EE_ER_MATCH1",
"effectiveEndDate": "/Date(253402214400000)/",
"lastModifiedDateTime": "/Date(1612385958000+0000)/",
"lastModifiedBy": "admin",
"configurationName": "EE_ER_MATCH1",
"createdDateTime": "/Date(1612385910000+0000)/",
"mdfSystemRecordStatus": "N",
"createdBy": "admin",
"createdByNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
EmployeeWithEmployerMatchContributions(configurationId='EE_ER_MATCH1',effectiveStart
Date=datetime'2021-01-01T00:00:00')/createdByNav"
}
},
"wfRequestNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
EmployeeWithEmployerMatchContributions(configurationId='EE_ER_MATCH1',effectiveStart
Date=datetime'2021-01-01T00:00:00')/wfRequestNav"
}
},
"lastModifiedByNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
EmployeeWithEmployerMatchContributions(configurationId='EE_ER_MATCH1',effectiveStart
Date=datetime'2021-01-01T00:00:00')/lastModifiedByNav"
}
},
"employeeWithEmployerMatchContributionEntries": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
EmployeeWithEmployerMatchContributions(configurationId='EE_ER_MATCH1',effectiveStart
Date=datetime'2021-01-01T00:00:00')/employeeWithEmployerMatchContributionEntries"
}
},
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
EmployeeWithEmployerMatchContributions(configurationId='EE_ER_MATCH1',effectiveStart
Date=datetime'2021-01-01T00:00:00')/mdfSystemRecordStatusNav"
}
}
}
]
}
}
This entity contains a single set of contribution values that matches one employee contribution percentage with
the corresponding employer contribution percentage for pension plan type Workplace. An instance of this entity is
a single entry in the parent entity EmployeeWithEmployerMatchContributions.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
Use Case: Get the Employee and Employer Matching Contribution Entries
This example shows how to get all the employee and employer matching contribution entries.
Request
Operation Query
URI https://<api-server>/odata/v2/
EmployeeWithEmployerMatchContributionEntries?$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
EmployeeWithEmployerMatchContributionEntries(EmployeeWithEmployerMatchContributions_
configurationId='EE_ER_MATCH1',EmployeeWithEmployerMatchContributions_effectiveStart
Date=datetime'2021-01-01T00:00:00',eeERMatchValuesID='9CCA5BF86F59405481D3D08F3D5198
D0')",
"type": "SFOData.EmployeeWithEmployerMatchContributionEntries"
},
"EmployeeWithEmployerMatchContributions_configurationId": "EE_ER_MATCH1",
"EmployeeWithEmployerMatchContributions_effectiveStartDate": "/
Date(1609459200000)/",
"eeERMatchValuesID": "9CCA5BF86F59405481D3D08F3D5198D0",
"eeContributionPercentage": "2.67",
"lastModifiedDateTime": "/Date(1612385958000+0000)/",
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1612385910000+0000)/",
"mdfSystemRecordStatus": "N",
"isDefault": true,
"createdBy": "admin",
"erContributionPercentage": "4",
"createdByNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
EmployeeWithEmployerMatchContributionEntries(EmployeeWithEmployerMatchContributions_
configurationId='EE_ER_MATCH1',EmployeeWithEmployerMatchContributions_effectiveStart
Date=datetime'2021-01-01T00:00:00',eeERMatchValuesID='9CCA5BF86F59405481D3D08F3D5198
D0')/createdByNav"
}
},
"lastModifiedByNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
EmployeeWithEmployerMatchContributionEntries(EmployeeWithEmployerMatchContributions_
configurationId='EE_ER_MATCH1',EmployeeWithEmployerMatchContributions_effectiveStart
Date=datetime'2021-01-01T00:00:00',eeERMatchValuesID='9CCA5BF86F59405481D3D08F3D5198
D0')/lastModifiedByNav"
}
},
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
EmployeeWithEmployerMatchContributionEntries(EmployeeWithEmployerMatchContributions_
configurationId='EE_ER_MATCH1',EmployeeWithEmployerMatchContributions_effectiveStart
Date=datetime'2021-01-01T00:00:00',eeERMatchValuesID='9CCA5BF86F59405481D3D08F3D5198
D0')/mdfSystemRecordStatusNav"
}
}
},
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
EmployeeWithEmployerMatchContributionEntries(EmployeeWithEmployerMatchContributions_
configurationId='EE_ER_MATCH1',EmployeeWithEmployerMatchContributions_effectiveStart
Date=datetime'2021-01-01T00:00:00',eeERMatchValuesID='13324D486F93453EA77EFDF2842B18
50')",
10.61 LegalEntityListForEventRule
This entity contains only Legal Entity. This entity is to configure all the Legal Entities associated to a Benefit Event in
Benfits Event Determination.
Note
This API is read-only. To create or edit data, please use imports function.
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Navigation Properties
Use Case
Request
Operation Query
URI https://<api-server>/odata/v2/LegalEntityListForEventRule?
$format=json
Response
"d": {
"results": [{
"__metadata": {
"uri": "https://<api-server>/odata/v2/LegalEntityListForEventRule",
"type": "SFOData.LegalEntityListForEventRule"
},
"legalEntity": "legalEntity1",
"mdfSystemRecordStatus": "N",
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/LegalEntityListForEventRule(/
mdfSystemRecordStatusNav"
}
}
}]
}
}
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
This example shows how to get all the BenefitPensionMinMaxContributionLimits objects created in the system.
Request
Operation Query
URI https://<api-server>/odata/v2/
BenefitPensionMinMaxContributionLimits?$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitPensionMinMaxContributionLimits(configurationTableId='MINMAX',effectiveStartD
ate=datetime'2021-01-01T00:00:00')",
"type": "SFOData.BenefitPensionMinMaxContributionLimits"
},
"effectiveStartDate": "/Date(1609459200000)/",
"configurationTableId": "MINMAX",
"effectiveEndDate": "/Date(253402214400000)/",
"lastModifiedDateTime": "/Date(1622009350000+0000)/",
"eeDefaultPercentage": null,
"configurationTableName": "MINMAXCONFIG",
"createdDateTime": "/Date(1622009350000+0000)/",
"eeMaxContributionAmount": null,
"erMaxContributionAmount": null,
"eeMinContributionPercentage": "10",
"eeMinContributionAmount": "150",
10.63 BenefitPensionAdditionalContributionLimits
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
effectiveStartDate This field returns the effective start date of the configured ob
ject.
minAdditionalContributionAmount This field returns the minimum or lower limit of Additional Vol
untary Contribution for the employee.
maxAdditionalContributionAmount This field returns the maximum or upper limit of Additional Vol
untary Contribution for the employee.
This example show how to get all the BenefitPensionAdditionalContributionLimits objects created in the system.
Request
Operation Query
URI https://<api-server>/odata/v2/
BenefitPensionAdditionalContributionLimits?$format=json
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
BenefitPensionAdditionalContributionLimits(contributionLimitId='AVC',effectiveStartD
ate=datetime'2021-01-01T00:00:00')",
"type": "SFOData.BenefitPensionAdditionalContributionLimits"
},
"contributionLimitId": "AVC",
"effectiveStartDate": "/Date(1609459200000)/",
"effectiveEndDate": "/Date(253402214400000)/",
"lastModifiedDateTime": "/Date(1624364816000+0000)/",
"contributionLimitName": "AVC",
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1624364816000+0000)/",
"mdfSystemRecordStatus": "N",
"minAdditionalContributionAmount": "10",
"maxAdditionalContributionAmount": "10",
"createdBy": "admin",
"currency": "USD",
"currencyNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitPensionAdditionalContributionLimits(contributionLimitId='AVC',effectiveStartD
ate=datetime'2021-01-01T00:00:00')/currencyNav"
}
},
"createdByNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitPensionAdditionalContributionLimits(contributionLimitId='AVC',effectiveStartD
ate=datetime'2021-01-01T00:00:00')/createdByNav"
}
},
"wfRequestNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitPensionAdditionalContributionLimits(contributionLimitId='AVC',effectiveStartD
ate=datetime'2021-01-01T00:00:00')/wfRequestNav"
}
},
"lastModifiedByNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitPensionAdditionalContributionLimits(contributionLimitId='AVC',effectiveStartD
ate=datetime'2021-01-01T00:00:00')/lastModifiedByNav"
}
},
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
BenefitPensionAdditionalContributionLimits(contributionLimitId='AVC',effectiveStartD
ate=datetime'2021-01-01T00:00:00')/mdfSystemRecordStatusNav"
}
}
}
]
}
}
The PensionBandingConfiguration parent entity contains the configuration details of the bands based on
payroll pensionable earnings. The entity is supported only for the pension/retirement plan type Workplace with
contribution options as Payroll Pensionable Earnings.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
pensionBandingConfigurationDetails This field represents the entity that contains the contribution
guidelines based on the bands.
This example shows how to get all the PensionBandingConfiguration entries from the system.
Request
Operation Query
URI https://<api-server>/odata/v2/PensionBandingConfiguration?
$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
PensionBandingConfiguration(bandingConfigurationId='123',effectiveStartDate=datetime
'2021-07-22T00:00:00')",
"type": "SFOData.PensionBandingConfiguration"
},
"effectiveStartDate": "/Date(1626912000000)/",
"bandingConfigurationId": "123",
"lastModifiedDateTime": "/Date(1626953796000+0000)/",
"lastModifiedBy": "admin",
"mdfSystemEffectiveEndDate": "/Date(253402214400000)/",
"createdDateTime": "/Date(1626953796000+0000)/",
"mdfSystemRecordStatus": "N",
"createdBy": "admin",
"bandingConfigurationName": "123",
"createdByNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
PensionBandingConfiguration(bandingConfigurationId='123',effectiveStartDate=datetime
'2021-07-22T00:00:00')/createdByNav"
}
},
"pensionBandingConfigurationDetails": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
PensionBandingConfiguration(bandingConfigurationId='123',effectiveStartDate=datetime
'2021-07-22T00:00:00')/pensionBandingConfigurationDetails"
}
},
"wfRequestNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
PensionBandingConfiguration(bandingConfigurationId='123',effectiveStartDate=datetime
'2021-07-22T00:00:00')/wfRequestNav"
}
},
"lastModifiedByNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
PensionBandingConfiguration(bandingConfigurationId='123',effectiveStartDate=datetime
'2021-07-22T00:00:00')/lastModifiedByNav"
}
},
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
PensionBandingConfiguration(bandingConfigurationId='123',effectiveStartDate=datetime
'2021-07-22T00:00:00')/mdfSystemRecordStatusNav"
}
}
}
]
}
}
The PensionBandingConfigurationDetails entity contains upper and lower band values and the respective
employee and employer contribution percentages for each entry.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
employeePercentage This field represents the employee percentage value for corre
sponding band.
employerPercentage This field represents the employer percentage value for corre
sponding band.
This example shows how to get all the PensionBandingConfigurationDetails entries from the system.
Request
Operation Query
URI https://<api-server>/odata/v2/
PensionBandingConfigurationDetails?$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
PensionBandingConfigurationDetails(PensionBandingConfiguration_bandingConfigurationI
d='123',PensionBandingConfiguration_effectiveStartDate=datetime'2021-07-22T00:00:00'
,bandingDetailsId='601093505ADF48C7BCE7C612C6CAADFE')",
"type": "SFOData.PensionBandingConfigurationDetails"
},
"PensionBandingConfiguration_effectiveStartDate": "/Date(1626912000000)/",
"bandingDetailsId": "601093505ADF48C7BCE7C612C6CAADFE",
"PensionBandingConfiguration_bandingConfigurationId": "123",
"lastModifiedDateTime": "/Date(1626953796000+0000)/",
"employeePercentage": "100",
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1626953796000+0000)/",
"mdfSystemRecordStatus": "N",
"lowerBandValue": "100",
"upperBandValue": "200",
"createdBy": "admin",
"employerPercentage": "100",
"createdByNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
PensionBandingConfigurationDetails(PensionBandingConfiguration_bandingConfigurationI
d='123',PensionBandingConfiguration_effectiveStartDate=datetime'2021-07-22T00:00:00'
,bandingDetailsId='601093505ADF48C7BCE7C612C6CAADFE')/createdByNav"
}
},
"lastModifiedByNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
PensionBandingConfigurationDetails(PensionBandingConfiguration_bandingConfigurationI
d='123',PensionBandingConfiguration_effectiveStartDate=datetime'2021-07-22T00:00:00'
,bandingDetailsId='601093505ADF48C7BCE7C612C6CAADFE')/lastModifiedByNav"
}
},
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
PensionBandingConfigurationDetails(PensionBandingConfiguration_bandingConfigurationI
d='123',PensionBandingConfiguration_effectiveStartDate=datetime'2021-07-22T00:00:00'
,bandingDetailsId='601093505ADF48C7BCE7C612C6CAADFE')/mdfSystemRecordStatusNav"
}
}
}
]
}
}
The IRSPremiumTable entity contains the age bracket for imputed income calculation for excess coverage along
with exempt amount and factor. The IRS table is the basis for the imputed income calculation with monthly rates.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
imputedCostForAgeRanges This field represents the imputed cost for age ranges.
This example shows how to get all the IRS Premium Table entries.
Request
Operation Query
URI https://<api-server>/odata/v2/IRSPremiumTable?$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
IRSPremiumTable(configurationId='123',effectiveStartDate=datetime'2021-07-19T00:00:0
0')",
"type": "SFOData.IRSPremiumTable"
},
"effectiveStartDate": "/Date(1626652800000)/",
"configurationId": "123",
"ageVerificationMonth": null,
"lastModifiedDateTime": "/Date(1626703443000+0000)/",
"lastModifiedBy": "admin",
"mdfSystemEffectiveEndDate": "/Date(253402214400000)/",
"configurationName": "123",
"createdDateTime": "/Date(1626703443000+0000)/",
"mdfSystemRecordStatus": "N",
"ageVerificationYear": null,
"createdBy": "admin",
"ageVerificationDate": null,
"currency": "USD",
"exemptedAmount": "250",
"factor": "1",
"currencyNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
IRSPremiumTable(configurationId='123',effectiveStartDate=datetime'2021-07-19T00:00:0
0')/currencyNav"
}
},
"ageVerificationMonthNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
IRSPremiumTable(configurationId='123',effectiveStartDate=datetime'2021-07-19T00:00:0
0')/ageVerificationMonthNav"
}
},
"createdByNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
IRSPremiumTable(configurationId='123',effectiveStartDate=datetime'2021-07-19T00:00:0
0')/createdByNav"
}
},
"imputedCostForAgeRanges": {
"__deferred": {
10.67 ImputedCostForAgeRanges
The ImputedCostForAgeRanges entity contains the age brackets for imputed income calculation for excess
coverage amount.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
Use Case: Get the Age Range Entries for Imputed Income Calculation
This example shows how to get all the age range entries.
Request
Operation Query
URI https://<api-server>/odata/v2/ImputedCostForAgeRanges?
$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
ImputedCostForAgeRanges(IRSPremiumTable_configurationId='123',IRSPremiumTable_effect
iveStartDate=datetime'2021-07-19T00:00:00',externalCode='9609958F64484EFDB0F4D878CE1
F45AF')",
"type": "SFOData.ImputedCostForAgeRanges"
},
"IRSPremiumTable_effectiveStartDate": "/Date(1626652800000)/",
"externalCode": "9609958F64484EFDB0F4D878CE1F45AF",
"IRSPremiumTable_configurationId": "123",
"lastModifiedDateTime": "/Date(1626703443000+0000)/",
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1626703443000+0000)/",
"mdfSystemRecordStatus": "N",
"createdBy": "admin",
"ageFrom": "1",
"costPerAge": "100",
10.68 Sample_API_Topic_with_Template
Permissions
Supported Operations
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
Properties
Property Description
Navigation Properties
Request
Headers
Payload
Response
Headers
Payload
Response
Error Codes
Additional Information
11.1 Bank
This entity contains bank-related information such as Bank Name, BIC, Bank Address, and so on.
Supported Operations
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Operation Query
URI https://api-server/odata/v2/Bank?$format=json&$select=externalCode,bank
Branch,city,postalCode,bankName,bankCountry,effectiveStatus,routingNum
ber,street,businessIdentifierCode&$top=2
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://api-server/odata/v2/Bank('921')",
"type": "SFOData.Bank"
},
"externalCode": "921",
"routingNumber": "012-002",
"bankBranch": null,
"city": null,
"street": null,
"postalCode": null,
"businessIdentifierCode": null,
"bankName": "ANZ Martin Place and Pitt Street Martin Place",
"bankCountry": "AUS",
"effectiveStatus": "A"
},
{
"__metadata": {
"uri": "https://api-server/odata/v2/Bank('922')",
"type": "SFOData.Bank"
},
"externalCode": "922",
"routingNumber": "013-006",
"bankBranch": null,
"city": null,
"street": null,
"postalCode": null,
"businessIdentifierCode": null,
"bankName": "ANZ Melbourne (388 Collins)",
"bankCountry": "AUS",
"effectiveStatus": "A"
}
]
}
}
Operation Upsert
URI https://api-server/odata/v2/upsert?$format=json
Request Payload
Sample Code
{
"__metadata": {
"uri": "https://api-server/
odata/v2/Bank('12345')",
"type": "SFOData.Bank"
},
"externalCode":"12345",
"bankBranch":null,
"city":null,
"street":null,
"postalCode":null,
"businessIdentifierCode": null,
"bankName":"Testing Bank of USA",
"bankCountry": "USA",
"effectiveStatus": "A"
}
Response
{
"d": [
{
"key": "Bank/externalCode=12345",
"status": "OK",
"editStatus": "UPSERTED",
"message": null,
"index": 0,
"httpCode": 200,
"inlineResults": null
}
]
}
Additional Information
The property <bankCountry> stores the internal ID of the country MDF object.
These entities store the country/region dependent fields for Payment Information Details for Ghana and Suriname.
You can use these entities to create, modify or delete the PaymentInformationDetailV3’s child objects
PaymentInformationDetailV3GHA entity and PaymentInformationDetailV3SUR entity.
Permissions
Supported Operations
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
PaymentInformationDetailV3GHA
Property Description
accountType -
accountType -
Navigation Properties
PaymentInformationDetailV3GHA
None - -
PaymentInformationDetailV3SUR
Navigation Property Related Entity Description
None - -
PaymentInformationDetailV3XXX
These entities store the country/region dependent fields for Payment Information Details for Ghana and Suriname.
You can use this entity to create, modify or delete the PaymentInformationDetailV3’s child objects
PaymentInformationDetailV3GHA entity and PaymentInformationDetailV3SUR entity.
The following example for Suriname shows how to query the payment information detail of one country/region for
a single user.
Request
Operation Query
URI /odata/v2/
PaymentInformationDetailV3SUR(PaymentInformationDetailV3_ex
ternalCode=22822L,PaymentInformationV3_effectiveStartDate=d
atetime'2019-09-04T00:00:00',PaymentInformationV3_worker='s
umeet',externalCode=23581L)?$format=json
Response
{
"d":{
"__metadata":{
"uri":"https://api-server/odata/v2/
PaymentInformationDetailV3SUR(PaymentInformationDetailV3_externalCode=22822L,Payment
Related Information
You can use this entity to access the Payment Information Screen for South Africa (ZAF).
Supported Operations
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Use Cases
Request Information
Operation Query
URI http://<api-server>/odata/v2/
PaymentInformationDetailV3ZAF?$format=json
Response
Sample Code
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://api-server/odata/v2/
PaymentInformationDetailV3ZAF(PaymentInformationDetailV3_externalCode=6853L,Payme
ntInformationV3_effectiveStartDate=datetime'2016-05-25T00:00:00',PaymentInformati
onV3_worker='ykumar',externalCode=6854L)",
"type": "SFOData.PaymentInformationDetailV3ZAF"
},
"PaymentInformationV3_effectiveStartDate": "/Date(1464134400000)/",
"PaymentInformationDetailV3_externalCode": "6853",
"PaymentInformationV3_worker": "ykumar",
"externalCode": "6854",
"accountHolderRelationship": "THIRDPARTY",
"accountType": "NOTPAIDEFT",
Use Case: Get all Payments including the South Africa specific fields.
Request Information
Operation Query
URI http://<Hostname>/odata/v2/
PaymentInformationDetailV3?$format=json&
$EXPAND=PaymentInformationDetailV3ZAFMETHO
D: GET
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://api-server/odata/v2/
PaymentInformationDetailV3(PaymentInformationV3_effectiveStartDate=datetime'2016-
05-25T00:00:00',PaymentInformationV3_worker='ykumar',externalCode=6853L)",
"type": "SFOData.PaymentInformationDetailV3"
},
"PaymentInformationV3_effectiveStartDate": "/Date(1464134400000)/",
"PaymentInformationV3_worker": "ykumar",
"externalCode": "6853",
"percent": null,
"amount": "23",
"accountNumber": "2332323",
"bank": null,
"paySequence": "1",
"payType": "PAYROLL",
"iban": null,
"purpose": null,
"currency": "ZAR",
"businessIdentifierCode": null,
"bankCountry": "ZAF",
"customPayType": null,
"accountOwner": "kumar",
"routingNumber": "123456",
"paymentMethod": "05",
"toPaymentInformationDetailV3JPN": {
"__deferred": {
"uri": "https://api-server/odata/v2/
PaymentInformationDetailV3(PaymentInformationV3_effectiveStartDate=datetime'2016-
05-25T00:00:00',PaymentInformationV3_worker='ykumar',externalCode=6853L)/
toPaymentInformationDetailV3JPN"
}
},
"toPaymentInformationDetailV3ISR": {
"__deferred": {
"uri": "https://api-server/odata/v2/
PaymentInformationDetailV3(PaymentInformationV3_effectiveStartDate=datetime'2016-
05-25T00:00:00',PaymentInformationV3_worker='ykumar',externalCode=6853L)/
toPaymentInformationDetailV3ISR"
}
},
"toPaymentInformationDetailV3COL": {
"__deferred": {
"uri": "https://api-server/odata/v2/
PaymentInformationDetailV3(PaymentInformationV3_effectiveStartDate=datetime'2016-
05-25T00:00:00',PaymentInformationV3_worker='ykumar',externalCode=6853L)/
toPaymentInformationDetailV3COL"
}
},
"toPaymentInformationDetailV3ZAF": {
"__deferred": {
"uri": "https://api-server/odata/v2/
PaymentInformationDetailV3(PaymentInformationV3_effectiveStartDate=datetime'2016-
05-25T00:00:00',PaymentInformationV3_worker='ykumar',externalCode=6853L)/
toPaymentInformationDetailV3ZAF"
}
},
"toPaymentInformationDetailV3GBR": {
"__deferred": {
"uri": "https://api-server/odata/v2/
PaymentInformationDetailV3(PaymentInformationV3_effectiveStartDate=datetime'2016-
Related Information
11.4 PaymentInformationDetailV3MOZ
This entity stores the country-dependent fields of payment information details for Mozambique. You can use this
entity to create, modify or delete the PaymentInformationDetailV3’s child objects.
Supported Operations
Operation Description
Query Yes
Insert Yes
Upsert Yes
Delete Yes
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
accountType
The following example uses Mozambique as an example shows how to query the payment information details of
one country for a single user.
Request
Operation Query
URI https://<hostname>/odata/v2/
PaymentInformationDetailV3(PaymentInformationV3_effectiveSt
artDate=datetime'2019-09-04T00:00:00',PaymentInformationV3_
worker='155',externalCode=22890L)/
toPaymentInformationDetailV3MOZ?$format=json
Response
{
"d": {
"__metadata": {
"uri": "https://localhost:443/odata/v2/
PaymentInformationDetailV3MOZ(PaymentInformationDetailV3_externalCode=22890L,Payment
InformationV3_effectiveStartDate=datetime'2019-09-04T00:00:00',PaymentInformationV3_
worker='155',externalCode=22916L)",
"type": "SFOData.PaymentInformationDetailV3MOZ"
},
"PaymentInformationV3_effectiveStartDate": "/Date(1567555200000)/",
"externalCode": "22916",
"PaymentInformationV3_worker": "155",
"PaymentInformationDetailV3_externalCode": "22890",
"lastModifiedDateTime": "/Date(1567583742000+0000)/",
"accountType": "CURRENT",
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1567583742000+0000)/",
"mdfSystemRecordStatus": "N",
"createdBy": "admin",
"createdByNav": {
"__deferred": {
"uri": "https://localhost:443/odata/v2/
PaymentInformationDetailV3MOZ(PaymentInformationDetailV3_externalCode=22890L,Payment
InformationV3_effectiveStartDate=datetime'2019-09-04T00:00:00',PaymentInformationV3_
worker='155',externalCode=22916L)/createdByNav"
}
},
"accountTypeNav": {
The following example uses Macedonia as an example and shows how to upsert the payment information of one
country for a single user.
Request
Operation Upsert
URI https://<hostname>/odata/v2/upsert
Payload {
"__metadata": {
"uri":
"PaymentInformationDetailV3MOZ(PaymentInformationDetailV
3_externalCode=22890L,PaymentInformationV3_effectiveStar
tDate=datetime'2019-09-04T00:00:00',PaymentInformationV3
_worker='155',externalCode=22916)"
},
"accountType": "SAVINGS"
}
Response
The following example uses Macedonia as an example and shows how to delete the payment information of one
country for a single user.
Request
Operation Delete
URI http://<hostname>/odata/v2/
PaymentInformationDetailV3MOZ(PaymentInformationDetailV3_ex
ternalCode=22890L,PaymentInformationV3_effectiveStartDate=d
atetime'2019-09-04T00:00:00',PaymentInformationV3_worker='1
55',externalCode=22916L)
Related Information
12.1 DataReplicationProxy
You use this entity to store references to Employee Central Time data that are relevant for replication to your
selected system/landscape, like Employee Central Payroll or SAP ERP HCM, and to identify all delta changes of
your replicated time data. It only contains a limited number of references to available Employee Central Time
objects.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Request
Operation Query
URI https://<api-server>/odata/v2/
DataReplicationProxy?$format=json
Response
{
"d": {
12.2 EmployeePayrollRunResults
You use this entity to retain information about the employees payroll run results for a particular period of time.
Permissions
Supported Operations
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Use Cases
This is the query operation for EmployeePayrollRunResults entity which is further associated with
EmployeePayrollRunResultsItems with 1:N relationship. This query is requesting the data for an employee called
‘maryusa1’ and in response, the required data will be retrieved.
Request
Operation QUERY
URI https://<api-server>/odata/v2/
EmployeePayrollRunResults?$format=json&
$filter=userId eq 'maryusa1'&
$expand=employeePayrollRunResults
Response
{
"d": {
"results": [{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
EmployeePayrollRunResults(externalCode='SAP_EC_PAYROLL_US01_0101201501312015_3991_40
31',mdfSystemEffectiveStartDate=datetime'2015-01-31T00:00:00')",
"type": "SFOData.EmployeePayrollRunResults"
},
"mdfSystemEffectiveStartDate": "/Date(1422662400000)/",
"externalCode":
"SAP_EC_PAYROLL_US01_0101201501312015_3991_4031",
"payrollRunType": "EC_PRT_001",
"mdfSystemEffectiveEndDate": "/Date(253402214400000)/",
"mdfSystemObjectType": "EmployeePayrollRunResults",
"payrollId": null,
"mdfSystemVersionId": null,
"employmentId": "4031",
"lastModifiedDateTime": "/Date(1436522255000+0000)/",
"sequenceNumber": "15",
"mdfSystemTransactionSequence": "1",
"currency": "USD",
"payrollProviderPayrollRunType": "R",
"payrollProviderId": "SAP_EC_PAYROLL",
"isVoid": false,
"mdfSystemRecordId": "376D2FFE74E64F23BFF86DC13FEF3F6B",
"mdfSystemEntityId": "5921769D435546AA9C5F650789047230",
"userId": "maryusa1",
"personId": "3991",
"mdfSystemStatus": "A",
"payDate": "/Date(1422662400000)/",
"systemId": "QK8",
"lastModifiedDateWithTZ": "/Date(1436522255000+0000)/",
"createdDate": "/Date(1427788173000)/",
"mdfSystemRecordStatus": "N",
"startDateWhenPaid": "/Date(1420070400000)/",
"externalName": null,
"endDateWhenPaid": "/Date(1422662400000)/",
"clientId": "507",
"createdBy": "hajek",
"createdDateTime": "/Date(1427788173000+0000)/",
"lastModifiedBy": "admin",
"lastModifiedDate": "/Date(1436522255000)/",
"companyId": "US01",
"payrollRunTypeNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
EmployeePayrollRunResults(externalCode='SAP_EC_PAYROLL_US01_0101201501312015_3991_40
31',mdfSystemEffectiveStartDate=datetime'2015-01-31T00:00:00')/payrollRunTypeNav"
}
},
"employeePayrollRunResultsItems": {
"results": [{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
EmployeePayrollRunResultsItems(EmployeePayrollRunResults_externalCode='SAP_EC_PAYROL
"EmployeePayrollRunResults_mdfSystemEffectiveStartDate": "/Date(1422662400000)/",
"EmployeePayrollRunResults_externalCode":
"SAP_EC_PAYROLL_US01_0101201501312015_3991_4031",
"externalCode": "3991_/101_0101201501312015",
"payrollProviderWageType": "/101",
"payrollProviderGroupingValue": null,
"mdfSystemEffectiveEndDate": "/
Date(253402214400000)/",
"mdfSystemObjectType":
"EmployeePayrollRunResultsItems",
"mdfSystemVersionId": null,
"payrollProviderUnitOfMeasurement": null,
"lastModifiedDateTime": "/
Date(1436522255000+0000)/",
"mdfSystemTransactionSequence": "1",
"amount": "85.27",
"mdfSystemRecordId":
"A863859AFD61418A95EABD522652F7D9",
"mdfSystemEntityId":
"DBB2408595F64423AB0CCCB17466E59E",
"mdfSystemStatus": "A",
"quantity": "0",
"lastModifiedDateWithTZ": "/
Date(1436522255000+0000)/",
"createdDate": "/Date(1429517937000)/",
"mdfSystemRecordStatus": "N",
"wageType": "EC_MOB_US_GROSS",
"unitOfMeasurement": null,
"externalName": null,
"payrollProviderGroupingReason": null,
"createdBy": "hajek",
"groupingReason": null,
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1429517937000+0000)/",
"startDateWhenEarned": "/Date(1420070400000)/",
"lastModifiedDate": "/Date(1436522255000)/",
"mdfSystemEffectiveStartDate": "/
Date(-2208988800000)/",
"endDateWhenEarned": "/Date(1422662400000)/",
"groupingReasonNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
EmployeePayrollRunResultsItems(EmployeePayrollRunResults_externalCode='SAP_EC_PAYROL
L_US01_0101201501312015_3991_4031',EmployeePayrollRunResults_mdfSystemEffectiveStart
Date=datetime'2015-01-31T00:00:00',externalCode='3991_/101_0101201501312015')/
groupingReasonNav"
}
},
"wageTypeNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
EmployeePayrollRunResultsItems(EmployeePayrollRunResults_externalCode='SAP_EC_PAYROL
L_US01_0101201501312015_3991_4031',EmployeePayrollRunResults_mdfSystemEffectiveStart
Date=datetime'2015-01-31T00:00:00',externalCode='3991_/101_0101201501312015')/
wageTypeNav"
}
},
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
EmployeePayrollRunResultsItems(EmployeePayrollRunResults_externalCode='SAP_EC_PAYROL
L_US01_0101201501312015_3991_4031',EmployeePayrollRunResults_mdfSystemEffectiveStart
"EmployeePayrollRunResults_mdfSystemEffectiveStartDate": "/Date(1422662400000)/",
"EmployeePayrollRunResults_externalCode":
"SAP_EC_PAYROLL_US01_0101201501312015_3991_4031",
"externalCode": "3991_/845_0101201501312015",
"payrollProviderWageType": "/845",
"payrollProviderGroupingValue": null,
"mdfSystemEffectiveEndDate": "/
Date(253402214400000)/",
"mdfSystemObjectType":
"EmployeePayrollRunResultsItems",
"mdfSystemVersionId": null,
"payrollProviderUnitOfMeasurement": null,
"lastModifiedDateTime": "/
Date(1435563657000+0000)/",
"mdfSystemTransactionSequence": "1",
"amount": "120.9",
"mdfSystemRecordId":
"44748190EB8C4986B57A96C5E70FA540",
"mdfSystemEntityId":
"CD3CD50DFE9D40C6BE9802B835D8ABF3",
"mdfSystemStatus": "A",
"quantity": "37.5",
"lastModifiedDateWithTZ": "/
Date(1435563657000+0000)/",
"createdDate": "/Date(1429517937000)/",
"mdfSystemRecordStatus": "N",
"wageType": "EC_WT_845",
"unitOfMeasurement": null,
"externalName": null,
"payrollProviderGroupingReason": null,
"createdBy": "hajek",
"groupingReason": null,
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1429517937000+0000)/",
"startDateWhenEarned": "/Date(1420070400000)/",
"lastModifiedDate": "/Date(1435563657000)/",
"mdfSystemEffectiveStartDate": "/
Date(-2208988800000)/",
"endDateWhenEarned": "/Date(1422662400000)/",
"groupingReasonNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
EmployeePayrollRunResultsItems(EmployeePayrollRunResults_externalCode='SAP_EC_PAYROL
L_US01_0101201501312015_3991_4031',EmployeePayrollRunResults_mdfSystemEffectiveStart
Related Information
You can upsert EmployeePayrollRunResultsItems with EmployeePayrollRunResults, only. This means that all
required operations are carried out through the parent object.
Permissions
Supported Operations
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Request
Headers
Payload
Response
12.3 PayrollDataMaintenanceTask
The Employee Central Payroll system uses this entity to upsert a JSON-Array of PayrollDataMaintenanceTask
objects. These objects are used to monitor the status of additional end-user tasks, for example payroll-relevant
employee data that has to be entered for a new hire.
Supported Operations
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Use Cases
Request
Operation Upsert
URI http://<api-server>/odata/v2/upsert?
$format=json
"uri":"PayrollDataMaintenanceTask(extern
alCode='40F2E963-0B8A-1EE7-82C7-63DDD7D2
A169')"
},
"userIdNav":{
"__metadata":{
"uri":"User(userId='111')"
}
},
"taskType":"NEW_HIRE",
"legalEntity":"AE01",
"employeeDataEffectiveFromDate":"/
Date(1489190400000)/"
},
{
"__metadata":{
"uri":"PayrollDataMaintenanceTask(extern
alCode='40F2E963-0B8A-1EE7-82C7-63DDD7D2
E169')"
},
"userIdNav":{
"__metadata":{
"uri":"User(userId='111')"
}
},
"taskType":"NEW_HIRE",
"legalEntity":"AE01",
"employeeDataEffectiveFromDate":"/
Date(1489449600000)/"
},
{
"__metadata":{
"uri":"PayrollDataMaintenanceTask(extern
alCode='40F2E963-0B8A-1EE7-82C7-63DDD7D2
C169')"
},
"userIdNav":{
"__metadata":{
"uri":"User(userId='111')"
}
},
"taskType":"NEW_HIRE",
"legalEntity":"AE01",
"employeeDataEffectiveFromDate":"/
Date(1489363200000)/"
}
Response
Employee Central Payroll uses this entity to upsert a JSON-Array of PayrollEvent configuration objects. Use
these objects for payroll configuration.
Supported Operations
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Use Case
Request
Operation Upsert
URI https://<api-server>/odata/v2/upsert?
$format=json
Response
The PayrollDataMaintenanceTaskConfiguration entity is an external API for the Employee Central Payroll solution. It
is used by the Employee Central Payroll system to upsert a JSON-Array of PayrollDataMaintnanceTaskConfiguration
objects that are used for country-specific payroll configuration. It includes additional payroll-relevant tasks for the
admin. For example, after a hire, there is additional payroll-relevant employee data that needs to be entered. It gives
the admin a list of infotypes that need to be maintained to complete the payroll aspect of the new hire.
Additional information:
● Child MDF: PayrollDataMaintenanceTaskTypeConfiguration. It contains the enum of the task type (for example
new_hire) and the list of infotypes that are required for the configuration of events.
● Grandchild MDF: PayrollDataMaintenanceTaskTypeLinkConfiguration. It contains the infotype details that are
required for the configuration of events.
12.5 PayrollSystemConfiguration
You use this entity to fetch and display payroll system configuration objects in the Payroll Configuration UI like
payroll system configuration data, payroll data maintenance task configuration data and payroll portlets data.
Supported Operations
Request
Operation Upsert
URI https://<api-server>/odata/v2/upsert?
$format=json
"enablePayrollUiIntegration": true,
"enableEnhancedValidationsForProduction"
: true,
"country": "AUS",
"categories": {
"results": [{
"__metadata": {
"uri": "
PayrollConfigurationCategory(PayrollSyst
emConfiguration_externalCode=81L,externa
lCode=82L)",
"type":
"SFOData.PayrollConfigurationCategory"
},
"externalCategoryName_defaultValue":
"Earnings and Deductions",
"links": {
"results": [{
"__metadata": {
"uri":
PayrollConfigurationCategoryLink(Payroll
ConfigurationCategory_externalCode=82L,
PayrollSystemConfiguration_externalCode=
81L,
externalCode=85L)",
"type":
"SFOData.PayrollConfigurationCategoryLin
k"
}
"selfService": false,
"adminService": true,
"service":
null,
"url": null,
"infotypeNumber": "11"
},
{
"__metadata": {
PayrollSystemConfiguration_externalCode=
81L,
externalCode=84L)",
"type":
"SFOData.PayrollConfigurationCategoryLin
k"
},
"selfService": false,
"adminService": true,
"service":
null,
"url": null,
"infotypeNumber": "850"
},
{
"__metadata": {
"uri":
"PayrollConfigurationCategoryLink(Payrol
lConfigurationCategory_externalCode=82L,
PayrollSystemConfiguration_externalCode=
81L,
externalCode=83L)",
"type":
"SFOData.PayrollConfigurationCategoryLin
k"
},
"selfService": false,
"adminService": true,
"service":
null,
"url": null,
"infotypeNumber": "849"
}]
}
}]
}
}]
}
}
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
PayrollSystemConfiguration('77c90c013d2c42b89fd5ec53b7edee8b')",
"type": "SFOData.PayrollSystemConfiguration"
The SAPSystemConfiguration entity is an external API for the Employee Central Payroll solution. It’s used by the
Employee Central Payroll system to fetch and display SAPSystemConfiguration objects. It’s used to maintain data
required to connect to payroll systems.
Permissions
Note
To be able to use this API, you must have Employee Central Payroll or Payroll Integration enabled in your
instance. Contact Product Support to enable these features.
Supported Operations
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Request
Operation Upsert
URI https://<api-server>/odata/v2/upsert
"uri":"SAPSystemConfiguration(externalCo
de='ABC/123')"
},
"payrollSystemUrl":"https://<api-
server>",
"payrollSystemClientId":"123"
},
{
"__metadata":{
"uri":"SAPSystemConfiguration(externalCo
de='DEF/456')"
},
"payrollSystemUrl":"https://<api-
server>",
"payrollSystemClientId":"456"
}
]
Response
13.1 PerAddressDEFLT
Supported Operations
Query, Upsert
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
operation To delete a record, use the upsert operation and set this prop
erty to DELIMIT.
This example shows how to query all persons whose state in the business address is California.
Operation Query
URI https://<API-Server>/odata/v2/
PerAddressDEFLT?$filter=state eq 'CA' and
addressType eq 'business'&
$select=state,address1,address2,personIdEx
ternal&$top=1&$format=JSON
Response
Sample Code
{
"d": {
"results": [
{
"__metadata": {
uri: "https://<API-Server>/odata/v2/public/
PerAddressDEFLT(addressType='business',personIdExternal='jtong1',startDate=dateti
me'1993-02-15T00:00:00') "
type: " SFOData.PerAddressDEFLT "},
personIdExternal: "jtong1"
state: "CA"
address1: "1500 Fashion Island Blvd."
address2: "Ste. 300"
}
}
}
Request
Operation Upsert
URI https://<API-Server>/odata/v2/upsert
Response
{
"d": [
{
"key": "PerAddressDEFLT/addressType=home,PerAddressDEFLT/
personIdExternal=454,PerAddressDEFLT/startDate=2018-07-26T02:34:13.000Z",
"status": "OK",
Country/Region-Specific Logic
You can define the attributes of the PerAddressDEFLT fields differently for countries and regions in the
Succession Data Model and the Country/region-Specific Data Model. As it is not possible to have multiple entities
per country or region, this OData API exposes a single entity PerAddressDEFLT, and offers a single field for all
countries and regions.
Related Information
13.2 PerEmail
This PerEmail API enables you to read, update, create, or delete an employee's email address.
Query, Upsert
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
operation To delete a record, use the upsert operation and set this prop
erty to DELIMIT.
The example shows how to get the Private and Primary email addresses.
Request
Operation Query
URI https://<API-Server>/odata/v2/PerEmail?
$filter=emailType eq '8448' and isPrimary
eq 'true'&$select=emailAddress&
$format=JSON
Response
Sample Code
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
PerEmail(emailType='8448',personIdExternal='109031')",
"type": "SFOData.PerEmail"
},
"emailAddress": "[email protected]"
}
]
}
}
Request
Operation Upsert
URI https://<API-Server>/odata/v2/Upsert
Payload
Sample Code
{
"__metadata": {
"uri":
"PerEmail(emailType='8448',personIdEx
ternal='109031')",
"type": "SFOData.PerEmail"
},
"emailAddress":
"[email protected]"
}
Response
Sample Code
{
"d": [
{
"key": "PerEmail/emailType=8448,PerEmail/personIdExternal=109031",
"status": "OK",
"editStatus": UPSERTED,
"message": "",
"index": 0,
"httpCode": 200,
"inlineResults": Null
}
]
}
Related Information
You can use the PersonEmpTerminationInfo API to expose the latest termination date of an employee.
Supported Operations
Operation Description
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
This example shows how to retrieve the latest termination date of an employee with $expand from PerPerson. The
latest termination date is represented by the <latestTerminationDate> field.
Request
Operation Query
URI http://<API-Server>/odata/v2/PerPerson?
$format=json&
$expand=personEmpTerminationInfoNav &
$select= personEmpTerminationInfoNav&
$filter=personEmpTerminationInfoNav/
personIdExternal+eq+'admin'
Response
{
"d": {
"results": [
{
Related Information
13.4 PerEmergencyContacts
Supported Operations
Query, Upsert
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
operation To delete a record, use the upsert operation and set this prop
erty to DELIMIT.
This example shows how to query the Person ID and Relationship about employees' primary emergency contact.
Request
Operation Query
URI https://<API-Server>/odata/v2/
PerEmergencyContacts?$filter=primaryFlag
ne 'Y'&
$select=personIdExternal,relationship&
$format=JSON
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/public/
PerEmergencyContacts(name='Chad
Hoff',personIdExternal='mhoff1',relationship='Brother')",
"type": "SFOData.PerEmergencyContacts"
},
"relationship": "Brother",
"personIdExternal": "mhoff1"
},
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/public/
PerEmergencyContacts(name='Francesca
Borriello',personIdExternal='165',relationship='Spouse')",
"type": "SFOData.PerEmergencyContacts"
},
"relationship": "Spouse",
"personIdExternal": "165"
},
{
"__metadata": {
Request
Operation Upsert
URI https://<API-Server>/odata/v2/Upsert
Payload
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
PerEmergencyContacts(name='Karen
Grant',personIdExternal='cgrant1',relati
onship='1767')",
"type": "SFOData.PerEmergencyContacts"
},
"addressCountry": "DEU"
}
Response
{
"d": [
{
"key": "PerEmergencyContacts/name=Karen Grant,PerEmergencyContacts/
personIdExternal=cgrant1,PerEmergencyContacts/relationship=1767",
"status": "OK",
"editStatus": UPSERTED,
"message": "",
"index": 0,
"httpCode": 200,
"inlineResults": null
}
]
}
Related Information
Supported Operations
Query, Upsert
Properties
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
createdBy The ID of the person who created the global information entry
lastModifiedBy The ID of the person who made the last update to the global information entry
operation To delete a record, use the upsert operation and set this property to DELIMIT.
Navigation Properties
This example shows how to get the global information of an employee based in USA.
Request
Operation Query
URI https://<API-Server>/odata/v2/
PerGlobalInfoUSA(country='USA',personIdExt
ernal='dr1sfmgr11',startDate=datetime'2001
-01-05T00:00:00')&$format=JSON
Response
{
"d": {
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
PerGlobalInfoUSA(country='USA',personIdExternal='dr1sfmgr11',startDate=datetime'2001
-01-05T00:00:00')",
"type": "SFOData.PerGlobalInfoUSA"
},
"country": "USA",
"personIdExternal": "dr1sfmgr11",
"startDate": "/Date(978652800000)/",
"lastModifiedDateTime": "/Date(1333434025000+0000)/",
"endDate": "/Date(253402214400000)/",
"createdDateTime": "/Date(1333434025000+0000)/",
"genericString1": "2603",
"customLong16": null,
"customLong14": null,
"customLong15": null,
"genericNumber12": null,
"customLong9": "3245251",
"customLong8": "3441",
Operation Upsert
URI https://<API-Server>/odata/v2/upsert
Payload
{
"__metadata": {
"uri": "PerGlobalInfoUSA",
"type": "SFOData.PerGlobalInfoUSA"
},
"country": "USA",
"personIdExternal": "454",
"startDate": "/
Date(1532563200000)/",
"endDate": "/
Date(253402214400000)/",
"genericString1": "abc",
"customLong5": "S3",
"customLong4": "BU24",
"customLong3": "ADBE-BLR_TEST2",
"customLong1": "5122",
"customDate1": "/
Date(1496275200000)/",
"genericDate5": "/
Date(1494288000000)/",
"genericNumber1": "0",
"customString1": "5123",
"genericDate1": "/
Date(1493596800000)/"
}
Response
{
"d": [
{
"key": "PerGlobalInfoUSA/country=USA,PerGlobalInfoUSA/
personIdExternal=454,PerGlobalInfoUSA/startDate=2018-07-26T00:00:00.000Z",
"status": "OK",
"editStatus": UPSERTED,
"message": "",
"index": 0,
"httpCode": 200,
"inlineResults": null
}
]
}
Additional Information
When you make a last modified query, look at how this entity behaves with $filter and lastModifiedOn:
lastModifiedDateTime and $filter [page 42].
13.6 PerNationalId
Supported Operations
Query, Upsert
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
operation To delete a record, use the upsert operation and set this prop
erty to DELIMIT.
Request
Operation Query
URI https://<API-Server>/odata/v2/
PerNationalId?$filter=isPrimary eq
'false'&
$select=personIdExternal,nationalId,countr
y&$format=JSON
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/public/
PerNationalId(cardType='itin',country='USA',personIdExternal='vstokes1')",
"type": "SFOData.PerNationalId"
},
"personIdExternal": "vstokes1",
"country": "USA",
"nationalId": "48-98493057"
},
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/public/
PerNationalId(cardType='itin',country='USA',personIdExternal='wsown1')",
"type": "SFOData.PerNationalId"
},
"personIdExternal": "wsown1",
"country": "USA",
"nationalId": "47-49409408"
},
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/public/
PerNationalId(cardType='itin',country='USA',personIdExternal='smormony1')",
"type": "SFOData.PerNationalId"
},
"personIdExternal": "smormony1",
"country": "USA",
"nationalId": "45-34593835"
}
]
}
}
Request
Operation Upsert
URI https://<API-Server>/odata/v2/upsert
Payload
{
"__metadata": {
"uri": "PerNationalId",
"type": "SFOData.PerNationalId"
},
"country": "USA",
"personIdExternal": "454",
"cardType": "ssn",
"notes": "test upsert",
"deuevCode": "abc",
"cpamId": "123456",
"customLong1": "5123",
"customDouble1": "3456",
"isPrimary": true,
"customDate1": "/
Date(1557014400000)/",
"customString2": "4184",
"customString1": "5122",
"nationalId": "456-85-9999"
}
Response
{
"d": [
{
"key": "PerNationalId/cardType=ssn,PerNationalId/
country=USA,PerNationalId/personIdExternal=454",
"status": "OK",
"editStatus": UPSERTED,
"message": "",
"index": 0,
"httpCode": 200,
"inlineResults": Null
}
]
}
Related Information
You can use this OData API to display non-effective-dated biological information about an employee such as date
and place of birth, and date of death.
Supported Operations
Operation Description
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
custom-string1, custom-string2, custom-string3 These three custom string fields are filterable, so you can
query PerPerson with filters on these fields rather than
fetch all the records. In some cases they are used to store ex
ternal system IDs.
This example shows how to get the first record of an employee's information.
Request
Operation Query
URI http://<API-Server>/odata/v2/PerPerson?
$top=1&$format=JSON
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/PerPerson('aaaa')",
"type": "SFOData.PerPerson"
},
"personIdExternal": "aaaa",
"dateOfBirth": null,
"lastModifiedOn": "/Date(1303743709000)/",
"lastModifiedDateTime": "/Date(1303758109000+0000)/",
"dateOfDeath": null,
"createdOn": "/Date(1303743708000)/",
"countryOfBirth": null,
"createdBy": "v4admin",
"createdDateTime": "/Date(1303758108000+0000)/",
"lastModifiedBy": "v4admin",
"personId": "4",
"personRerlationshipNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/PerPerson('aaaa')/
personRerlationshipNav"
Look at PerPerson Upsert [page 827] for information on how you can use this entity to add a new employee.
Additional Information
Although the PerPerson entity is created when the user entity is upserted, it remains hidden. It only becomes
visible when:
● It is explicitly upserted
● EmpEmployment has been upserted. For more information, see EmpEmployment Upsert [page 828]
● Filters for including or excluding internal and external users are available. For more information, see Filtering
out external user data [page 832]
Related Information
13.7.1 generateNextPersonID
You use this API to generate the next person ID assigned for a new hire, incrementing it as required.
The generated IDs are used in the User entity (fields: username and userID), PerPerson entity (field:
personIdExternal, userID), Employment entity (fields: personIdExternal and userID), Person Objects
(field: personIdExternal), Employment Objects (field: userID).
Note
If you configure business rules for generating next person IDs, the rules are skipped in this API, which is
different from the behaviors on the Add New Employee page.
Supported Operations
Request
Operation Insert
URI https://<API-Server>/odata/v2/generateNextPersonID?$format=json
Response
{
"d" : {
"GenerateNextPersonIDResponse" : {
"personID" : "214"
}
}
}
Use the Insert operation to create multiple IDs for new hires.
Note
When you generate more than one ID, use a $BATCH statement to avoid too many roundtrips. Make sure that
users use the generated IDs in a unique way. Any unused numbers will create gaps since the API generates the
numbers in an incremental fashion.
Request
URI https://<API-Server>/odata/v2/$batch
Payload
--batch_36522ad7-fc75-4b56-8c71-56071383e77b
Content-Type: multipart/mixed; boundary=changeset_1
--changeset_1
Content-Transfer-Encoding: binary
Content-Type: application/http
--changeset_1
Content-Transfer-Encoding: binary
Content-Type: application/http
--changeset_1--
--batch_36522ad7-fc75-4b56-8c71-56071383e77b--
Response
--batch_840c9610-df87-42ce-bd42-948f9e3f8e04
Content-Type: multipart/mixed; boundary=changeset_75c877a0-4c68-4b0e-af47-
b8bdb19c117b
--changeset_75c877a0-4c68-4b0e-af47-b8bdb19c117b
Content-Type: application/http
Content-Transfer-Encoding: binary
HTTP/1.1 200 OK
Content-Type: application/xml; charset=utf-8
DataServiceVersion: 1.0
Content-Length: 314
--changeset_75c877a0-4c68-4b0e-af47-b8bdb19c117b
Content-Type: application/http
Content-Transfer-Encoding: binary
HTTP/1.1 200 OK
Content-Type: application/xml; charset=utf-8
DataServiceVersion: 1.0
Content-Length: 314
--changeset_75c877a0-4c68-4b0e-af47-b8bdb19c117b
Content-Type: application/http
Content-Transfer-Encoding: binary
HTTP/1.1 200 OK
Content-Type: application/xml; charset=utf-8
DataServiceVersion: 1.0
Content-Length: 314
--changeset_75c877a0-4c68-4b0e-af47-b8bdb19c117b--
--batch_840c9610-df87-42ce-bd42-948f9e3f8e04--
Related Information
13.8 PerPersonal
This entity contains an employee's personal information such as name, gender, and marital status.
Supported Operations
Operation Description
Query You can also choose whether to include or exclude internal and
external user data from these queries. You can do this by using
the filter described in Filtering out external user data [page
832].
Upsert The Upsert operation requires two steps: first, upsert non-
country/region-specific fields; then do upsert operation for the
country or region.
Note
Person_id_external and start_date are required in the Up
sert request.
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
operation To delete a record, use the upsert operation and set this prop
erty to DELETE.
Use the Query operation to get the First and Last name of all persons whose first or last name starts with "Ca".
Request
Operation Query
URI https://<API-Server>/odata/v2/PerPersonal?
$filter=firstName like 'Ca%' or lastName
like 'Ca%'&$select=firstName,lastName&
$format=JSON
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/public/
PerPersonal(personIdExternal='wcarver1',startDate=datetime'1990-01-01T00:00:00')",
"type": "SFOData.PerPersonal"
},
Request
Operation Upsert
URI https://<API-Server>/odata/v2/upsert
Response
{
"d": [
{
"key": "PerPersonal/personIdExternal=iiii,PerPersonal/
startDate=2018-07-26T00:00:00.000Z",
"status": "OK",
"editStatus": UPSERTED,
"message": "",
"index": 0,
"httpCode": 200,
"inlineResults": null
}
]
Additional Information
When you make a last modified query, take a look at how this entity behaves with $filter and lastModifiedDateTime:
lastModifiedDateTime and $filter [page 42]
Related Information
13.9 PerPersonRelationship
Supported Operations
Query, Upsert
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
isAddressSameAsPerson This field shows if the dependent has the same address as the
employee.
operation To delete a record, use the upsert operation and set this prop
erty to DELIMIT.
Navigation Properties
Request
Operation Query
URI https://<API-Server>/odata/v2/
PerPersonRelationship?$top=1&$format=JSON
Response
Sample Code
"d":
{
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
PerPersonRelationship(personIdExternal='gcharles1',relatedPersonIdExternal='197_d
637',startDate=datetime'2013-02-20T00:00:00')",
"type": "SFOData.PerPersonRelationship"
},
"startDate": "/Date(1361318400000)/",
"relatedPersonIdExternal": "197_d637",
"personIdExternal": "gcharles1",
"lastName": "Zamora-Smith",
Request
Operation Upsert
Payload
Sample Code
{
"__metadata": {
"uri": "https://<API-Server>/
odata/v2/
PerPersonRelationship(personIdExterna
l='hmueller1',relatedPersonIdExternal
='1397_d1417',startDate=datetime'2014
-01-01T00:00:00')",
"type":
"SFOData.PerPersonRelationship"
},
"customString2": "test"
}
Response
{
"d": [
{
"key": "PerPersonRelationship/name=Full Name,PerPersonRelationship/
personIdExternal=hmueller1,PerPersonRelationship/relationship=1767",
"status": "OK",
"editStatus": UPSERTED,
"message": "",
"index": 0,
"httpCode": 400,
"inlineResults": null
}
]
}
Additional Information
When you make a last modified query, look at how this entity behaves with $filter and lastModifiedOn:
lastModifiedDateTime and $filter [page 42].
Related Information
Supported Operations
Query, Upsert
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
operation To delete a record, use the upsert operation and set this prop
erty to DELIMIT.
This example shows how to get the person with the phone number '123'.
Request
Operation Query
URI https://<API-Server>/odata/v2/PerPhone?
$filter=phoneNumber eq '123'&
$expand=personNav/personalInfoNav&
$select=phoneNumber,personNav/
personalInfoNav/firstName,personNav/
personalInfoNav/lastName&$format=JSON
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
PerPhone(personIdExternal='cgrant1',phoneType='5847')",
"type": "SFOData.PerPhone"
},
"phoneNumber": "123",
"personNav": {
"__metadata": {
"uri": "https://<API-Server>/odata/v2/PerPerson('cgrant1')",
"type": "SFOData.PerPerson"
},
"personalInfoNav": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
PerPersonal(personIdExternal='cgrant1',startDate=datetime'2014-10-30T00:00:00')",
"type": "SFOData.PerPersonal"
},
"lastName": "Grant-Miller3",
"firstName": "Carla"
}
]
}
}
}
]
}
}
Request
Operation Upsert
URI https://<API-Server>/odata/v2/upsert?
purgeType=full
Response
{
"d": [
{
"key": "PerPhone/personIdExternal=cgrant,PerPhone/phoneType=4828",
"status": "OK",
"editStatus": UPSERTED,
"message": "",
"index": 0,
"httpCode": 200,
"inlineResults": Null
}
]
}
Related Information
Supported Operations
Upsert, Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
operation To delete a record, use the upsert operation and set this prop
erty to DELETE.
Use Case 1: Get All Social Accounts Which Do Not Equal the Domain 1764 and
1765
Request
Operation Query
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
PerSocialAccount(domain='1762',personIdExternal='cgrant1')",
"type": "SFOData.PerSocialAccount"
},
"personIdExternal": "cgrant1",
"domain": "1762",
"imId": "carla123"
}
]
}
}
Related Information
13.12 PersonKey
You can use this entity to expose the person UUID for integration and import scenarios.
Supported Operations
Operation Description
Query You query PersonKey via $expand from the User entity. You
can’t query PersonKey directly.
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Navigation Properties
UserAccountNav UserAccount Navigate to account informa To run a query for account in
tion, for example, the user formation, you also need the
name and status of the ac User Account OData entity
count. You query the account permission. You can find it un
information through $expand der Administrator
from the User entity: $ex
Permissions Manage
pand= PersonKeyNav/User
AccountNav. User .
In integration and import scenarios, you can use PersonKey to retrieve the person UUID represented by the
<perPersonUuid> field. This field is automatically populated by the system when a user is created. The value is
immutable meaning that you can’t change it.
Request
Operation Query
URI https://<API-Server>/odata/v2/
User('admin')?$format=json&
$expand=personKeyNav&$filter=personKeyNav/
pePersonUuid eq
"3A085DB0D9184B49B0E3E70D6F07EB1A"
Response
{
"d": {
"__metadata": {
"uri": "https://<API-Server>/odata/v2/User('admin')",
"type": "SFOData.User"
},
....
},
"personKeyNav": {
"__metadata": {
"uri": "https://<API-Server>/odata/v2/PersonKey('admin')",
Related Information
13.13 PersonType
PersonType is an entity that indicates the type of person. Examples are like Onboardee for Onboarded users,
Student for LMS users, Dependent, and so on.
Permissions
PersonType is an MDF object. Please get permissions for MDF before you use this entity.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Request
Operation Query
URI https://<API-Server>/odata/v2/PersonType?
$format=JSON
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/PersonType('Onboardee')",
"type": "SFOData.PersonType"
},
"externalCode": "Onboardee",
"personTypeName_ru_RU": null,
"personTypeName_fr_FR": null,
"personTypeName_defaultValue": "Onboardee",
"personTypeName_en_DEBUG": null,
"personTypeName_localized": "Onboardee",
"lastModifiedDateTime": "/Date(1512384851000+0000)/",
"createdBy": "v4admin",
"personTypeName_de_DE": null,
"createdDateTime": "/Date(1512384851000+0000)/",
"lastModifiedBy": "v4admin",
"personTypeName_es_ES": null,
"personType": "ONBOARDEE",
"personTypeName_en_US": "Onboardee",
"mdfSystemRecordStatus": "N",
"personTypeNameTranslationTextNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
PersonType('Onboardee')/personTypeNameTranslationTextNav"
}
},
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
PersonType('Onboardee')/mdfSystemRecordStatusNav"
}
},
"personTypeNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
PersonType('Onboardee')/personTypeNav"
}
}
},
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/PersonType('Student')",
"type": "SFOData.PersonType"
},
"externalCode": "Student",
"personTypeName_ru_RU": null,
"personTypeName_fr_FR": null,
"personTypeName_defaultValue": "external LMS user",
"personTypeName_en_DEBUG": null,
13.14 PersonTypeUsage
Permissions
PersonTypeUsage is an MDF object. Please get permissions for MDF before you use this entity.
Supported Operations
Operation Description
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Navigation Properties
Note
The PersonTypeUsage entity is used by the PerPerson entity to query person records, and can be filtered by
person type.
Request
Operation Query
URI https://<API-Server>/odata/v2/
PersonTypeUsage?$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/PersonTypeUsage(5961L)",
"type": "SFOData.PersonTypeUsage"
},
"externalCode": "5961",
"startDate": "/Date(-2208988800000)/",
"person": "ONB001",
"endDate": "/Date(253402214400000)/",
"lastModifiedDateTime": "/Date(1512400831000+0000)/",
"createdBy": "admin",
"createdDateTime": "/Date(1512400831000+0000)/",
"lastModifiedBy": "admin",
"mdfSystemStatus": "A",
"personType": "Onboardee",
"mdfSystemRecordStatus": "N",
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
PersonTypeUsage(5961L)/mdfSystemRecordStatusNav"
}
Request
Operation Query
URI https://<API-Server>/odata/v2/PerPerson?
$format=json&$filter=personTypeUsageNav/
personTypeNav/personType eq 'ONBORDEE'
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/PerPerson('SUPTtest')",
"type": "SFOData.PerPerson"
},
"personIdExternal": "SUPTtest",
"dateOfBirth": null,
"perPersonUuid": "04FE29A7092D4142A3C3D99717E4D1ED",
"lastModifiedOn": "/Date(1524725000000)/",
"customString11": null,
"lastModifiedDateTime": "/Date(1524725000000+0000)/",
"createdOn": "/Date(1524725000000)/",
"createdBy": "admin",
"createdDateTime": "/Date(1524725000000+0000)/",
"lastModifiedBy": "admin",
"personId": "2767",
"customString1": null,
"personRerlationshipNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/PerPerson('SUPTtest')/
personRerlationshipNav"
}
},
"emergencyContactNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/PerPerson('SUPTtest')/
emergencyContactNav"
14.1 PositionRightToReturn
PositionRightToReturn indicates whether an employee is allowed to return to their original position after a Leave of
Absence or Global Assignment.
Permissions
Configure Object Definitions MDF Foundation Objects (related to the security in Object Defi-
nition) View Current, View History, Create, Insert, Correct, De
lete, Import/Export
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
You want to get information on whether an employee is entitled to return to the position he or she occupied before,
for example, going on global assignment.
Operation Query
URI https:/hostname/odata/v2/PositionRightToReturn
Related Information
14.2 Position
Use the Position entity to query position details, create, and edit positions.
Supported Operations
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
● A: Active
● I: Inactive
location The code of the location in which this Job Posting is located.
standardHours The standard number of hours per week for this position.
Navigation Properties
Caution
This entry doesn't reflect whether
the employee is assigned to the posi
tion. That information is stored in the
employee's Job Information. The
incumbentNav field is used by only
Succession Management. Don't use
it in Position Management.
This examples show show to query the details of a position by its business keys.
Request
Operation Query
URI https://<API-Server>/odata/v2/
Position(code='50014362',effectiveStartDate=datetime'1990-0
1-01T00:00:00')
Response
{
"d": {
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
Position(code='50014362',effectiveStartDate=datetime'1990-01-01T00:00:00')",
"type": "SFOData.Position"
},
"code": "50014362",
"effectiveStartDate": "/Date(631152000000)/",
"businessUnit": "PRODS",
"lastModifiedDateTime": "/Date(1515681234000+0000)/",
"jobTitle": "Custodian",
"criticality": null,
"createdDateTime": "/Date(1443726167000+0000)/",
"jobCode": "50071001",
"mdfSystemVersionId": null,
"type": "RP",
"incumbent": null,
"division": "MANU",
"externalName_zh_TW": "保管員",
"externalName_ja_JP": "管理人",
"mdfSystemEntityId": "10AE9CC0A80C718BE0530B28080AD5E1",
"payRange": null,
"regularTemporary": "R",
"externalName_pt_PT": null,
"costCenter": "US10_RDGEN",
"standardHours": null,
"legacyPositionId": null,
"externalName_zh_CN": "保管员",
"externalName_localized": "Custodian",
"mdfSystemRecordStatus": "N",
"vacant": true,
Request
Operation Insert
URI https://<API-Server>/odata/v2/Position
Content-Type: application/json
Payload {
"__metadata": {
"uri": "Position"
},
"code": "11223344",
"effectiveStartDate": "/Date(1574245948000)/",
"positionTitle":"HR Administrator",
"effectiveStatus":"A"
}
Response
{
"d": {
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
Position(code='11223344',effectiveStartDate=datetime'2019-11-20T00:00:00')",
"type": "SFOData.Position"
},
"positionTitle": "HR Administrator",
"effectiveStatus": "A",
"effectiveStartDate": "/Date(1574208000000)/",
"code": "11223344"
You can modify a position by merging fields or by replacing existing fields. The example below shows how to do this
using merge.
Request
Operation Merge
URI https://<API-Server>/odata/v2/
Position(code='11223344',effectiveStartDate=datetime'2019-1
1-20T00:00:00')
Payload {
"comment": "Updating position location",
"location": "1710-2009"
}
Response
{
"d": {
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
Position(code='11223344',effectiveStartDate=datetime'2019-11-20T00:00:00'),
"type": "SFOData.Position"
},
"positionTitle": "HR Administrator",
"effectiveStatus": "A",
"effectiveStartDate": "/Date(1574208000000)/",
"code": "11223344"
}
}
Related Information
14.3 PositionCompetencyMappingEntity
This entity contains the mapping relationship between a position and its required competencies.
Supported Operations
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
● A: Active
● I: Inactive
Request
Operation Query
URI https://<API-Server>/odata/v2/
PositionCompetencyMappingEntity(PositionEntity_externalCode
='1000580',externalCode='1007147')
Response
{
"d": {
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
PositionCompetencyMappingEntity(PositionEntity_externalCode='1000580',externalCode='
1007147')",
"type": "SFOData.PositionCompetencyMappingEntity"
},
"PositionEntity_externalCode": "1000580",
"externalCode": "1007147",
"rating_pt_PT": null,
"weight_defaultValue": null,
"lastModifiedDateTime": "/Date(1446760225000+0000)/",
"rating_ru_RU": null,
"weight_en_GB": null,
"createdDateTime": "/Date(1446760225000+0000)/",
"mdfSystemVersionId": null,
"rating_en_US": null,
"weight_en_DEBUG": null,
"rating_en_DEBUG": null,
"rating_de_DE": null,
"rating_zh_TW": null,
"rating_fr_FR": null,
"mdfSystemEntityId": "91D8ADC0520F44C9BA03258D9834919F",
"effectiveStartDate": "/Date(-2208988800000)/",
"weight_ja_JP": null,
"weight_pt_BR": null,
"weight_fr_FR": null,
"mdfSystemRecordStatus": "N",
"rating_ja_JP": null,
"rating_ko_KR": null,
"rating_pt_BR": null,
"subModule": null,
"weight_localized": null,
"status": "A",
"effectiveEndDate": "/Date(253402214400000)/",
"competency": "1000076",
Request
Operation Query
URI https://<API-Server>/odata/v2/
PositionCompetencyMappingEntity(PositionEntity_externalCode
='1000580',externalCode='1007147')
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
PositionCompetencyMappingEntity(PositionEntity_externalCode='1000580',externalCode='
1007147')",
"type": "SFOData.PositionCompetencyMappingEntity"
},
"PositionEntity_externalCode": "1000580",
"externalCode": "1007147"
},
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
PositionCompetencyMappingEntity(PositionEntity_externalCode='1000580',externalCode='
1007146')",
"type": "SFOData.PositionCompetencyMappingEntity"
},
"PositionEntity_externalCode": "1000580",
"externalCode": "1007146"
},
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
PositionCompetencyMappingEntity(PositionEntity_externalCode='1000580',externalCode='
1007148')",
"type": "SFOData.PositionCompetencyMappingEntity"
},
"PositionEntity_externalCode": "1000580",
"externalCode": "1007148"
},
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
PositionCompetencyMappingEntity(PositionEntity_externalCode='1000580',externalCode='
1007149')",
Request
Operation Insert
URI https://<API-Server>/odata/v2/
PositionCompetencyMappingEntity
Headers
Payload
Response
Related Information
PositionEntity is an extension of Position that contains skills and competency information related to the
position. The skills and competencies are expressed through navigation properties that points to
PositionSkillMappingEntity and PositionCompetencyMappingEntity.
Supported Operations
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
● A: Active
● I: Inactive
Navigation Properties
In this example, we try to query a PositionEntity and its related skills and competency information.
Request
Operation Query
URI https://<API-Server>/odata/v2/PositionEntity('1000580')?
$expand=positionSkillMappings&
$select=position,positionSkillMappings/skill
Response
In this example, a list of skills are related to this position. You can further expand toSkillEntity for details.
{
"d": {
"__metadata": {
"uri": "https://<API-Server>/odata/v2/PositionEntity('1000580')",
"type": "SFOData.PositionEntity"
},
"position": "50014345",
"positionSkillMappings": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
PositionSkillMappingEntity(PositionEntity_externalCode='1000580',externalCode='10071
39')",
"type": "SFOData.PositionSkillMappingEntity"
},
"skill": "1000516"
},
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
PositionSkillMappingEntity(PositionEntity_externalCode='1000580',externalCode='10071
40')",
"type": "SFOData.PositionSkillMappingEntity"
},
"skill": "1000524"
},
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
PositionSkillMappingEntity(PositionEntity_externalCode='1000580',externalCode='10071
41')",
"type": "SFOData.PositionSkillMappingEntity"
},
"skill": "1000530"
},
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
PositionSkillMappingEntity(PositionEntity_externalCode='1000580',externalCode='10071
42')",
"type": "SFOData.PositionSkillMappingEntity"
},
"skill": "1000529"
},
This example shows how to create a PositionEntity record for an existing position using insert.
Request
Operation Insert
URI https://<API-Server>/odata/v2/PositionEntity
Payload {
"__metadata": {
"uri": "PositionEntity"
},
"status": "A",
"positionNav": {
"__metadata": {
"uri":
"Position(code='11223344',effectiveStartDate=datetime'20
19-11-20T00:00:00')"
}
}
}
{
"d": {
"__metadata": {
"uri": "https://<API-Server>/odata/v2/PositionEntity('1020939')",
"type": "SFOData.PositionEntity"
},
"status": "A",
"externalCode": "1020939",
"positionNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/PositionEntity('1020939')/
positionNav"
}
}
}
}
Related Information
14.5.1 getPositionObjectData
You can use this function import to get the data of a position object.
Supported Operations
This example API call creates and returns a list of mapping of fields between SAP Fieldglass field names and
position field values for the given position ID in user’s locale by executing the rule defined in the Position
Management Settings.
Request
URI https://<api-server>/odata/v2/
getPositionObjectData?
positionId=11545533L&userId=clewis1
Response
<d:RuleFieldMappingBeanList xmlns:d="http://schemas.microsoft.com/ado/2007/08/
dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/
metadata" m:type="SFOData.RuleFieldMappingBeanList">
<d:ruleFieldMappings m:type="Bag(SFOData.RuleFieldMappingBean)">
<d:element>
<d:fieldName>fg_location</d:fieldName>
<d:fieldValue>NL_AMS</d:fieldValue>
</d:element>
<d:element>
<d:fieldName>fg_jobTitle</d:fieldName>
<d:fieldValue>Developer 1</d:fieldValue>
</d:element>
<d:element>
<d:fieldName>OWNER</d:fieldName>
<d:fieldValue>clewis1</d:fieldValue>
</d:element>
<d:element>
<d:fieldName>TITLE</d:fieldName>
<d:fieldValue>SF Analyst_DE</d:fieldValue>
</d:element>
</d:ruleFieldMappings>
</d:RuleFieldMappingBeanList>
15.1 ServiceCenterConfiguration
You can use this entity to configure labels for the Landing page and Create Ticket page of the Ask HR application.
Permissions
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Navigation Properties
Operation Query
URI https://<API-Server>/v2/ServiceCenterConfiguration?
$expand=landingPageConfiguration,createTicketPageConfiguration&
$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-server>/odata/v2/ServiceCenterConfiguration(32343L)",
"type": "SFOData.ServiceCenterConfiguration"
},
"externalCode": "32343",
"configurationName": "configuration name",
"landingPageConfiguration": {
"__metadata": {
"uri": "https://<API-server>/odata/v2/
LandingPageConfiguration(ServiceCenterConfiguration_externalCode=32343L,externalCode
=32344L)",
"type": "SFOData.LandingPageConfiguration"
},
"externalCode": "32344",
"ServiceCenterConfiguration_externalCode": "32343",
"ticketsOverviewTileHeader_pt_BR": null,
"searchKBTileSubHeader_en_RTL": null,
"createTicketTileHeader_nl_NL": null,
"searchKBTileSubHeader_fr_CA": null,
"contactHRTileHeader_fr_CA": null,
"createTicketTileSubHeader_fr_CA": null,
"contactHRTileSubHeader_zh_CN": null,
"searchKBTileHeader_en_RTL": null,
"createTicketTileHeader_en_RTL": null,
"contactHRTileSubHeader_de_DE": null,
"ticketsOverviewTileHeader_es_MX": null,
"createTicketTileHeader_ar_SA": null,
"ticketsOverviewTileSubHeader_en_DEBUG_APOS_RTL": null,
"contactHRTileSubHeader_fr_FR": null,
"ticketsOverviewTileSubHeader_en_US": "manage issues",
"searchKBTileHeader_es_MX": null,
"ticketsOverviewTileHeader_es_ES": null,
"contactHRTileSubHeader_en_US": "country wise support",
"searchKBTileHeader_es_ES": null,
"createTicketTileHeader_en_DEBUG": null,
"ticketsOverviewTileSubHeader_zh_CN": null,
"contactHRTileHeader_defaultValue": "Support",
"createTicketTileHeader_it_IT": null,
"contactHRTileSubHeader_localized": "country wise support",
"ticketsOverviewTileHeader_localized": "View",
"ticketsOverviewTileSubHeader_de_DE": null,
"contactHRTileSubHeader_pt_BR": null,
"searchKBTileSubHeader_es_MX": null,
"contactHRTileSubHeader_en_RTL": null,
"ticketsOverviewTileSubHeader_en_DEBUG": null,
"ticketsOverviewTileSubHeader_es_MX": null,
"createTicketTileSubHeader_it_IT": null,
"ticketsOverviewTileHeader_en_US": "View",
"ticketsOverviewTileSubHeader_es_ES": null,
15.2 LandingPageConfiguration
This entity is used to store the configuration details for the Landing page of the Ask HR application.
Permissions
Supported Operations
Query
Operation Query
URI https://<API-Server>/v2/LandingPageConfiguration?
$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-server>/odata/v2/
LandingPageConfiguration(ServiceCenterConfiguration_externalCode=32343L,externalCode
=32344L)",
"type": "SFOData.LandingPageConfiguration"
},
"externalCode": "32344",
"ServiceCenterConfiguration_externalCode": "32343",
"ticketsOverviewTileHeader_pt_BR": null,
"searchKBTileSubHeader_en_RTL": null,
"createTicketTileHeader_nl_NL": null,
"searchKBTileSubHeader_fr_CA": null,
"contactHRTileHeader_fr_CA": null,
"createTicketTileSubHeader_fr_CA": null,
"contactHRTileSubHeader_zh_CN": null,
"searchKBTileHeader_en_RTL": null,
"createTicketTileHeader_en_RTL": null,
"contactHRTileSubHeader_de_DE": null,
"ticketsOverviewTileHeader_es_MX": null,
"createTicketTileHeader_ar_SA": null,
"ticketsOverviewTileSubHeader_en_DEBUG_APOS_RTL": null,
"contactHRTileSubHeader_fr_FR": null,
"ticketsOverviewTileSubHeader_en_US": "manage issues",
"searchKBTileHeader_es_MX": null,
"ticketsOverviewTileHeader_es_ES": null,
"contactHRTileSubHeader_en_US": "country wise support",
"searchKBTileHeader_es_ES": null,
"createTicketTileHeader_en_DEBUG": null,
"ticketsOverviewTileSubHeader_zh_CN": null,
"contactHRTileHeader_defaultValue": "Support",
"createTicketTileHeader_it_IT": null,
"contactHRTileSubHeader_localized": "country wise support",
"ticketsOverviewTileHeader_localized": "View",
"ticketsOverviewTileSubHeader_de_DE": null,
"contactHRTileSubHeader_pt_BR": null,
"searchKBTileSubHeader_es_MX": null,
"contactHRTileSubHeader_en_RTL": null,
"ticketsOverviewTileSubHeader_en_DEBUG": null,
"ticketsOverviewTileSubHeader_es_MX": null,
"createTicketTileSubHeader_it_IT": null,
"ticketsOverviewTileHeader_en_US": "View",
"ticketsOverviewTileSubHeader_es_ES": null,
"searchKBTileHeader_pt_BR": null,
"ticketsOverviewTileHeader_fr_FR": null,
"ticketsOverviewTileSubHeader_localized": "manage issues",
"ticketsOverviewTileSubHeader_fr_CA": null,
"createTicketTileSubHeader_nl_NL": null,
"searchKBTileSubHeader_nl_NL": null,
"contactHRTileHeader_es_ES": null,
"contactHRTileSubHeader_en_DEBUG_APOS_RTL": null,
"contactHRTileHeader_es_MX": null,
15.3 CreateTicketPageConfiguration
This entity is used to store the configuration details for the Create Ticket page of the Ask HR application.
Permissions
Supported Operations
Query
This example shows how to query the Create Ticket page configuration.
Request
Operation Query
URI https://<API-Server>/v2/CreateTicketPageConfiguration?
$format=json
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-server>/odata/v2/
CreateTicketPageConfiguration(ServiceCenterConfiguration_externalCode=32343L,externa
lCode=32345L)",
"type": "SFOData.CreateTicketPageConfiguration"
},
"externalCode": "32345",
"ServiceCenterConfiguration_externalCode": "32343",
"serviceCategoryLabel_es_ES": null,
"priorityLabel_defaultValue": "Importance",
"affectedUserLabel_pt_BR": null,
"subjectDescLabel_fr_FR": null,
"subjectDescLabel_de_DE": null,
"serviceCategoryLabel_en_RTL": null,
"serviceCategoryLabel_pt_BR": null,
"serviceCategoryLabel_localized": "Service",
"serviceCategoryLabel_zh_CN": null,
"affectedUserLabel_es_MX": null,
"affectedUserLabel_es_ES": null,
"incidentCategoryLabel_de_DE": null,
"incidentCategoryLabel_en_GB": null,
"priorityLabel_it_IT": null,
"incidentCategoryLabel_en_RTL": null,
"incidentCategoryLabel_fr_FR": null,
"subjectDescLabel_en_US": "Ticket Content",
"priorityLabel_en_DEBUG_APOS_RTL": null,
"priorityLabel_fr_CA": null,
"priorityLabel_en_RTL": null,
"affectedUserLabel_fr_CA": null,
"incidentCategoryLabel_zh_CN": null,
"serviceCategoryLabel_en_DEBUG_APOS_RTL": null,
"priorityLabel_ar_SA": null,
"affectedUserLabel_zh_CN": null,
"priorityLabel_nl_NL": null,
"serviceCategoryLabel_en_DEBUG": null,
"subjectDescLabel_ar_SA": null,
"subjectDescLabel_en_DEBUG_APOS_RTL": null,
"affectedUserLabel_en_DEBUG": null,
"incidentCategoryLabel_en_DEBUG_APOS_RTL": null,
"incidentCategoryLabel_nl_NL": null,
"serviceCategoryLabel_fr_FR": null,
"affectedUserLabel_en_RTL": null,
"subjectDescLabel_es_ES": null,
"subjectDescLabel_es_MX": null,
"incidentCategoryLabel_localized": "Incident",
"affectedUserLabel_localized": "Employee ID",
"subjectDescLabel_en_RTL": null,
"subjectDescLabel_fr_CA": null,
"serviceCategoryLabel_nl_NL": null,
"affectedUserLabel_ar_SA": null,
"affectedUserLabel_en_DEBUG_APOS_RTL": null,
"priorityLabel_localized": "Importance",
"incidentCategoryLabel_fr_CA": null,
"affectedUserLabel_nl_NL": null,
"priorityLabel_fr_FR": null,
"priorityLabel_en_US": "Importance",
"affectedUserLabel_defaultValue": "Employee ID",
"priorityLabel_zh_CN": null,
"affectedUserLabel_en_GB": null,
"incidentCategoryLabel_defaultValue": "Incident",
"subjectDescLabel_en_DEBUG": null,
"priorityLabel_es_ES": null,
In this section, you'll find the APIs available for Time Off. You can use Time Off to manage absences such as
vacation, sick leave, and paid time off.
Before using any of the Time Off entities described here, you need to switch on Time Off in the Admin Center. For
details of how to do this, take a look at the Activating Time Management documentation in the Implementing Time
Management in SAP SuccessFactors guide.
In addition, you need to have permission to use the individual objects in question. For information on these
permissions, take a look at the Permissions in Time Off documentation in the Implementing Time Management in
SAP SuccessFactors guide.
Note
The following fields are set to Visible and Read Only by default: CreatedDate, CreatedBy, LastModifiedDate, and
LastModifiedBy. The fields are set to Read Only for the EmployeeTime, TimeAccountPayout, and
TimeAccountPurchase objects. It's possible that the fields are visible on the Manage Data user interface. If
you'd like to hide them, follow the steps to hide the fields lined out in each object definition.
16.1.1 AbsenceCountingMethod
You can enter an absence counting method in a time type, to determine which days are included in calculating an
absence taken of that time type. You can also determine the basis on which the calculation takes place and the
weekdays to which the calculation base should apply.
Operations Allowed
Query
Properties
Here you can see the required fields and business keys for this entity. Check the OData API dictionary in your
instance to see the complete list of properties, and check your metadata for navigations, and associations.
Code Examples
URI: http://<hostname>/odata/v2/AbsenceCountingMethod('ACM_EXAMPLE')$format=JSON
{
"d": {
"__metadata": {
"uri": "https://<API-Server>/odata/v2/AbsenceCountingMethod('ACM_EXAMPLE')",
"type": "SFOData.AbsenceCountingMethod"
},
"externalCode": "ACM_EXAMPLE",
"externalName_ko_KR": null,
"mdfSystemObjectType": "AbsenceCountingMethod",
"mdfSystemEffectiveEndDate": "/Date(253402214400000)/",
"mdfSystemVersionId": null,
"monday": true,
"externalName_de_DE": null,
"externalName_localized": "ACM_EXAMPLE",
"externalName_defaultValue": "ACM_EXAMPLE",
"externalName_es_MX": null,
"lastModifiedDateTime": "/Date(1464005812000+0000)/",
"externalName_da_DK": null,
"mdfSystemTransactionSequence": "1",
Related Information
16.1.2 AccrualCalculationBase
The entity is used to store reported times (per user and date). The records need to be provided to this storage from
a data source outside Time Off, such as by import or integration using OData. The entity represents the raw data.
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
URI: http://<api-server>/odata/v2/upsert
Payload
{
"__metadata" : {
"uri" : "http://localhost:8080/odata/v2/
AccrualCalculationBase(externalCode='country_2015-12-28')",
"type" : "SFOData.AccrualCalculationBase"
},
"externalCode" : "country_2015-12-28",
"userId" : "country",
"actualQuantity" : 6,
"date" : "\/Date(1451260800000)\/"
}
Response:
{
"d" : [
{
"key" : null,
"status" : "OK",
"editStatus" : "UPSERTED",
"message" : null,
"index" : 0,
"httpCode" : 200,
"inlineResults" : null
}
]
}
URI: http://<api-server>/odata/v2/AccrualCalculationBase?$format=json
Operation: GET
Response:
{
"d" : {
"results" : [
{
"__metadata" : {
"uri" : "https://localhost:443/odata/v2/
AccrualCalculationBase('country_2015-12-28')", "type" :
"SFOData.AccrualCalculationBase"
},
"externalCode" : "country_2015-12-28",
"mdfSystemEffectiveEndDate" : "\/Date(253402214400000)\/", "mdfSystemObjectType" :
"AccrualCalculationBase",
"mdfSystemVersionId" : null,
"lastModifiedDateTime" : "\/Date(1451465919000+0000)\/",
"date" : "\/Date(1451260800000)\/",
"mdfSystemTransactionSequence" : "1",
"mdfSystemRecordId" : "02114EA3DE97476A910F425807E9C03E",
"mdfSystemEntityId" : "A38105E8A5354C81A7AF20895B66924F",
"userId" : "country",
"mdfSystemStatus" : "A",
"lastModifiedDateWithTZ" : "\/Date(1451465919000+0000)\/",
"createdDate" : "\/Date(1451469519000)\/",
Related Information
16.1.3 AvailableTimeType
Contains information about the available time type, which is one of the time types that an employee is allowed to
take.
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Code Examples
"d": {
"results": [
{
"__metadata": {
"uri": "https://<host.sap.com>/odata/v2/
AvailableTimeType(TimeTypeProfile_externalCode='TP_normal',externalCode='13')",
"type": "SFOData.AvailableTimeType"
},
"TimeTypeProfile_externalCode": "TP_normal",
"externalCode": "13",
"mdfSystemObjectType": "AvailableTimeType",
"mdfSystemEffectiveEndDate": "/Date(253402214400000)/",
"mdfSystemVersionId": null,
"favoriteTimeType": false,
"lastModifiedDateTime": "/Date(1457380136000+0000)/",
"hideAccountBalance": null,
"timeType": "TRAVEL",
"mdfSystemTransactionSequence": "1",
"mdfSystemRecordId": "0E9AC4A2D7574B5B91D6AA865E529E76",
"createdBy": "sfadmin",
"mdfSystemEntityId": "5F277D467E2D42628AA4082BCA12A785",
"createdDateTime": "/Date(1440598493000+0000)/",
"enabledInEssScenario": true,
"lastModifiedBy": "sfadmin",
"mdfSystemStatus": "A",
"lastModifiedDate": "/Date(1457362136000)/",
"mdfSystemEffectiveStartDate": "/Date(-2208988800000)/",
"lastModifiedDateWithTZ": "/Date(1457380136000+0000)/",
"createdDate": "/Date(1440584093000)/",
"mdfSystemRecordStatus": "N",
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<host.sap.com>/odata/v2/
AvailableTimeType(TimeTypeProfile_externalCode='TP_normal',externalCode='13')/
mdfSystemRecordStatusNav"
}
},
"mdfSystemStatusNav": {
"__deferred": {
"uri": "https://<host.sap.com>/odata/v2/
AvailableTimeType(TimeTypeProfile_externalCode='TP_normal',externalCode='13')/
mdfSystemStatusNav"
}
},
"timeTypeNav": {
"__deferred": {
"uri": "https://<host.sap.com>/odata/v2/
AvailableTimeType(TimeTypeProfile_externalCode='TP_normal',externalCode='13')/
timeTypeNav"
Related Information
16.1.4 EmployeeTime
You can use this API to manage employee absences such as vacation, sick leave, and other paid time off.
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Use Cases
https://<api-server>/odata/v2/ Get employee time for the user defined in the call.
EmployeeTime?&$format=json&$filter=userId
%20eq%20'sampleemployee'
Code Examples
{
d: {
results: [104]
0: {
__metadata: {
uri: "https://<api-server>/odata/v2/
EmployeeTime('50f007dd864e448691e8f2cf0ae5f0fe')"
type: "SFOData.EmployeeTime"
}-
externalCode: "50f007dd864e448691e8f2cf0ae5f0fe"
quantityInDays: null
mdfSystemObjectType: "EmployeeTime"
cancellationWorkflowRequestId: null
endDate: "/Date(1420416000000)/"
lastModifiedDateTime: "/Date(1429101050000+0000)/"
Related Information
16.1.5 EmployeeTime<Country/Region>
Country/region-specific entities for EmployeeTime are available. Take a look at the sub-sections to see which
countries are supported with country/region-specific fields. These entities are child entities of EmployeeTime.
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
Australia: EmployeeTimeAUS
This entity contains Australia specific absence fields, which is used for requesting advance leave payment.
Canada: EmployeeTimeCAN
This entity contains three date fields specific to Canada, which is used for short term disability in Time.
Colombia: EmployeeTimeCOL
Admin can use this object to store Colombia-specific details of an EmployeeTime created for sick leave. It is used
only when Colombia is the country in the time type and contains only the GO reference to the EmployeeTimeGroup
used for linking of absences. This MDF is effective dated from parent.
Germany: EmployeeTimeDEU
This entity contains information about employee time created for sick leave. It is specific to Germany and is a child
of the entity EmployeeTime.
Spain: EmployeeTimeESP
This entity contains information about employee time created for sick leave. It is specific to Spain and is a child of
the entity EmployeeTime.
Mexico: EmployeeTimeMEX
This entity contains information about employee time created for sick leave. It is specific to Mexico and contains
the field Reference Number which is only required for maintaining employee time in Mexico. Apart from this
country/region-specific field, this object also holds the GO reference to the group Identical Sicknesses which is
used for the linking of absences.
Sample Query for creating EmployeeTimeMex http://<api-server>/odata/v2/
EmployeeTime(‘<external-code of Employee Time>’)/countryExtensionMEX
This entity contains a Netherlands specific field to record the available working capacity of an employee when
recovering from illness in Time Off
Poland: EmployeeTimePOL
This entity contains ZLA Code, ZLA Document Number, ZLA Issue Date and ZLA Delivery Date. This object is used
to store the employee specific Time fields information for a Polish Employee.
USA: EmployeeTimeUSA
This entity contains three date fields specific to USA, which is used for short term disability in Time.
This entity contains Australia-specific absence fields, which are used for requesting advance leave payment.
Supported Operations
Query
Properties
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
splitPaymentAcrossFinancialYear The option to request the split of the payment across the financial year.
Use Case: Querying the advance leave payment information for an employee in
Australia
Request
Operation Query
URI https://<API-server>/odata/v2/EmployeeTimeAUS?$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": " https://<API-server>/odata/v2/
EmployeeTimeAUS(EmployeeTime_externalCode='6e42e96016f34499a6e6671ef975ef33',externa
lCode=10444L)",
"type": "SFOData.EmployeeTimeAUS"
},
Related Information
16.1.5.2 EmployeeTimeCAN
This entity contains three date fields specific to Canada, which are used for short-term disability in Time
Management.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
disabilityPeriodOneEndDate This field is used to record the end date of the first short-term
disability absence.
disabilityPeriodTwoEndDate This field is used to record the end date of the second short-
term disability absence.
disabilityPeriodThreeEndDate This field is used to record the end date of the third short-term
disability absence.
refDisabilityPeriodOneEndDate This field is used to record the reference end date of the first
short-term disability period.
refDisabilityPeriodTwoEndDate This field is used to record the reference end date of the sec
ond short-term disability period.
refDisabilityPeriodThreeEndDate This field is used to record the reference end date of the third
short-term disability period.
policyDeviation This field is used to record a deviation from the policy for short-
term disability absences.
Request
Operation Query
URI https://<API-Server>/odata/v2/EmployeeTimeCAN?$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
Related Information
16.1.5.3 EmployeeTimeCOL
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
Request
Operation Query
URI https://<API-server>/odata/v2/EmployeeTimeCOL?$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/
EmployeeTimeDEU(EmployeeTime_externalCode='592af6d3d06f410db56ab71aaecea896',externa
lCode=13714L)",
"type": "SFOData.EmployeeTimeDEU"
},
"externalCode": "13714",
"EmployeeTime_externalCode": "592af6d3d06f410db56ab71aaecea896",
"continuedPayEndDate": null,
"mdfSystemEffectiveEndDate": "/Date(253402214400000)/",
"mdfSystemObjectType": "EmployeeTimeDEU",
"mdfSystemVersionId": null,
"identicalSicknessGroup": "2022ffa1320141fd93c070b9be459865",
"sicknessCertificateStartDate": null,
"lastModifiedDateTime": "/Date(1492598128000+0000)/",
"mdfSystemTransactionSequence": "1",
"mdfSystemRecordId": "8F47FCE6A1DE4DE18287FACFEABD0E40",
"mdfSystemEntityId": "3C92D5967437427DB416737306F7239A",
"overlappingSicknessGroup": null,
"mdfSystemStatus": "A",
"lastModifiedDateWithTZ": "/Date(1492598128000+0000)/",
"createdDate": "/Date(1492598092000)/",
"mdfSystemRecordStatus": "N",
"paySupplementStartDate": null,
"createdBy": "admin",
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1492598092000+0000)/",
Related Information
16.1.5.4 EmployeeTimeDEU
Supported Operations
Query
Properties
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
Property Description
continuedPayCreditedDays This field is used to record the days credited for continued pay.
continuedPayEndDate This field is used to record the end date of continued pay.
paySupplementStartDate This field is used to record the start date of the sick pay supplement.
paySupplementEndDate This field is used to record the end date of the sick pay supplement.
sicknessCertificateStartDate This field is used to record the certified start date of the sickess.
refContinuedPayEndDate This field is used to record the reference end date of continued pay.
refPaySupplementStartDate This field is used to record the reference start date of the sick pay supplement.
refPaySupplementEndDate This field is used to record the reference end date of the sick pay supplement.
deviationFromSickPayPeriods This field is used to record a deviation from sick pay periods.
Use Case: Querying the continued sick pay information for an employee in
Germany
Request
Operation Query
URI https://<API-server>/odata/v2/EmployeeTimeAUS?$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/
EmployeeTimeDEU(EmployeeTime_externalCode='592af6d3d06f410db56ab71aaecea896',externa
lCode=13714L)",
"type": "SFOData.EmployeeTimeDEU"
},
"externalCode": "13714",
"EmployeeTime_externalCode": "592af6d3d06f410db56ab71aaecea896",
"continuedPayEndDate": null,
"mdfSystemEffectiveEndDate": "/Date(253402214400000)/",
"mdfSystemObjectType": "EmployeeTimeDEU",
"mdfSystemVersionId": null,
"identicalSicknessGroup": "2022ffa1320141fd93c070b9be459865",
"sicknessCertificateStartDate": null,
Related Information
16.1.5.5 EmployeeTimeESP
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Example: Retrieve data of the EmployeeTimeESP objects in JSON. (In this case there are no such objects)
URI: http://<api-server>/odata/v2/EmployeeTimeESP?$format=json
Method: GET
Response:
Sample Code
{
"d": {
"results": []
}
}
Related Information
16.1.5.6 EmployeeTimeMEX
Supported Operations
Query
Properties
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
referenceNumber This field is used to record the first disability period end date
for the short-term disability absence.
identicalSicknessGroup This field is used to record the second disability period end
date for the short-term disability absence.
daysAlreadyCumulatedForSameSickness This field is used to record the third disability period end date
for the short-term disability absence.
Use Case: Querying the "prima vacacional" (annual entitlement) information for
an employee based in Mexico
Request
Operation Query
URI https://<API-Server>/odata/v2/EmployeeTimeMEX?$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
EmployeeTimeUSA(EmployeeTime_externalCode='ae22341a4c5042bb9d49799624a9d125',externa
lCode=11172L)",
"type": "SFOData.EmployeeTimeUSA"
},
"EmployeeTime_externalCode": "ae22341a4c5042bb9d49799624a9d125",
"externalCode": "11172",
"lastModifiedDateTime": "/Date(1594113847000+0000)/",
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1594113847000+0000)/",
"mdfSystemRecordStatus": "N",
"createdBy": "admin",
"disabilityPeriodThreeEndDate": null,
"disabilityPeriodTwoEndDate": "/Date(1595462400000)/",
"disabilityPeriodOneEndDate": "/Date(1594684800000)/",
"createdByNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
EmployeeTimeUSA(EmployeeTime_externalCode='ae22341a4c5042bb9d49799624a9d125',externa
lCode=11172L)/createdByNav"
}
},
"lastModifiedByNav": {
"__deferred": {
Related Information
16.1.5.7 EmployeeTimeNLD
This entity contains a field specific to the Netherlands that is used to record the work capacity of an employee
when recovering from illness in Time Management.
Supported Operations
Query
Properties
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
Use Case: Querying the available work capacity information for an employee in
the Netherlands
Request
Operation Query
URI https://<api-server>/odata/v2/EmployeeTimeNLD?$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
EmployeeTimeNLD(EmployeeTime_externalCode='9d1b35ee251042c3a087999bbfed1f26',externa
lCode=15467L)",
"type": "SFOData.EmployeeTimeNLD"
},
"EmployeeTime_externalCode": "9d1b35ee251042c3a087999bbfed1f26",
"externalCode": "15467",
"lastModifiedDateTime": "/Date(1628575479000+0000)/",
"createdBy": "admin",
"entityUUID": "1DDCAF49072646368866170A944713E9",
"lastModifiedBy": "admin",
"workCapacityPercentageDuringIllness": "30",
"createdDateTime": "/Date(1628575479000+0000)/",
"mdfSystemRecordStatus": "N",
"createdByNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
EmployeeTimeNLD(EmployeeTime_externalCode='9d1b35ee251042c3a087999bbfed1f26',externa
lCode=15467L)/createdByNav"
}
},
"lastModifiedByNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
EmployeeTimeNLD(EmployeeTime_externalCode='9d1b35ee251042c3a087999bbfed1f26',externa
lCode=15467L)/lastModifiedByNav"
}
},
"mdfSystemRecordStatusNav": {
"__deferred": {
Related Information
16.1.5.8 EmployeeTimePOL
This entity contains ZLA Code, ZLA Document Number, ZLA Issue Date and ZLA Delivery Date. This object is used
to store the employee-specific Time Management fields information for an employee based in Poland.
Supported Operations
Query
Properties
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
zlaIssueDate The date on which the illness was reported to the ZLA authority
zlaDeliveryDate The date on which the ZLA certificate was delivered by the employee to the em
ployer.
Request
Operation Query
URI https://<API-server>/odata/v2/EmployeeTimePOL?format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-server>/odata/v2/
EmployeeTimePOL(EmployeeTime_externalCode='833834f528a04ea6af1d502e57003543',externa
lCode=60529L)",
"type": "SFOData.EmployeeTimePOL"
},
"EmployeeTime_externalCode": "833834f528a04ea6af1d502e57003543",
"externalCode": "60529",
"zlaDeliveryDate": "/Date(1568246400000)/",
"lastModifiedDateTime": "/Date(1569214037000+0000)/",
"lastModifiedBy": "akumar",
"createdDateTime": "/Date(1569213976000+0000)/",
"mdfSystemRecordStatus": "N",
"absenceCode": "11",
"createdBy": "akumar",
"zlaDocumentNumber": "1111",
"zlaIssueDate": "/Date(1568246400000)/",
"createdByNav": {
"__deferred": {
"uri": "https<API-server>/odata/v2/
EmployeeTimePOL(EmployeeTime_externalCode='833834f528a04ea6af1d502e57003543',externa
lCode=60529L)/createdByNav"
}
},
"lastModifiedByNav": {
"__deferred": {
"uri": "https://<API-server>/odata/v2/
EmployeeTimePOL(EmployeeTime_externalCode='833834f528a04ea6af1d502e57003543',externa
lCode=60529L)/lastModifiedByNav"
}
},
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<API-server>/odata/v2/
EmployeeTimePOL(EmployeeTime_externalCode='833834f528a04ea6af1d502e57003543',externa
lCode=60529L)/mdfSystemRecordStatusNav"
}
}
}
]
}
}
16.1.5.9 EmployeeTimeUSA
This entity contains date fields specific to USA, which are used for short-term disability in Time Management.
Supported Operations
Query
Properties
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
disabilityPeriodOneEndDate This field is used to record the first disability period end date
for the short-term disability absence.
disabilityPeriodTwoEndDate This field is used to record the second disability period end
date for the short-term disability absence.
disabilityPeriodThreeEndDate This field is used to record the third disability period end date
for the short-term disability absence.
refDisabilityPeriodOneEndDate This field is used to record the reference end date of the first
short-term disability period.
refDisabilityPeriodTwoEndDate This field is used to record the reference end date of the sec
ond short-term disability period.
refDisabilityPeriodThreeEndDate This field is used to record the reference end date of the third
short-term disability period.
policyDeviation This field is used to record a deviation from the policy for short-
term disability absences.
Request
Operation Query
URI https://<API-Server>/odata/v2/EmployeeTimeUSA?$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
EmployeeTimeUSA(EmployeeTime_externalCode='ae22341a4c5042bb9d49799624a9d125',externa
lCode=11172L)",
"type": "SFOData.EmployeeTimeUSA"
},
"EmployeeTime_externalCode": "ae22341a4c5042bb9d49799624a9d125",
"externalCode": "11172",
"lastModifiedDateTime": "/Date(1594113847000+0000)/",
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1594113847000+0000)/",
"mdfSystemRecordStatus": "N",
"createdBy": "admin",
"disabilityPeriodThreeEndDate": null,
"disabilityPeriodTwoEndDate": "/Date(1595462400000)/",
"disabilityPeriodOneEndDate": "/Date(1594684800000)/",
"createdByNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
EmployeeTimeUSA(EmployeeTime_externalCode='ae22341a4c5042bb9d49799624a9d125',externa
lCode=11172L)/createdByNav"
}
},
"lastModifiedByNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
EmployeeTimeUSA(EmployeeTime_externalCode='ae22341a4c5042bb9d49799624a9d125',externa
lCode=11172L)/lastModifiedByNav"
}
},
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
EmployeeTimeUSA(EmployeeTime_externalCode='ae22341a4c5042bb9d49799624a9d125',externa
lCode=11172L)/mdfSystemRecordStatusNav"
}
}
}
]
}
}
16.1.6 EmployeeTimeCalendar
Contains absence information on a daily basis. There is one entry for every working day with the relevant number of
days and number of hours. For example, if there is a half day absence on an eight-hour working day, the resulting
calendar entry has 0.5 days and 4 hours
OData Examples
Example – Retrieve data of the employee time calendar which belongs to the employee time with specific external
code
URI http://<hostname>/odata/v2/
EmployeeTimeCalendar(EmployeeTime_externalCode=57d8c995114f421eb97ebcce2a9c3324',externalCode='57d
8c995114f421eb97ebcce2a9c3324'')?$format=json
Sample Code
{
"d": {
"__metadata": {
"uri": "https://<hostname>/odata/v2/
EmployeeTimeCalendar(EmployeeTime_externalCode='9d59e47c10434d91afeb3fd664c01093'
,externalCode='57d8c995114f421eb97ebcce2a9c3324')",
"type": "SFOData.EmployeeTimeCalendar"
},
"externalCode": "57d8c995114f421eb97ebcce2a9c3324",
"EmployeeTime_externalCode": "9d59e47c10434d91afeb3fd664c01093",
"quantityInDays": "1",
"mdfSystemEffectiveEndDate": "/Date(253402214400000)/",
"mdfSystemObjectType": "EmployeeTimeCalendar",
"workScheduleInternalId": "50257",
"mdfSystemVersionId": null,
"lastModifiedDateTime": "/Date(1486480298000+0000)/",
"endTime": null,
"date": "/Date(1486425600000)/",
"mdfSystemTransactionSequence": "1",
"startTime": null,
"mdfSystemRecordId": "C663DFE9A67E43289A3183B51B614CF0",
"mdfSystemEntityId": "C1ADC4497A9E44C9878F1FEC00753817",
"mdfSystemStatus": "A",
"lastModifiedDateWithTZ": "/Date(1486480298000+0000)/",
"createdDate": "/Date(1486462298000)/",
"quantityInHours": "8",
"mdfSystemRecordStatus": "N",
"deductionQuantity": "1",
"createdBy": "sfadmin",
"lastModifiedBy": "sfadmin",
"createdDateTime": "/Date(1486480298000+0000)/",
"mdfSystemEffectiveStartDate": "/Date(-2208988800000)/",
"lastModifiedDate": "/Date(1486462298000)/",
Related Information
16.1.7 EmployeeTimeGroup
The entity is used to group EmployeeTime objects for special use cases. Currently it is used for recurring absences
and linking of absences.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
userId External Name for all relevant languages. This field is required.
itemsCategory This indicates what items this employee time group contains.
Values: LINKED_ABSENCES or RECURRING_ABSENCES. This
field is required.
Navigation Properties
Code Examples
URI: http://<api-server>/odata/v2/EmployeeTimeGroup('76931234932b4666820c4be07a0a7c2a')?
$expand=items&$format=JSON
Sample Code
{
"d": {
"__metadata": {
"uri": "https://<api-server>/odata/v2/
EmployeeTimeGroup('76931234932b4666820c4be07a0a7c2a')",
"type": "SFOData.EmployeeTimeGroup"
},
"externalCode": "76931234932b4666820c4be07a0a7c2a",
"mdfSystemObjectType": "EmployeeTimeGroup",
"mdfSystemEffectiveEndDate": "/Date(253402214400000)/",
"mdfSystemVersionId": null,
"lastModifiedDateTime": "/Date(1461325378000+0000)/",
"mdfSystemTransactionSequence": "1",
"mdfSystemRecordId": "7EC32545B28C4888AF677383389ED2AF",
"createdBy": "admin",
"mdfSystemEntityId": "42D3F5A0CF3F47BA8ED3D9B42A029444",
"userId": "mhoff",
"createdDateTime": "/Date(1461325377000+0000)/",
"lastModifiedBy": "admin",
"mdfSystemStatus": "A",
"lastModifiedDate": "/Date(1461332578000)/",
"mdfSystemEffectiveStartDate": "/Date(-2208988800000)/",
"itemsCategory": "LINKED_ABSENCES",
"lastModifiedDateWithTZ": "/Date(1461325378000+0000)/",
"createdDate": "/Date(1461332577000)/",
"mdfSystemRecordStatus": "N",
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
EmployeeTimeGroup('76931234932b4666820c4be07a0a7c2a')/mdfSystemRecordStatusNav"
}
},
"itemsCategoryNav": {
Related Information
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Navigation Properties
Code Examples
URI: http://<api-server>/odata/v2/EmployeeTimeGroup('76931234932b4666820c4be07a0a7c2a')?
$select=items&$expand=items,items/employeeTimeNav&$format=JSON
Sample Code
{
"d": {
"__metadata": {
"uri": "https://<api-server>/odata/v2/
EmployeeTimeGroup('76931234932b4666820c4be07a0a7c2a')",
"type": "SFOData.EmployeeTimeGroup"
},
"items": {
"results": [
{
"__metadata": {
Related Information
16.1.9 Holiday
You use the Holiday object to create holidays for inclusion in a holiday calendar.
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Request Information
URI http://<api-server>/odata/v2/Holiday?
$format=json&$filter=holidayCode%20eq
%20'FR-Victory Day
Response
Sample Code
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/Holiday('FR-Victory
Day')",
"type": "SFOData.Holiday"
},
"holidayCode": "FR-Victory Day",
"name_ko_KR": "유럽 전승 기념일",
"mdfSystemEffectiveEndDate": "/Date(253402214400000)/",
"mdfSystemObjectType": "Holiday",
"mdfSystemVersionId": null,
"name_ru_RU": "День Победы в Европе (Франция)",
"lastModifiedDateTime": "/Date(1461163954000+0000)/",
"name_ja_JP": "ヨーロッパ戦勝記念日",
"mdfSystemTransactionSequence": "1",
"mdfSystemRecordId": "E49E3AB6C7D14896A6C1FFD4E839A315",
"mdfSystemEntityId": "139D108B9314467783E6AB93FE05FC98",
"name_localized": "Victory in Europe Day",
"mdfSystemStatus": "A",
"lastModifiedDateWithTZ": "/Date(1461163954000+0000)/",
"name_es_ES": "Día de la Victoria en Europa",
"createdDate": "/Date(1443711833000)/",
"name_defaultValue": "Victory in Europe Day",
"name_fr_FR": "Jour de la Victoire en Europe",
"mdfSystemRecordStatus": "N",
"name_en_US": "Victory in Europe Day",
"name_pt_BR": "Dia da Vitória da Forças Aliadas na Europa",
"oldName": null,
"name_zh_CN": "欧洲胜利日(法国)",
"country": "FRA",
"createdBy": "sfadmin",
"name_de_DE": "Tag des Sieges",
"lastModifiedBy": "sfadmin",
"createdDateTime": "/Date(1443726233000+0000)/",
"mdfSystemEffectiveStartDate": "/Date(-2208988800000)/",
"lastModifiedDate": "/Date(1461149554000)/",
"name_en_GB": "Victory in Europe Day",
"countryNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/Holiday('FR-
Victory Day')/countryNav"
}
},
"nameTranslationTextNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/Holiday('FR-
Victory Day')/nameTranslationTextNav"
Related Information
16.1.10 HolidayAssignment
The entity contains more information about a holiday. Information such as the date of the holiday, it's class (full day
or half day) is stored in this entity.
Operations Allowed
Operation Description
Properties
This table shows the required fields and business keys for this entity. Check the OData API dictionary in your
instance to see the complete list of properties, and check your metadata for navigations and associations.
Navigation Properties
Code Examples
Request for getting all holidays which are assigned for calendar 'HolidayCalendar_odata':
Query:
https://<hostname>/odata/v2/HolidayAssignment?$filter=HolidayCalendar_externalCode eq 'HOLIDAY_US'&
$format=json
Response
Sample Code
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/
HolidayAssignment(HolidayCalendar_externalCode='HolidayCalendar_odata',date=datet
ime'2020-01-01T00:00:00')",
"type": "SFOData.HolidayAssignment"
},
"date": "/Date(1325376000000)/",
"HolidayCalendar_externalCode": "HolidayCalendar_odata",
"lastModifiedDateTime": "/Date(1581583334000+0000)/",
"mdfSystemEffectiveEndDate": "/Date(253402214400000)/",
"createdDateTime": "/Date(1351136090000+0000)/",
"mdfSystemVersionId": null,
Request
Operation Query
URI https://<api-server>/odata/v2/
HolidayCalendar?$format=json&
$filter=country%20eq%20'USA'
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/HolidayCalendar('USA')",
"type": "SFOData.HolidayCalendar"
},
"externalCode": "USA",
"name_ko_KR": null,
"mdfSystemEffectiveEndDate": "/Date(253402214400000)/",
"mdfSystemObjectType": "HolidayCalendar",
"mdfSystemVersionId": null,
"name_ru_RU": null,
"lastModifiedDateTime": "/Date(1461164062000+0000)/",
"name_ja_JP": null,
"mdfSystemTransactionSequence": "1",
"mdfSystemRecordId": "935BC7ACBB31419D95265B6AC2699860",
"mdfSystemEntityId": "10AE9CC099AB718BE0530B28080AD5E1",
"name_localized": "USA",
"mdfSystemStatus": "A",
"lastModifiedDateWithTZ": "/Date(1461164062000+0000)/",
"name_es_ES": null,
"createdDate": "/Date(1443711857000)/",
"name_defaultValue": "USA",
"name_fr_FR": null,
"mdfSystemRecordStatus": "N",
"name_en_US": "USA",
"name_pt_BR": null,
"oldName": null,
"name_zh_CN": null,
"country": "USA",
"createdBy": "sfadmin",
"name_de_DE": null,
"lastModifiedBy": "sfadmin",
"createdDateTime": "/Date(1443726257000+0000)/",
"mdfSystemEffectiveStartDate": "/Date(-2208988800000)/",
"lastModifiedDate": "/Date(1461149662000)/",
"name_en_GB": null,
"holidayAssignments": {
"__deferred": {
Related Information
16.1.12 ShiftClassification
This object defines the shift classification for either a whole work schedule or a day model. It only holds
information.
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
This table shows the required fields and business keys for this entity. Check the OData API dictionary in your
instance to see the complete list of properties, and check your metadata for navigations and associations.
Code Examples
URI: http://<api-server>/odata/v2/restricted/ShiftClassification('LATE_SHIFT')?$format=JSON
Sample Code
{
"d": {
"__metadata": {
"uri": "https://<api-server>/odata/v2/restricted/
ShiftClassification('LATE_SHIFT')",
"type": "SFOData.ShiftClassification"
},
"externalCode": "LATE_SHIFT",
"externalName_ko_KR": null,
"mdfSystemObjectType": "ShiftClassification",
"mdfSystemEffectiveEndDate": "/Date(253402214400000)/",
"mdfSystemVersionId": null,
"externalName_de_DE": "Spätschicht",
"externalName_localized": "Late Shift",
"externalName_defaultValue": "Late Shift",
"externalName_es_MX": null,
"lastModifiedDateTime": "/Date(1464014355000+0000)/",
"externalName_da_DK": null,
"mdfSystemTransactionSequence": "1",
"externalName_fi_FI": null,
"mdfSystemRecordId": "660CD9D767214291B4EF30BF7AC20174",
"mdfSystemEntityId": "35E1CD6E033C4A588BE8AAD064F8F4AE",
"mdfSystemStatus": "A",
"lastModifiedDateWithTZ": "/Date(1464014355000+0000)/",
"externalName_zh_TW": null,
"externalName_en_US": "Late Shift",
"externalName_en_SAP_SLS": null,
"createdDate": "/Date(1464021555000)/",
"externalName_ja_JP": null,
"mdfSystemRecordStatus": "N",
"externalName_pl_PL": null,
"country": "DEU",
"createdBy": "admin",
Related Information
16.1.13 TemporaryTimeInformation
This object defines deviating time information for period for a user. It is used, for example, if an employee is on
vacation and someone else needs to take over their work schedule for the vacation period.
Operations Allowed
Operation Query
Properties
Here you can see the required fields and business keys for this entity. Check the OData API dictionary in your
instance to see the complete list of properties, and check your metadata for navigations, and associations.
Navigation Properties
Code Examples
URI: http://<hostname>/odata/v2/restricted/
TemporaryTimeInformation('d9ad6aea798143d599c63e9f4f251048')?$format=JSON{
Sample Code
{
"d": {
"__metadata":
{ "uri": "https://<hostname>/odata/v2/restricted/
TemporaryTimeInformation('d9ad6aea798143d599c63e9f4f251048')", "type":
"SFOData.TemporaryTimeInformation" }
,
"externalCode": "d9ad6aea798143d599c63e9f4f251048",
"startDate": "/Date(1450569600000)/",
"mdfSystemObjectType": "TemporaryTimeInformation",
"mdfSystemEffectiveEndDate": "/Date(253402214400000)/",
"mdfSystemVersionId": null,
"workSchedule": "i90306d711",
"endDate": "/Date(1451088000000)/",
"effectiveStatus": "A",
"lastModifiedDateTime": "/Date(1450424588000+0000)/",
"mdfSystemTransactionSequence": "1",
"mdfSystemRecordId": "7E23FCD86F7B49568C902989041B1C94",
"createdBy": "admin",
"mdfSystemEntityId": "552984EB4B424F7481EA66DF3F9C2A7A",
"userId": "mhoff",
"createdDateTime": "/Date(1450424588000+0000)/",
"lastModifiedBy": "admin",
"lastModifiedDate": "/Date(1450428188000)/",
Related Information
When an employee has a time profile assigned with time types that refer to time account types, time accounts need
to be created. This is done automatically when you assign a time profile to an employee’s job information and also
during the account creation calendar run.
Properties
Here you can see the required fields and business keys for this entity. Check the OData API dictionary in your
instance to see the complete list of properties, and check your metadata for navigations, and associations.
Code Examples
Example 1
Retrieve data of the time accounts for user Carla Grant of time account type sickness with all included bookings in
JSON.
URI: https://<hostname>/odata/v2/TimeManagementAlertMessage?
TimeManagementAlert_externalCode='d1e3b9e5efa74860807b48af8462018d'&$format=json
Method: GET
Response:
Sample Code
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/
TimeAccount('cgrant_sick_current')",
"type": "SFOData.TimeAccount"
},
"externalCode": "cgrant_sick_current",
"startDate": "/Date(978307200000)/",
"mdfSystemEffectiveEndDate": "/Date(253402214400000)/",
"mdfSystemObjectType": "TimeAccount",
"mdfSystemVersionId": null,
"accountClosed": false,
"endDate": "/Date(253402214400000)/",
"lastModifiedDateTime": "/Date(1493903577000+0000)/",
"mdfSystemTransactionSequence": "1",
"mdfSystemRecordId": "0D15EB00E6DF6032E0537A54740A259C",
"mdfSystemEntityId": "0D15EB00F5BA6032E0537A54740A259C",
"userId": "cgrant1",
"mdfSystemStatus": "A",
"lastModifiedDateWithTZ": "/Date(1493903577000+0000)/",
"createdDate": "/Date(1351138546000)/",
"mdfSystemRecordStatus": "N",
"createdBy": "admin",
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1351138546000+0000)/",
"bookingEndDate": "/Date(253402214400000)/",
"accountType": "SICKNESS_CURRENT",
"lastModifiedDate": "/Date(1493903577000)/",
"mdfSystemEffectiveStartDate": "/Date(-2208988800000)/",
"bookingStartDate": "/Date(978307200000)/",
"timeAccountDetails": {
"results": [
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/
TimeAccountDetail(TimeAccount_externalCode='cgrant_sick_current',externalCode='1'
)",
URI: http://<hostname>/odata/v2/TimeAccount?$format=json
Method: POST
Body:
Sample Code
{
"externalCode": "TA_odata",
"startDate": "/Date(1514764800000)/",
"endDate": "/Date(1546214400000)/",
"userId": "cgrant1",
"bookingEndDate": "/Date(1546214400000)/",
"bookingStartDate": "/Date(1514764800000)/",
"accountTypeNav": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
TimeAccountType('Standard_ACM')"
}
}
}
Response:
Sample Code
{
"d": {
"__metadata": {
"uri": "https://<hostname>/odata/v2/TimeAccount('TA_odata')",
"type": "SFOData.TimeAccount"
},
"startDate": "/Date(1514764800000)/",
"endDate": "/Date(1546214400000)/",
"userId": "cgrant1",
"bookingEndDate": "/Date(1546214400000)/",
"bookingStartDate": "/Date(1514764800000)/",
"externalCode": "TA_odata",
"accountTypeNav": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/TimeAccount('TA_odata')/
accountTypeNav"
}
}
}
}
Example 3: Close the time account for user Carla Grant of time account type Standard_ACM for
the year 2018
URI: http://<hostname>/odata/v2/TimeAccount('TA_odata')?$format=json
Method: PUT
Sample Code
{
"externalCode": "TA_odata",
"startDate": "/Date(1514764800000)/",
"endDate": "/Date(1546214400000)/",
"userId": "cgrant1",
"bookingEndDate": "/Date(1546214400000)/",
"bookingStartDate": "/Date(1514764800000)/",
"accountClosed": true,
"accountTypeNav": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
TimeAccountType('Standard_ACM')"
}
}
}
Example 4: Update or insert a time account for user Carla Grant of time account type
Standard_ACM for the year 2018.
URI: http://<hostname>/odata/v2/upsert?$format=JSON
Method: POST
Body:
Sample Code
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/TimeAccount('TA_odata')",
"type": "SFOData.TimeAccount"
},
"externalCode": "TA_odata",
"startDate": "/Date(1514764800000)/",
"endDate": "/Date(1546214400000)/",
"userId": "cgrant1",
"bookingEndDate": "/Date(1546214400000)/",
"bookingStartDate": "/Date(1514764800000)/",
"accountTypeNav": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
TimeAccountType('Standard_ACM')"
}
}
}
Response:
Sample Code
{
"d": [
{
"key": null,
"status": "OK",
"editStatus": "UPSERTED",
"message": null,
"index": 0,
http://<hostname>/odata/v2/TimeAccount('TA_odata')?$format=JSON
Method: DELETE
Related Information
16.1.15 TimeAccountDetail
The entity describes account bookings resulting from different scenarios such as leave request creation or manual
adjustments.
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Tip
We recommend that you only use the OData API to create Time Account Details that use the Manual
Adjustment booking type to adjust the time account accruals which have been calculated by Employee Central
Time Off. The OData API is not intended to create Time Account Details with the Accrual or Entitlement posting
types. These are calculated outside of the system, and Employee Central Time Off is not designed to support
this use case.
Remember
To query TimeAccountDetails and use filtering you need to query the TimeAccountDetail, not the TimeAccount
object with expand to timeAccountDetails.
Code Examples
Operation: POST
Content-Type: application/json;charset=utf-8
Payload:
{
"__metadata" : {
"uri" : "http://api-server/odata/v2/
TimeAccountDetail(TimeAccount_externalCode='1dfca28bf0c84c8b846719feffba225d',
externalCode='MyTimeAccountDetail')",
"type" : "SFOData.TimeAccountDetail"
}, "TimeAccount_externalCode" : "1dfca28bf0c84c8b846719feffba225d",
"externalCode" : "MyTimeAccountDetail",
"bookingUnit" : "DAYS",
"referenceObject" : null,
"bookingType" : "MANUAL_ADJUSTMENT",
"bookingDate" : "\/Date(1420070400000)\/",
"employeeTime" : null,
"bookingAmount" : "2.0",
"comment" : null
}
Response:
{
"d" : [
{
"key" : null,
"status" : "OK",
"editStatus" : "UPSERTED",
"message" : null,
"index" : 0,
"httpCode" : 200,
"inlineResults" : null
}
]
}
URI: http://api-server/odata/v2/
TimeAccountDetail(TimeAccount_externalCode='1dfca28bf0c84c8b846719feffba225d',externalCode='62d7d936
18244c28922fdc4b94001e53')?$format=json
Operation: GET
Response:
{
"d" : {
"__metadata" : {
"uri" : "https://api-server/odata/v2/
TimeAccountDetail(TimeAccount_externalCode='1dfca28bf0c84c8b846719feffba225d',extern
alCode='62d7d93618244c28922fdc4b94001e53')", "type" : "SFOData.TimeAccountDetail"
},
"TimeAccount_externalCode" : "1dfca28bf0c84c8b846719feffba225d",
"externalCode" : "62d7d93618244c28922fdc4b94001e53",
"mdfSystemEffectiveEndDate" : "\/Date(253402214400000)\/", "mdfSystemObjectType" :
"TimeAccountDetail",
"mdfSystemVersionId" : null,
"bookingUnit" : "DAYS",
"referenceObject" : null,
Related Information
Operations Allowed
Operation Description
Properties
Here you can see the required fields and business keys for this entity. Check the OData API dictionary in your
instance to see the complete list of properties, and check your metadata for navigations, and associations.
country No No TimeAccountPayoutProfiles
can be country specific. If this
one is, the relevant country
appears here.
Navigation Properties
Query:
https://<hostname>/odata/v2/
TimeAccountPayoutProfile('PayoutProfileAmountBased_odata')?$format=json
Response
Sample Code
{
"d": {
"__metadata": {
"uri": "https://<hostname>/odata/v2/
TimeAccountPayoutProfile('PayoutProfileAmountBased_odata')",
"type": "SFOData.TimeAccountPayoutProfile"
},
"externalCode": "PayoutProfileAmountBased_odata",
"country": null,
"payComponentTerminationAccrualSeparated": null,
"payoutMessageText_de_DE": null,
"externalName_fr_CA": null,
"workflowConfiguration": "Payout_WF",
"payoutMessageText_en_US": "[b] Important:[/b] This is an instructional
text!",
"payoutMessageText_zh_CN": null,
"payoutMessageText_ru_RU": null,
"payoutMessageText_it_IT": null,
"payComponent": "PayComponentAmountBased",
"payComponentGroup": "PayGroupAmountBased",
"externalName_zh_CN": null,
"externalName_localized": "PayoutProfileAmountBased_odata",
"payoutMessageText_defaultValue": "[b] Important:[/b] This is an
instructional text!",
"payComponentTermination": "PayGroupAmountBased",
"payoutMessageText_localized": null,
"externalName_en_GB": null,
"externalName_nl_NL": null,
"payoutMessageText_en_SAP_SLS": null,
"payoutMessageText_th_TH": null,
"externalName_defaultValue": "Payout Profile for odata test",
"payoutMessageText_ar_SA": null,
"externalName_es_MX": null,
"externalName_ar_SA": null,
"externalName_es_ES": null,
"payoutMessageText_pt_BR": null,
"externalName_pt_BR": null,
"payoutMessageText_en_GB": null,
"payoutMessageText_ko_KR": null,
"payoutMessageText_en_DEBUG": null,
"externalName_en_SAP_SLS": null,
"externalName_ru_RU": null,
"externalName_it_IT": null,
"payoutMessageText_fr_CA": null,
"externalName_th_TH": null,
"payoutMessageText_es_MX": null,
"externalName_de_DE": null,
"externalName_ko_KR": null,
"payoutMessageText_es_ES": null,
"payoutMessageText_nl_NL": null,
"externalName_en_US": "Payout Profile for odata test",
"externalName_en_DEBUG": null,
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Code Example
Example – Retrieve data of the time account posting rule which belongs to the time type ’Vacation’
URI: http://<api-server>/odata/v2/
TimeAccountPostingRule(TimeType_externalCode='Vacation',externalCode='Annually_VAC')?$format=json
Response:
{
"d" : {
"__metadata" : {
"uri" : "https://localhost:443/odata/v2/
TimeAccountPostingRule(TimeType_externalCode='Vacation',externalCode='Annually_VAC')
", "type" : "SFOData.TimeAccountPostingRule"
},
"TimeType_externalCode" : "Vacation",
"externalCode" : "Annually_VAC",
"mdfSystemEffectiveEndDate" : "\/Date(253402214400000)\/",
"mdfSystemObjectType" : "TimeAccountPostingRule",
"mdfSystemVersionId" : null,
"lastModifiedDateTime" : "\/Date(1422284110000+0000)\/",
"timeAccountType" : "ANNUALLY", "mdfSystemTransactionSequence" : "1", "createdBy" :
"loa",
"mdfSystemRecordId" : "877FE3EF357D4A4B825EF1C8EB0A675A",
"mdfSystemEntityId" : "3009BBBA98A14011A5DA5FC863C43B4F",
"createdDateTime" : "\/Date(1420710506000+0000)\/",
"lastModifiedBy" : "daily",
"mdfSystemStatus" : "A",
"lastModifiedDate" : "\/Date(1422287710000)\/", "mdfSystemEffectiveStartDate" : "\/
Date(-2208988800000)\/",
"lastModifiedDateWithTZ" : "\/Date(1422284110000+0000)\/",
"createdDate" : "\/Date(1420714106000)\/",
"mdfSystemRecordStatus" : "N",
"timeAccountTypeNav" : {
"__deferred" : {
"uri" : "https://localhost:443/odata/v2/
TimeAccountPostingRule(TimeType_externalCode='Vacation',externalCode='Annually_VAC')
/timeAccountTypeNav"
}
},
"mdfSystemRecordStatusNav" : {
"__deferred" : {
"uri" : "https://localhost:443/odata/v2/
TimeAccountPostingRule(TimeType_externalCode='Vacation',externalCode='Annually_VAC')
/mdfSystemRecordStatusNav"
Related Information
16.1.18 TimeAccountPurchaseProfile
This profile defines the configuration elements that determine how your leave purchase policy is implemented.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
equivalentUnits The time interval that applies to the profile. Can have the val
ues:
● NONE
● WEEKS
deductionType Describes how the deductions are assessed for this profile.
Can have the values:
● ONE_TIME
● PRO_RATED
● PERIOD_IN_MONTH
● END_DATE
Request
Operation Query
URI https://<api-server>/odata/v2/
TimeAccountPurchaseProfile('27TimeAccountP
urchaseProfile_odata')?$format=json
Response
{
"d": {
"__metadata": {
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
Navigation Properties
Request
Operation Query
URI https://<api-server>/odata/v2/
TimeAccountPurchaseProfilePayComponentAssi
gnment?
$filter=TimeAccountPurchaseProfile_externa
lCode eq
'TimeAccountPurchaseProfile_odata'&
$format=JSON
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
TimeAccountPurchaseProfilePayComponentAssignment(TimeAccountPurchaseProfile_external
Code='TimeAccountPurchaseProfile_odata',payComponent='payComponent_odata')",
"type":
"SFOData.TimeAccountPurchaseProfilePayComponentAssignment"
},
"TimeAccountPurchaseProfile_externalCode":
"TimeAccountPurchaseProfile_odata",
"payComponent": "payComponent_odata",
"payComponentNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/
TimeAccountPurchaseProfilePayComponentAssignment(TimeAccountPurchaseProfile_external
Code='TimeAccountPurchaseProfile_odata',payComponent='payComponent_odata')/
payComponentNav"
}
}
}
]
}
}
16.1.20 TimeAccountSnapshot
This MDF entity contains balance information for a specific time account for a user. It is created while running a
snapshot job for leave liability-related calculation for the user.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Navigation Properties
wfRequestNav wfRequest
unitNav MDFEnumValue
userIdnav UserId
accountTypeNav TimeAccountType
Request
Operation Query
URI https://<<api-server>>/odata/v2/
TimeAccountSnapshot?$format=JSON&
$filter=userId eq '585'
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<<api-server>>/odata/v2/restricted/
TimeAccountSnapshot('585_370265_20170221')",
"type": "SFOData.TimeAccountSnapshot"
},
"externalCode": "585_370265_20170221",
"balanceEffectiveDate": "\\/Date(1487635200000)\\/",
"approvedAbsenceBalance": null,
"approvedAbsenceBalanceAccrualSeparated": null,
"asOfPayPeriodEnd": false,
"balanceAccrualSeparated": null,
"unit": "DAYS",
"balance": "23",
"asOfAccountingPeriodEnd": true,
"outdated": false,
"userId": "585",
"accountType": "ENT#--35411_Recurring",
Related Information
16.1.21 TimeAccountType
The entity is the template regulating what user-specific time accounts should look like.
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
OData Examples
URI: http://<api-server>/odata/v2/TimeAccountType('Standard_ACM')$format=JSON
Method: GET
{
"d": {
"__metadata": {
"uri": "https://<api-server>/odata/v2/
TimeAccountType('Standard_ACM')",
"type": "SFOData.TimeAccountType"
},
"externalCode": "Standard_ACM",
"pepCalendarAutomationLevel": "NONE",
"timeCollectorType": null,
"accountBookingOffsetInMonths": null,
"externalName_ru_RU": null,
"lastModifiedDateTime": "/Date(1435913291000+0000)/",
"levelOfSimulationPrecision": "CALCULATION",
"calculateSnapshotApprovedAbsenceBalance": null,
"accrualWaitingPeriodUnit": null,
"mdfSystemRecordId": "DB1BCEEA57DD4AACA21F000063594EC6",
"accrualPeriodStartDay": null,
"initialFlexibleAccountStartDateRule": null,
"payComponentTerminationAccrualSeparated": null,
"externalName_en_SAP_SLS": null,
"createdDate": "/Date(1435913291000)/",
"accrualFrequencyStartDate": null,
"payComponentGroup": null,
"accrualCalculationMethod": "STANDARD",
"accountCreationReferenceDate": "REFERENCE_DAY_MONTH",
"payComponentAccrualSeparated": null,
"accountCreationOffsetInMonths": "-10",
"createdBy": "admin",
"createdDateTime": "/Date(1435913291000+0000)/",
"lastModifiedBy": "admin",
"externalName_en_GB": null,
"advancesAllowed": null,
"mdfSystemEffectiveStartDate": "/Date(-2208988800000)/",
"externalName_zh_CN": null,
"creation": "RECURRING",
"mdfSystemEffectiveEndDate": "/Date(253402214400000)/",
"accrualRule": "Accrual_30",
"postingOrder": null,
"entitlementMethod": "ENTITLED_AS_ACCRUED",
"externalName_localized": "Standard_ACM",
"externalName_fr_CA": null,
"externalName_defaultValue": "Standard_ACM",
"initialAccrualTransferDateRule": null,
"accrualWaitingPeriod": null,
"lastModifiedDateWithTZ": "/Date(1435913291000+0000)/",
"payComponent": null,
"accrualPeriodStartMonth": null,
"hireRule": "Accrual_30",
"mdfSystemObjectType": "TimeAccountType",
"snapshotsAllowed": false,
"externalName_pt_BR": null,
"accrualCreationOffset": null,
"accrualRecalculationPostingMethod": "CLASSIC",
"mdfSystemEntityId": "201EC4A27797499BB651941AB62AF087",
"mdfSystemStatus": "A",
"externalName_en_US": "Standard_ACM",
"terminationRule": null,
"mdfSystemRecordStatus": "N",
"payoutEligibility": "NOT_ELIGIBLE",
"allowPayoutWithSimulation": null,
"minimumBalanceAllowed": null,
"periodEndProcessingRule": null,
"country": null,
"externalName_it_IT": null,
Related Information
Country/region-specific entities for TimeAccountType are available. Take a look at the sub-sections to see which
countries and regions are supported with country/region-specific fields. These entities are child entities of
TimeAccountType.
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Australia: TimeAccountTypeAUS
This entity contains an Australia specific boolean field which is used for leave loading calculations in Time.
16.1.22.1 TimeAccountTypeAUS
This entity contains an Australia specific boolean field which is used for leave loading calculations in Time.
Supported Operations
Operation Description
Query This object is used to store the country specific boolean field
which is used for leave loading calculation in Time for Australia.
Properties
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
Request
Operation Query
URI https://<API-Server>/odata/v2/TimeAccountTypeAUS?
$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https:<API-Server>/odata/v2/
TimeAccountTypeAUS(TimeAccountType_externalCode='TimeAccountTypeAUSAPI',externalCode
=10908L)",
"type": "SFOData.TimeAccountTypeAUS"
},
"externalCode": "10908",
"TimeAccountType_externalCode": "TimeAccountTypeAUSAPI",
"lastModifiedDateTime": "/Date(1589916838000+0000)/",
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1589916838000+0000)/",
"mdfSystemRecordStatus": "N",
"includeInLeaveLoadingCalculations": true,
"createdBy": "admin",
"createdByNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
TimeAccountTypeAUS(TimeAccountType_externalCode='TimeAccountTypeAUSAPI',externalCode
=10908L)/createdByNav"
}
},
"lastModifiedByNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
TimeAccountTypeAUS(TimeAccountType_externalCode='TimeAccountTypeAUSAPI',externalCode
=10908L)/lastModifiedByNav"
}
},
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
TimeAccountTypeAUS(TimeAccountType_externalCode='TimeAccountTypeAUSAPI',externalCode
=10908L)/mdfSystemRecordStatusNav"
Related Information
16.1.23 TimeManagementAlert
Time Management alerts draw your attention to something you need to take care of in Time Management.
Properties
Here you can see the required fields and business keys for this entity. Check the OData API dictionary in your
instance to see the complete list of properties, and check your metadata for navigations, and associations.
● ABSENCE_RECALCU
LATE
● ACCRUAL_RECALCU
LATE
● TRANSFERDATE_RECAL
CULATE
● TIME_SHEET_RECALCU
LATE
● TIME_SHEET_GENERATE
or
● TIME_SHEET_IMPORT
● ERROR or
● WARNING
● NEW or
● CONFIRMED
Navigation Properties
Code Examples
Example for a request which gets all TimeManagementAlerts for the user with the user id “cgrant”
Query:
https://<hostname>/odata/v2/TimeManagementAlert?targetId'='cgrant'&$format=json
Response:
Sample Code
"__metadata": {
"uri": "https://<hostname>/odata/v2/
TimeManagementAlert('2fa03156e0b249feb4a12cdb4e0eac0e')",
"type": "SFOData.TimeManagementAlert"
},
"externalCode": "2fa03156e0b249feb4a12cdb4e0eac0e",
"date": "/Date(1531267200000)/",
"concatenatedMessage": "Save Error: This is the text defined in
co_messageDefinition.",
"severity": "ERROR",
"targetId": "cgrant",
"targetType": "USER",
"category": "ACCRUAL_RECALCULATE",
"severityName": "Error",
"status": "NEW",
16.1.24 TimeManagementAlertMessage
Here you can see the required fields and business keys for this entity. Check the OData API dictionary in your
instance to see the complete list of properties, and check your metadata for navigations, and associations.
Code Examples
Request to get all messages for a TimeManagementAlert which has the externalCode
'd1e3b9e5efa74860807b48af8462018d':
Query:
https://<hostname>/odata/v2/TimeManagementAlertMessage?
TimeManagementAlert_externalCode='d1e3b9e5efa74860807b48af8462018d'&$format=json
Response:
Sample Code
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/
TimeManagementAlertMessage(TimeManagementAlert_externalCode='d1e3b9e5efa74860807b
48af8462018d',externalCode='157d8648c764486da07f77254b9bb813')",
"type": "SFOData.TimeManagementAlertMessage"
},
"TimeManagementAlert_externalCode":
"d1e3b9e5efa74860807b48af8462018d",
"externalCode": "157d8648c764486da07f77254b9bb813",
"date": "/Date(1492905600000)/",
"lastModifiedDateTime": "/Date(1530790622000+0000)/",
"messageParameter3": null,
"messageParameter2": null,
"messageParameter4": null,
"createdDateTime": "/Date(1530790622000+0000)/",
"defaultMessageText": "No main attendance time type is assigned
to your time profile. Please contact your system administrator.",
"employeeTimeSheet": null,
"messageParameter1": null,
"employeeTime": null,
"messageKey":
"TIMEANDLABOR_TS_CONFIGURATION_NO_MAIN_ATTENDANCE_TIME_TYPE_FOR_EMPLOYEE",
"timeAccount": null,
"lastModifiedBy": "admin",
"timeAccountTypeAccrualTransfer": null,
"mdfSystemRecordStatus": "N",
"createdBy": "admin",
"createdByNav": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
TimeManagementAlertMessage(TimeManagementAlert_externalCode='d1e3b9e5efa74860807b
48af8462018d',externalCode='157d8648c764486da07f77254b9bb813')/createdByNav"
}
},
"lastModifiedByNav": {
16.1.25 TimeManagementPriorServiceConfiguration
This entity contains the Prior Service related configuration for Time Management.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
country To enable the option for selecting the country for the object.
externalName To enable the option for providing the name for the object.
Request
Operation Query
URI https://<API-Server>/odata/v2/
TimeManagementPriorServiceConfiguration?$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
TimeManagementPriorServiceConfiguration('1')",
"type": "SFOData.TimeManagementPriorServiceConfiguration"
},
"externalCode": "1",
"country": "AUS",
"externalName_nl_NL": null,
"lastModifiedDateTime": "/Date(1597342452000+0000)/",
"createdDateTime": "/Date(1597342452000+0000)/",
"externalName_defaultValue": "Aus",
"externalName_es_ES": null,
"externalName_fr_CA": null,
"externalName_ja_JP": null,
"externalName_pt_BR": null,
"externalName_en_SAP_SLS": null,
"externalName_ru_RU": null,
"externalName_it_IT": null,
This entity contains the Prior Service related configuration for Time Management only for Australian employees.
Supported Operations
Query
Properties
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
priorServiceUseCase To enable the option for selecting the prior service use case.
maximumBreakInServiceThresholdUnit To enable the option for selecting the threshold enum (either
‘Days’ or ‘Months’ )
processingOnTimeAccount To enable the option for selecting the enum for processing on
time account (either ‘None’ or ‘Calculate Transfer Date’ )
Querying the Time Management Prior Service User Case Configuration details for an Australian employee.
Request
Operation Query
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
TimeManagementPriorServiceConfigurationUseCaseDetailAUS(TimeManagementPriorServiceCo
nfiguration_externalCode='1',externalCode='1')",
"type": "SFOData.TimeManagementPriorServiceConfigurationUseCaseDetailAUS"
},
"TimeManagementPriorServiceConfiguration_externalCode": "1",
"externalCode": "1",
"maximumBreakInServiceThreshold": null,
"priorServiceUseCase": "1",
"lastModifiedDateTime": "/Date(1597342452000+0000)/",
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1597342452000+0000)/",
"processingOnTimeAccount": "CALCULATE_TRANSFER_DATE",
"mdfSystemRecordStatus": "N",
"maximumBreakInServiceThresholdUnit": null,
"createdBy": "admin",
"createdByNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
TimeManagementPriorServiceConfigurationUseCaseDetailAUS(TimeManagementPriorServiceCo
nfiguration_externalCode='1',externalCode='1')/createdByNav"
}
},
"processingOnTimeAccountNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
TimeManagementPriorServiceConfigurationUseCaseDetailAUS(TimeManagementPriorServiceCo
nfiguration_externalCode='1',externalCode='1')/processingOnTimeAccountNav"
}
},
"lastModifiedByNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
TimeManagementPriorServiceConfigurationUseCaseDetailAUS(TimeManagementPriorServiceCo
nfiguration_externalCode='1',externalCode='1')/lastModifiedByNav"
}
},
"maximumBreakInServiceThresholdUnitNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
TimeManagementPriorServiceConfigurationUseCaseDetailAUS(TimeManagementPriorServiceCo
nfiguration_externalCode='1',externalCode='1')/
maximumBreakInServiceThresholdUnitNav"
}
},
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
TimeManagementPriorServiceConfigurationUseCaseDetailAUS(TimeManagementPriorServiceCo
nfiguration_externalCode='1',externalCode='1')/mdfSystemRecordStatusNav"
}
}
}
]
}
16.1.26 TimeType
A time type is created for each type of leave. You can use this entity to read the time types created.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Navigation Properties
Use Case: Get a specific time type including attached time account types
Request
Operation Query
URI https://<api-server>/odata/v2/TimeType('VACATION')?
$expand=timeAccountPostingRules&$format=JSON
Response
{
"d": {
"__metadata": {
"uri": "https://<api-server>/odata/v2/TimeType('VACATION')",
"type": "SFOData.TimeType"
},
Related Information
16.1.27 TimeType<Country/Region>
Country/region-specific entities for TimeType are available. Take a look at the sub-sections to see which countries
are supported with country/region-specific fields. These entities are child entities of TimeType.
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Australia: TimeTypeAUS
This entity contains Australia-specific fields, which are used to configure the advance leave payment for absences.
Canada: TimeTypeCAN
This entity contains a Canada-specific enum field, which is used for short term disability in Time.
This entity contains Germany-specific enum fields that are the basis for calculating default values for the continued
pay dates and sick pay supplement dates in Time Off.
Netherlands: TimeTypeNLD
This entity contains a Netherlands-specific enum field which is used for tracking recovery from illness to record
Concurrent Absences in Time Off.
USA: TimeTypeUSA
This entity contains USA-specific enum field, which is used for short term disability in Time.
This entity contains Australia specific fields, which is used to configure the advance leave payment for absences.
Supported Operations
Operation Description
Query This object is used to store the country specific Time Type
fields information to allow the requesting of advance leave pay
ment for Australia.
Properties
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
leaveAdvancePaymentAllowed The option to enable the option for advance leave payment for the absences.
splitAcrossFinancialYearAllowed The option to enable the option for split advance payment across financial year for
the absences.
Use Case: Getting the Time Type Information for an employee from Australia
Request
Operation Query
URI https://<API-server>/odata/v2/TimeTypeAUS?$format=json
Response
{
"d": {
"results": [
Related Information
This entity contains a Canada specific enum field, which is used for short term disability in Time.
Supported Operations
Operation Description
Query This object is used to store the country specific Time Type field
information to allow the requesting of short term disability for
Canada.
Properties
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
sicknessVariant The option to select the Sickness Variant for the absence.
Use Case : Querying the Time Type information for an employee from Canada
Request
Operation Query
URI https://<API-Server>/odata/v2/TimeTypeCAN?$format=json
Response
{
"d": {
"results": [
Related Information
16.1.27.3 TimeTypeDEU
This entity contains Germany-specific fields that are the basis for calculating default values for continued pay dates
and the sick pay supplement dates.
Operation Description
Query This object is used to store the country-specific time type field
information to allow the calculation of default values for contin
ued pay dates and sick pay supplement dates.
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
sicknessVariant This field is used to select the sickness variant for the absence.
durationOfContinuedSickPayPeriod This field is used to select the length of the continued sick pay
period.
durationOfContinuedSickPayTimeUnit This field is used to select the time unit for the duration of the
continued pay.
durationOfSickPaySupplementPeriod This field is used to select the duration of the sick pay supple
ment period.
durationOfSickPaySupplementTimeUnit This field is used to selct the time unit of the duration of the
sick pay supplement period.
Use Case: Querying the Time Type Information for an Employee from Germany
Request
Operation Query
URI https://<api-server>/odata/v2/TimeTypeDEU?$format=json
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/restricted/
TimeTypeDEU(TimeType_externalCode='TimeTypeDEU',externalCode=13898L)",
"type": "SFOData.TimeTypeDEU"
},
"externalCode": "13898",
"TimeType_externalCode": "TimeTypeDEU",
"lastModifiedDateTime": "/Date(1622732330000+0000)/",
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1622732330000+0000)/",
"durationOfContinuedSickPayTimeUnit": null,
"mdfSystemRecordStatus": "N",
"durationOfSickPaySupplementTimeUnit": null,
"durationOfSickPaySupplementPeriod": null,
"createdBy": "admin",
"durationOfContinuedSickPayPeriod": null,
"sicknessVariant": "WITH_MANUAL_ENTRY_OF_SICK_PAY_DATES",
"sicknessVariantNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/restricted/
TimeTypeDEU(TimeType_externalCode='TimeTypeDEU',externalCode=13898L)/
sicknessVariantNav"
}
},
"durationOfSickPaySupplementTimeUnitNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/restricted/
TimeTypeDEU(TimeType_externalCode='TimeTypeDEU',externalCode=13898L)/
durationOfSickPaySupplementTimeUnitNav"
}
},
"createdByNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/restricted/
TimeTypeDEU(TimeType_externalCode='TimeTypeDEU',externalCode=13898L)/createdByNav"
}
},
"durationOfContinuedSickPayTimeUnitNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/restricted/
TimeTypeDEU(TimeType_externalCode='TimeTypeDEU',externalCode=13898L)/
durationOfContinuedSickPayTimeUnitNav"
}
},
"lastModifiedByNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/restricted/
TimeTypeDEU(TimeType_externalCode='TimeTypeDEU',externalCode=13898L)/
lastModifiedByNav"
}
},
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/restricted/
TimeTypeDEU(TimeType_externalCode='TimeTypeDEU',externalCode=13898L)/
mdfSystemRecordStatusNav"
}
}
}
]
}
Additional Information
The TimeTypeDEU object is delivered as inactive. Please activate the SicknessDEUDefaulting feature toggle to
access this object.
Related Information
16.1.27.4 TimeTypeNLD
This entity contains a Netherlands specific enum field which is used for tracking recovery from illness in Time Off.
Supported Operations
Operation Description
Query This object is used to store the country specific Time Type field
information to allow the tracking of recovery from illness in the
Netherlands.
Properties
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
illnessRecoveryTracking This field is used for recording the illness recovery tracking op
tions for the Netherlands absence.
Use Case: Querying the Time Type information for an employee from the
Netherlands
Request
Operation Query
URI https://<api-server>/odata/v2/TimeTypeNLD?$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
TimeTypeNLD(TimeType_externalCode='NLD Sickness IRT',externalCode=15496L)",
"type": "SFOData.TimeTypeNLD"
},
"externalCode": "15496",
"TimeType_externalCode": "NLD Sickness IRT",
"lastModifiedDateTime": "/Date(1629180421000+0000)/",
"entityUUID": "AD71A380867B4A0FBFF19E9518DBFCDC",
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1628856971000+0000)/",
"mdfSystemRecordStatus": "N",
"illnessRecoveryTracking": "WITH_MANUAL_ENTRY_OF_AVAILABLE_WORK_CAPACITY",
"createdBy": "admin",
"illnessRecoveryTrackingNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
TimeTypeNLD(TimeType_externalCode='NLD Sickness IRT',externalCode=15496L)/
illnessRecoveryTrackingNav"
}
},
"createdByNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
TimeTypeNLD(TimeType_externalCode='NLD Sickness IRT',externalCode=15496L)/
createdByNav"
}
},
"lastModifiedByNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
TimeTypeNLD(TimeType_externalCode='NLD Sickness IRT',externalCode=15496L)/
lastModifiedByNav"
}
Additional Information
TimeTypeNLD object is delivered as inactive. You need to activate it to access this object. This object can be
activated only when the ConcurrentAbsence feature toggle is enabled.
Related Information
16.1.27.5 TimeTypeUSA
This entity contains USA specific enum field, which is used for short term disability in Time.
Supported Operations
Operation Description
Query This object is used to store the country specific Time Type field
information to allow the requesting of short term disability for
USA.
Properties
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
sicknessVariant The option to select the Sickness Variant for the absence.
Use Case : Querying the Time Type information for an employee from USA
Request
Operation Query
URI https://<API-Server>/odata/v2/TimeTypeUSA?$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
TimeTypeUSA(TimeType_externalCode='usa_std',externalCode=11148L)",
"type": "SFOData.TimeTypeUSA"
},
"externalCode": "11148",
"TimeType_externalCode": "usa_std",
"lastModifiedDateTime": "/Date(1593146495000+0000)/",
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1593146495000+0000)/",
"mdfSystemRecordStatus": "N",
"createdBy": "admin",
"sicknessVariant": "SHORT_TERM_DISABILITY ",
"sicknessVariantNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
TimeTypeUSA(TimeType_externalCode='usa_std',externalCode=11148L)/sicknessVariantNav"
}
},
"createdByNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
TimeTypeUSA(TimeType_externalCode='usa_std',externalCode=11148L)/createdByNav"
}
},
"lastModifiedByNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
TimeTypeUSA(TimeType_externalCode='usa_std',externalCode=11148L)/lastModifiedByNav"
}
},
"mdfSystemRecordStatusNav": {
"__deferred": {
Related Information
16.1.28 TimeTypeProfile
You can use this entity to view the time type profile of an employee. You specify which time types the employee is
allowed to take. The profile is part of an employee's job information.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Navigation Properties
Request
Tip
We recommend you to use the new syntax with $filter as shown below for the "GET" operation.
Avoid using the earlier syntax with just the key, e.g: /odata/v2/TimeTypeProfile('CODE').
If you have already used the $filter syntax, there are no issues and no adjustments to the API request are
required.
This example retrieves data to get the single record with external code 'CLT_STD' that is valid as of today
Operation Query
https://<api-server>/odata/v2/TimeTypeProfile?$filter=exter-
nalCode eq 'CLT_STD'
Note
Today is the date fetched from the tenantPreferredTimezone. If this not configured, the system timezone is
used.
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/TimeTypeProfile('Vacation
CLT')",
"type": "SFOData.TimeTypeProfile"
},
"externalCode": "Vacation CLT",
"mdfSystemObjectType": "TimeTypeProfile",
"mdfSystemEffectiveEndDate": "\/Date(253402214400000)\/",
"mdfSystemVersionId": null,
"mainBreakTimeType": "BREAK CLT",
"externalName_ru_RU": null,
"externalName_defaultValue": "Vacation CLT",
"lastModifiedDateTime": "\/Date(1440400906000+0000)\/",
"timeRecordingVariant": "CLOCK_TIME",
"mdfSystemTransactionSequence": "1",
"mdfSystemRecordId": "97613000C22F405FA9B3FB681ABACDD6",
"mdfSystemEntityId": "EB2F5C3870EB43D0A455DF60B09665FF",
"mainAttendanceTimeType": null,
"mdfSystemStatus": "A",
"externalName_en_US": null,
"lastModifiedDateWithTZ": "\/Date(1440400906000+0000)\/",
"createdDate": "\/Date(1440408106000)\/",
"mdfSystemRecordStatus": "N",
"mainESSTimeType": "VACATION CLT",
"country": null,
"createdBy": "daily",
"lastModifiedBy": "daily",
"createdDateTime": "\/Date(1440400906000+0000)\/",
A work schedule defines the employee´s working pattern. It is assigned to an employee´s job information, showing
how many days per week the employee is going to work.
There are three models for setting up a work schedule. You specify which one you want to use in the Model field.
Your options are:
● Simple
● Period
● Schedule
Depending on the configuration, different fields are relevant for the work schedule.
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
This table shows the required fields and business keys for this entity. Check the OData API dictionary in your
instance to see the complete list of properties, and check your metadata for navigations and associations.
Navigation Properties
Tip
We recommend you to use the new syntax with $filter as shown below for the "GET" operation.
Avoid using the earlier syntax with just the key, e.g: /odata/v2/WorkSchedule('CODE').
If you have already used the $filter syntax, there are no issues and no adjustments to the API request are
required.
This example gets a single work schedule record with external code 'NORM' that is valid as of today.
Operation Query
https://<api-server>/odata/v2/WorkSchedule?$filter=exter-
nalCode eq 'NORM'
Note
Today means the date fetched from the tenantPreferredTimezone. If this not configured, the system timezone
is used.
Code Examples
Example 1: Retrieve example work schedule defined as SIMPLE model (expand workScheduleDays)
Method: GET
Sample Code
{
"d": {
"__metadata": {
Example 2: Retrieve example work schedule defined as PERIOD model (expand workScheduleDayModels)
Method: GET
Sample Code
{
"d": {
"__metadata": {
"uri": "https://<api-server>/odata/v2/WorkSchedule('5DAYS_8HOURS')",
"type": "SFOData.WorkSchedule"
},
"externalCode": "5DAYS_8HOURS",
"mdfSystemObjectType": "WorkSchedule",
"lastModifiedDateTime": "/Date(1433317499000+0000)/",
"averageHoursPerDay": "8",
"timeRecordingVariant": "DURATION",
"startingDate": "/Date(-2208988800000)/",
"mdfSystemRecordId": "6A86982271F541CD884CE18DD95B8808",
"mdfSystemEntityId": "558C5D80215C49548B6F2D5A4DE7F0A5",
"userId": null,
"mdfSystemStatus": "A",
"externalName_en_US": null,
"averageHoursPerMonth": "160",
"externalName_en_SAP_SLS": null,
"createdDate": "/Date(1429632098000)/",
"individualWorkSchedule": false,
"mdfSystemRecordStatus": "N",
"periodModel": null,
"country": null,
"externalName_it_IT": null,
"createdBy": "admin",
"externalName_en_RTL": null,
"createdDateTime": "/Date(1429624898000+0000)/",
"lastModifiedBy": "admin",
"externalName_en_GB": "5 Days 8 Hours",
"mdfSystemEffectiveStartDate": "/Date(-2208988800000)/",
"externalName_nl_NL": null,
"externalName_zh_CN": null,
"externalName_en_DEBUG": null,
"flexibleRequestingAllowed": false,
"externalName_ko_KR": null,
"mdfSystemEffectiveEndDate": "/Date(253402214400000)/",
"mdfSystemVersionId": null,
"searchString": null,
"externalName_de_DE": null,
"externalName_localized": "5 Days 8 Hours",
"externalName_es_MX": null,
"externalName_defaultValue": "5 Days 8 Hours",
"externalName_da_DK": null,
"mdfSystemTransactionSequence": "1",
"externalName_fi_FI": null,
"shiftClassification": null,
"externalName_zh_TW": null,
"lastModifiedDateWithTZ": "/Date(1433317499000+0000)/",
"externalName_ja_JP": null,
"averageHoursPerYear": "1840",
"externalName_pl_PL": null,
"averageWorkingDaysPerWeek": "5",
"modelCategory": "PERIOD",
"externalName_es_ES": null,
"averageHoursPerWeek": "40",
"lastModifiedDate": "/Date(1433324699000)/",
"externalName_fr_FR": null,
"countryNav": {
"__deferred": {
Example 3: Retrieve example work schedule defined as SCHEDULE model (expand periodModelNav)
Method: GET
Sample Code
{
"d": {
"__metadata": {
"uri": "https://<api-server>/odata/v2/WorkSchedule('WS_SCHEDULE_EXAMPLE')",
"type": "SFOData.WorkSchedule"
},
"externalCode": "WS_SCHEDULE_EXAMPLE",
"mdfSystemObjectType": "WorkSchedule",
"lastModifiedDateTime": "/Date(1464156863000+0000)/",
"averageHoursPerDay": null,
"timeRecordingVariant": "DURATION",
"startingDate": "/Date(1464739200000)/",
"mdfSystemRecordId": "DE20B024E70446EC8C66FE8B3BE99F73",
"mdfSystemEntityId": "AA994A78C1E84BADB36FE9F60A5388D4",
"userId": null,
"mdfSystemStatus": "A",
"externalName_en_US": "WS Schedule Model Example",
"averageHoursPerMonth": null,
"externalName_en_SAP_SLS": null,
"createdDate": "/Date(1464164063000)/",
"individualWorkSchedule": false,
URI: http://<api-server>/odata/v2/WorkSchedule/?$format=JSON
Method: POST
Body
Sample Code
{
"externalCode":"5DAY8HOURo",
"externalName_defaultValue":"5DAY8HOURo",
"timeRecordingVariant":"DURATION",
"startingDate":"/Date(1136073600000)/",
"individualWorkSchedule":false,
"modelCategory":"SCHEDULE",
"periodModelNav":{
"__deferred":{
"uri":"https://<api-server>/odata/v2/WorkSchedule('5DAY8HOUR')/
periodModelNav"
}
}
}
Response
Sample Code
{
"d": {
"__metadata": {
"uri": "https://<api-server>/odata/v2/WorkSchedule('5DAY8HOURo')",
"type": "SFOData.WorkSchedule"
},
"externalName_defaultValue": "5DAY8HOURo",
"timeRecordingVariant": "DURATION",
"startingDate": "/Date(1136073600000)/",
"individualWorkSchedule": false,
"modelCategory": "SCHEDULE",
"externalCode": "5DAY8HOURo",
"periodModelNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/WorkSchedule('5DAY8HOURo')/
periodModelNav"
URI: http://<api-server>/odata/v2/WorkSchedule('5DAY8HOURo')/?$format=JSON
Method: PUT
Sample Code
{
"externalCode":"5DAY8HOURo",
"externalName_defaultValue":"5DAY8HOURo",
"timeRecordingVariant":"DURATION",
"startingDate":"/Date(1167609600000)/",
"individualWorkSchedule":false,
"modelCategory":"SCHEDULE",
"periodModelNav":{
"__deferred":{
"uri":"https://<api-server>/odata/v2/WorkSchedule('5DAY8HOUR')/
periodModelNav"
}
}
}
URI: http://<api-server>/odata/v2/upsert?$format=JSON
Method: POST
Body:
Sample Code
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/WorkSchedule('5DAY8HOURo')",
"type": "SFOData.WorkSchedule"
},
"externalCode": "5DAY8HOURo",
"externalName_defaultValue": "5DAY8HOURo",
"timeRecordingVariant": "DURATION",
"startingDate": "/Date(1136073600000)/",
"individualWorkSchedule": false,
"modelCategory": "SCHEDULE",
"periodModelNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/WorkSchedule('5DAY8HOUR')/
periodModelNav"
}
}
}
Response:
Sample Code
URI: http://<api-server>/odata/v2/WorkSchedule('5DAY8HOURo')?$format=JSON
Method: DELETE
Sample Code
Related Information
16.1.30 WorkScheduleDayModel
With a work schedule day model, you can define how the number of hours worked on a particular day should look.
You can then use the day models in your work schedule if you choose the Period or Schedule models in your work
schedule.
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Navigation Properties
Code Examples
URI: http://<api-server>/odata/v2/WorkScheduleDayModel('CLT_0800-1700')?$format=JSON
Method: GET
Response:
Sample Code
{
"d": {
"__metadata": {
"uri": "https://<api-server>/odata/v2/
WorkScheduleDayModel('CLT_0800-1700')",
"type": "SFOData.WorkScheduleDayModel"
},
"externalCode": "CLT_0800-1700",
"externalName_ko_KR": null,
"mdfSystemObjectType": "WorkScheduleDayModel",
"mdfSystemEffectiveEndDate": "/Date(253402214400000)/",
"mdfSystemVersionId": null,
"externalName_pt_BR": null,
"externalName_de_DE": null,
"externalName_localized": "CLT - 08:00 - 17:00 w/ Breaks",
"externalName_defaultValue": "CLT - 08:00 - 17:00 w/ Breaks",
"externalName_fr_CA": null,
"externalName_ru_RU": null,
"lastModifiedDateTime": "/Date(1446562100000+0000)/",
"hoursAndMinutes": "08:00",
"timeRecordingVariant": "CLOCK_TIME",
"mdfSystemTransactionSequence": "1",
"workingHours": "8",
"mdfSystemRecordId": "0D65A9DA816541AAA95A17C7300A40AA",
"shiftClassification": null,
"mdfSystemEntityId": "7CCB5D6266B94FD3AAC92B08E3BD5135",
"description": null,
"mdfSystemStatus": "A",
"lastModifiedDateWithTZ": "/Date(1446562100000+0000)/",
"externalName_en_US": "CLT - 08:00 - 17:00 w/ Breaks",
"externalName_en_SAP_SLS": null,
"createdDate": "/Date(1446562100000)/",
"externalName_ja_JP": null,
"mdfSystemRecordStatus": "N",
"country": null,
"createdBy": "admin",
"externalName_it_IT": null,
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1446562100000+0000)/",
"mdfSystemEffectiveStartDate": "/Date(-2208988800000)/",
"lastModifiedDate": "/Date(1446562100000)/",
"externalName_en_GB": null,
"externalName_es_ES": null,
URI: http://<api-server>/odata/v2/WorkScheduleDayModel?$format=JSON
Method: POST
Body:
Sample Code
{
"externalCode": "DUR_odata",
Response:
Sample Code
{
"d": {
"__metadata": {
"uri": "https://<api-server>/odata/v2/
WorkScheduleDayModel('DUR_odata')",
"type": "SFOData.WorkScheduleDayModel"
},
"externalName_defaultValue": "DUR_odata",
"timeRecordingVariant": "DURATION",
"workingHours": "8",
"externalCode": "DUR_odata"
}
}
URI: http://<api-server>/odata/v2/WorkScheduleDayModel('DUR_odata')?$format=JSON
Method: PUT
Body:
Sample Code
{
"externalCode": "DUR_odata",
"externalName_defaultValue": "DUR_odata",
"timeRecordingVariant": "DURATION",
"workingHours": "6"
}
URI: http://<api-server>/odata/v2/upsert?$format=JSON
Method: POST
Body:
Sample Code
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/
WorkScheduleDayModel('DUR_odata')",
"type": "SFOData.WorkScheduleDayModel"
},
"externalCode": "DUR_odata",
"externalName_defaultValue": "DUR_odata",
"timeRecordingVariant": "DURATION",
"workingHours": "4"
}
Sample Code
{
"d": [
{
"key": null,
"status": "OK",
"editStatus": "UPSERTED",
"message": null,
"index": 0,
"httpCode": 200,
"inlineResults": null
}
]
}
URI: http://<api-server>/odata/v2/WorkScheduleDayModel('DUR_odata')?$format=JSON
Method: DELETE
Related Information
16.1.31 WorkScheduleDayModelAssignment
With a work schedule day model assignment, you can define how the number of hours worked on a particular day
should look.
Supported Operations
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Code Examples
For code examples, please read look at Example 2 in the WorkSchedule [page 725] documentation.
Related Information
16.1.32 WorkScheduleDayModelAssignmentSegment
Supported Operations
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Property Description
Use Case: Retrieve the work schedule day model assignments and the
corresponding segments for a defined work schedule
Request
Operation Query
URI https://<api-server>/odata/v2/
WorkSchedule('WS_PERIOD_TEST')?
$expand=workScheduleDayModels,workScheduleDayModels/
segments&$format=JSON
Response
Sample Code
{
"d": {
"__metadata": {
"uri": "https://<api-server>/odata/v2/WorkSchedule('WS_PERIOD_TEST')",
"type": "SFOData.WorkSchedule"
},
"externalCode": "WS_PERIOD_TEST",
"mdfSystemObjectType": "WorkSchedule",
"lastModifiedDateTime": "/Date(1464186573000+0000)/",
"averageHoursPerDay": null,
"timeRecordingVariant": "CLOCK_TIME",
"startingDate": "/Date(978307200000)/",
"mdfSystemRecordId": "DA634C4D7BE34AEBBEE92D9A737C0E41",
"mdfSystemEntityId": "961371476F5A4AF599A7C30EA1CF852D",
"userId": null,
"mdfSystemStatus": "A",
"externalName_en_US": "WS Period Test",
"averageHoursPerMonth": null,
"externalName_en_SAP_SLS": null,
"createdDate": "/Date(1464193773000)/",
"individualWorkSchedule": false,
"mdfSystemRecordStatus": "N",
"periodModel": null,
"country": null,
"externalName_it_IT": null,
"createdBy": "admin",
"externalName_en_RTL": null,
"createdDateTime": "/Date(1464186573000+0000)/",
Related Information
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Code Examples
Example: Get the work schedule day model segments for a work schedule day model
URI: http://<api-server>/odata/v2/WorkScheduleDayModel('08:00-16:00_15MB_60LB')?$expand=segments&
$format=JSON
Sample Code
{
"d": {
"__metadata": {
"uri": "https://<api-server>/odata/v2/
WorkScheduleDayModel('08:00-16:00_15MB_60LB')",
"type": "SFOData.WorkScheduleDayModel"
},
"externalCode": "08:00-16:00_15MB_60LB",
"externalName_ko_KR": null,
"mdfSystemObjectType": "WorkScheduleDayModel",
"mdfSystemEffectiveEndDate": "/Date(253402214400000)/",
"mdfSystemVersionId": null,
"externalName_de_DE": null,
"externalName_localized": "08:00 - 16:00 (15 min MB, 60 min LB)",
"externalName_defaultValue": "08:00 - 16:00 (15 min MB, 60 min LB)",
"externalName_es_MX": null,
"lastModifiedDateTime": "/Date(1464069892000+0000)/",
"externalName_da_DK": null,
"hoursAndMinutes": "06:45",
"timeRecordingVariant": "CLOCK_TIME",
"mdfSystemTransactionSequence": "1",
"externalName_fi_FI": null,
"workingHours": "6.75",
"mdfSystemRecordId": "3F852D69599F47F19619E5A3E539131A",
"shiftClassification": null,
"mdfSystemEntityId": "45571C76E084410EA47AC84183A54B41",
"description": null,
"mdfSystemStatus": "A",
"lastModifiedDateWithTZ": "/Date(1464069892000+0000)/",
"externalName_zh_TW": null,
"externalName_en_US": "08:00 - 16:00 (15 min MB, 60 min LB)",
"externalName_en_SAP_SLS": null,
"createdDate": "/Date(1442412745000)/",
"externalName_ja_JP": null,
"mdfSystemRecordStatus": "N",
"externalName_pl_PL": null,
"country": null,
"createdBy": "admin",
"externalName_it_IT": null,
Related Information
16.1.34 WorkScheduleDay
Work schedule day defines the working time on a day. This entity is only used for work schedule of type SIMPLE.
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Properties
Here you can see the required fields and business keys for this entity. Check the OData API dictionary in your
instance to see the complete list of properties, and check your metadata for navigations and associations.
Code Examples
For code examples, please look at Example 1 in the WorkSchedule [page 725] documentation.
In this section, you'll find the APIs available for time recording functionalities. Employees can record their
attendances, overtime, on-call times, and allowances.
Before using any of the time recording entities described here, you need to activate them.
In addition, you need to have permission to use the individual objects in question.
16.2.1 ExternalTimeData
The External Time Data object contains recorded time data from an external system so that it can be included in
the Employee Central Payroll Time Sheet.
The entity must be used every time a customer wants to import external time data into the Employee Central
system.
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Use Cases
This upserts external data for a user who records time on a Duration basis.
Operation Upsert
URI http://<api-server>/odata/v2/upsert
{
"__metadata":{
"uri":"ExternalTimeData('test1')"
},
"externalCode":"test1",
"startDate":"\/
Date(1511218800000)\/",
"userId":"ashirly1",
"hours":"8.5",
"timeType":"HGB_WORK1"
}
Note
No response is required here because for upserts just return a status 200 OK with a response body indicating
all upsert results.
This upserts external data for a user who records time on a Clock Time basis.
Operation Upsert
URI http://<api-server>/odata/v2/upsert
<Payload>
Sample Code
{
"__metadata":{
"uri":"ExternalTimeData('test1')"
},
"externalCode":"test1",
"startDate":"\/
Date(1511218800000)\/",
"userId":"ashirly1",
"startTime":"PT13H20M",
"endTime":"PT13H50M",
"timeType":"HGB_WORK1"
}
No response is required here because for upserts just return a status 200 OK with a response body indicating
all upsert results.
Operation Query
URI http://<api-server>/odata/v2/
ExternalTimeData('test10001')
Sample Response
Sample Code
Operation Delete
URI http://<api-server>/odata/v2/
ExternalTimeData('test10001')
Operation Insert
URI http://<api-server>/odata/v2/
ExternalTimeData
<Payloads>
Sample Code
{
"__metadata": {
"uri":
"ExternalTimeData('test10001')"
},
"externalCode": "test10001",
"startDate": "/
Date(1526976229000)/",
"startTime": "PT16H00M",
"endTime": "PT17H00M",
"userIdNav" : {
"__deferred": {
"uri": "https://<api-
server>/odata/v2/restricted/
User('croller')"
}
}
}
Sample Response
16.2.2 ExternalTimeRecord
The entity represents a time record created outside of the Employee Central system.
Business Context
The ExternalTimeRecord OData API is used to import employee time records recorded in an external system into
the Employee Central system. After import, the employee time records are converted into time sheet entries. These
time records are later valuated within the Payroll Time Sheet and transferred to Employee Central Payroll.
This OData API performs mass replication of time records from an external time recording system into Employee
Central. It is possible to use the $BATCH directive, which we assume is the standard method to use this API.
Use Case: Creation of an external time record with external time segments
This is a sample use case for the ExternalTimeRecord OData API - the creation of an external time record with
external time segments. This involves uploading an external time record containing time segments into the time
sheet database in the SAP SuccessFactors system.
● Sending a POST request containing a JSON representation of both External Time Record and External Time
Segment MDF entities
● The response to the POST request
OData API ExternalTimeRecord - creation of an external time record with external time segments.
Request Information
Operation POST
URI http://<api-server>/odata/v2/upsert
Payload
Sample Code
{
"__metadata":{
"uri":"
ExternalTimeRecord('test1')"
},
"externalCode":"test1",
"date":"\/Date(1453104229000)\/",
"userId":"cgrant1",
"externalTimeSegments":[
{
"externalCode":"",
"hours":4.0
},
{
"externalCode":"",
"hours":4.0
},
{
"externalCode":"",
"hours":1.0
}
]
}
Related Information
16.2.3 TimeCollector
Time collectors are configurable multi-purpose counters that are processed in time valuation.
During time valuation, time collectors can be created, augmented, or reset (to zero) as the result of time valuation
operations ('collector update'). The frequency at which a collector is reset is configurable. Time collectors either
Time collectors are either transient during time valuation or they are written to the database for consumption by
follow-up processes.
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Code Examples
Sample Code
Method: GET
Response:
{
"d": {
"results": [
{
"__metadata": {
"uri":
https://<api-server>/odata/v2/
TimeCollector('891f04a35f4b41889a2b3644202000a5')",
"type": "SFOData.TimeCollector"
},
"externalCode": "891f04a35f4b41889a2b3644202000a5",
"startDate": "/Date(1509494400000)/",
"timeCollectorType": "DAILYCOLL",
"bookingDate": "/Date(1512000000000)/",
"endDate": "/Date(1512000000000)/",
"lastModifiedDateTime": "/Date(1519200242000+0000)/",
"collectorValue": "1",
"createdBy": "v4admin",
"userId": "mhoff1",
"createdDateTime": "/Date(1519200242000+0000)/",
"lastModifiedBy": "v4admin",
"changeValue": "0",
"mdfSystemRecordStatus": "N",
"wfRequestNav": {
"__deferred": {
"uri": "https:// <api-server>/odata/v2/
TimeCollector('891f04a35f4b41889a2b3644202000a5')/wfRequestNav"
}
},
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https:// <api-server>/odata/v2/
TimeCollector('891f04a35f4b41889a2b3644202000a5')/mdfSystemRecordStatusNav"
}
},
"userIdNav": {
"__deferred": {
"uri": "https:// <api-server>/odata/v2/
TimeCollector('891f04a35f4b41889a2b3644202000a5')/userIdNav"
16.2.4 EmployeeTimeSheet
This entity contains information related to a time sheet of an employee, including the time recording method and
the time valuation rules. You use this entity to store header information and cumulated time valuation results
referring to one week of an employee’s time recording.
Supported Operations
The following example retrieves the time sheet of user pcount with start date 2020-04-19.
Request
Operation Query
URI https://<API-server>/odata/v2/EmployeeTimeSheet?
$filter=userId eq 'pcounter' and startDate eq
datetime'2020-04-19T00:00:00'&$format=JSON
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://API-server/odata/v2/
EmployeeTimeSheet('aae311f887da443590ea1746dbd48c7f')",
"type": "SFOData.EmployeeTimeSheet"
},
"externalCode": "aae311f887da443590ea1746dbd48c7f",
"lastModifiedDateTime": "/Date(1594041657000+0000)/",
"endDate": "/Date(1587772800000)/",
"createdDateTime": "/Date(1594041657000+0000)/",
"plannedHoursAndMinutes": "40:00",
"workingTimeAccount": null,
"period": "04/19/2020 - 04/25/2020",
"recordedWorkingTime": "0",
"replacedBy": null,
"externalTimesExist": "NO",
"timeRecordingMethod": "POSITIVE",
"mdfSystemRecordStatus": "N",
"workflowAction": "ACTION_SAVE",
"absencesExist": "NO",
"fullWorkscheduleCovered": "NO",
"plannedWorkingTime": "2400",
"timeSheetHash":
"29f16a1faa39c6baeeb4d4838df6e1d5d3492776f41e6f7c7ca22afb17416eb4",
"manualEntriesExist": "NO",
"startDate": "/Date(1587254400000)/",
"approvalStatus": "PENDING",
"singleRecordApprovalMissing": null,
"editable": null,
"replaces": null,
"lastModifiedBy": "v4admin",
"workflowRequestId": null,
"userId": "pcounter",
"generatedEntriesExist": "NO",
"workingTimeAccountHoursAndMinutes": "",
"recordedHoursAndMinutes": "0:00",
"createdBy": "v4admin",
"comment": null,
"userIdNav": {
"__deferred": {
"uri": "https://API-server/odata/v2/
EmployeeTimeSheet('aae311f887da443590ea1746dbd48c7f')/userIdNav"
}
},
Related Information
16.2.5 EmployeeTimeValuationResult
You use the entity to store the results of a time valuation that are displayed on the UI and replicated to payroll.
Supported Operations
The following example retrieves all approved time valuation results that have the booking date 2020-04-19.
Request
Operation Query
URI https://<API-server>/odata/v2/EmployeeTimeValuationResult?
$filter=bookingDate eq datetime'2020-04-20T00:00:00' and
approvalStatus eq 'APPROVED'&$format=JSON
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://API-server/odata/v2/
EmployeeTimeValuationResult(EmployeeTimeSheet_externalCode='bbaaa857cd2e47ad95c0f79b
5d40bea8',externalCode='167a9e93b7d94e77a91ffae6ccd26365')",
"type": "SFOData.EmployeeTimeValuationResult"
},
"externaAPI-serverlCode": "167a9e93b7d94e77a91ffae6ccd26365",
"EmployeeTimeSheet_externalCode":
"bbaaa857cd2e47ad95c0f79b5d40bea8",
"lastModifiedDateTime": "/Date(1587861082000+0000)/",
"postingTarget": "EC_PAYROLL",
"createdDateTime": "/Date(1587699939000+0000)/",
"hoursAndMinutes": "8:00",
"payTypeExternalName": "Regular Time",
"allowanceType": null,
"approvalStatus": "APPROVED",
"hours": "8",
"costCenter": null,
"lastModifiedBy": "v4admin",
"mdfSystemRecordStatus": "N",
"payTypeName": "RT-CALCPAY",
"timeTypeGroup": "RT-CALCPAY",
"createdBy": "v4admin",
"bookingDate": "/Date(1587340800000)/",
"postingTargetNav": {
"__deferred": {
"uri": "https://API-server/odata/v2/
EmployeeTimeValuationResult(EmployeeTimeSheet_externalCode='bbaaa857cd2e47ad95c0f79b
5d40bea8',externalCode='167a9e93b7d94e77a91ffae6ccd26365')/postingTargetNav"
}
},
"createdByNav": {
"__deferred": {
"uri": "https://API-server/odata/v2/
EmployeeTimeValuationResult(EmployeeTimeSheet_externalCode='bbaaa857cd2e47ad95c0f79b
5d40bea8',externalCode='167a9e93b7d94e77a91ffae6ccd26365')/createdByNav"
}
},
"costCenterNav": {
"__deferred": {
"uri": "https://API-server/odata/v2/
EmployeeTimeValuationResult(EmployeeTimeSheet_externalCode='bbaaa857cd2e47ad95c0f79b
5d40bea8',externalCode='167a9e93b7d94e77a91ffae6ccd26365')/costCenterNav"
Related Information
Workflow entities allow you to query the data of workflow requests, workflow steps, comments, participators,
allowed actions, as well as other workflow information displayed on the Workflow Details page. You can also use the
workflow function imports to change workflow statuses and post comments.
Permissions
Role Based
Manage Workflows Manage Workflow Requests
Note
* For Employee Central workflows, only the workflow admin can decline a request. For MDF workflows, the
current approver can decline a request.
** In the case of escalation or delegation, the escalatee or delegatee becomes the current approver. The
workflow request still follows its own course of status transition. Additional statuses are available to indicate the
escalation or delegation progress.
17.1 WfRequest
This entity stores basic data of a workflow such as the overall status and the current step number. This is the
workflow used by Employee Central as well as MDF objects.
Supported Operations
Operation Description
Edit operations are not supported by the entity itself. However, you can use the following function imports to modify
your workflow requests:
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
Navigation Property
workflowAllowedActionListNav WorkflowAllowedActionList [page 795] Navigate to the list of allowed action for
the workflow request.
The following example shows how to query the basic information of a workflow by ID:
Request
Operation Query
URI https://<hostname>/odata/v2/
WfRequest(65L)?$format=JSON
Response
{
"d": {
"__metadata": {
"uri": "https://<hostname>/odata/v2/WfRequest(65L)",
"type": "SFOData.WfRequest"
},
"wfRequestId": "65",
"lastModifiedDateTime": "/Date(1496851039000+0000)/",
"lastModifiedBy": "101013",
"module": "HRIS",
"reminderSentDate": null,
"totalSteps": 1,
"createdDateTime": "/Date(1496851006000+0000)/",
"createdOn": "/Date(1496851006000)/",
"url": "https://<hostname>/sf/hrisworkflowapprovelink?workflowRequestId=V2-
nlxRHnYcTrR1jnB17z3o8Q%3D%3D&prevPage=HOME&company=BESTRUN&username=cgrant",
"lastModifiedOn": "/Date(1496851039000)/",
"parentWfRequestId": null,
"createdBy": "adminJY",
"currentStepNum": 1,
"status": "COMPLETED",
"wfRequestUINav": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/WfRequest(65L)/wfRequestUINav"
}
},
"parentWfRequestNav": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/WfRequest(65L)/
parentWfRequestNav"
}
},
"workflowAllowedActionListNav": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/WfRequest(65L)/
workflowAllowedActionListNav"
}
},
"empWfRequestNav": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/WfRequest(65L)/empWfRequestNav"
This example shows how to query all workflow requests that were pending:
Request
Operation Query
URI https://<hostname>/odata/v2/WfRequest?
$format=JSON&$filter=status eq 'PENDING'
Response
The response returns a full list of pending workflow requests in the system. For demonstration purpose, some
results have been omitted:
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/WfRequest(162L)",
"type": "SFOData.WfRequest"
},
"wfRequestId": "162",
"lastModifiedBy": "80286",
"status": "PENDING"
},
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/WfRequest(41L)",
"type": "SFOData.WfRequest"
},
"wfRequestId": "41",
"lastModifiedBy": "101009",
"status": "PENDING"
},
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/WfRequest(740L)",
"type": "SFOData.WfRequest"
},
"wfRequestId": "740",
"lastModifiedBy": "athompson",
"status": "PENDING"
},
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/WfRequest(741L)",
"type": "SFOData.WfRequest"
},
"wfRequestId": "741",
"lastModifiedBy": "athompson",
"status": "PENDING"
}
]
}
}
Related Information
Use the Todo entity to retrieve your assigned workflow requests. The Todo entity contains the list of tasks assigned
to a user. You will find a workflow item in the following Todo task categories 14 (HRIS Employee Change Requests
Category26), 17 (Generic Object Category), 18 (Absence Management Category), 24 (IT Category), and 25
(Deductions Category).
Tell me more
1.Run a Todo query for the relevant task category (14, 17, 18, 24, or 25)
Run a Todo query for the relevant task category (14, 17, 18, 24, or 25)
Sample Response
Sample Code
<m:properties>
<d:categoryId>14</d:categoryId>
<d:todos m:type="Bag(SFOData.ToDoBean)">
<d:element>
<d:categoryId>14</d:categoryId>
<d:completedDate m:null="true" />
<d:dueDate m:null="true" />
<d:dueDateOffSet m:type="Edm.Int32">0</d:dueDateOffSet>
<d:entries m:type="Bag(SFOData.ToDoEntry)">
<d:element>
<d:completedDate m:null="true" />
<d:formDataId m:type="Edm.Int64">0</d:formDataId>
<d:status m:type="Edm.Int32">2</d:status>
<d:statusLabel>Active</d:statusLabel>
<d:subjectFullName>New Hire , Tammy Aberts</d:subjectFullName>
<d:subjectId>462</d:subjectId>
<d:url>https://<hostname>/sf/hrisworkflowapprovelink?
workflowRequestId=V2-ypU9jRAxxzV2pyMHsQn1BQ%3D
%3D&prevPage=HOME&company=ACE1321&username=admin</d:url>
</d:element>
</d:entries>
<d:entryId m:type="Edm.Int32">20375</d:entryId>
<d:name>Requests Waiting for My Approval</d:name>
<d:status m:type="Edm.Int32">2</d:status>
<d:statusLabel>Active</d:statusLabel>
<d:stepDescAlt>Requests Waiting for My Approval</d:stepDescAlt>
<d:todoItemId m:null="true" />
<d:url m:null="true" />
</d:element>
</d:todos>
<d:categoryLabel>Employee Change Requests</d:categoryLabel>
<d:displayOrder m:type="Edm.Int32">14</d:displayOrder>
</m:properties>
Here you can see that there is one workflow item, subjectId 462, in the task category 14 (HRIS Employee Change
Requests Category26). Let's now look at our wfRequest query.
Sample Response
Sample Code
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/WfRequest(462L)",
"type": "SFOData.WfRequest"
},
"wfRequestId": "462",
"module": "HRIS",
You can use the URL in the response to access your workflow item on the UI.
Note
We recommend that you use TodoEntryV2 instead of Todo. The Todo entity is user-centric and only returns
the ToDos for the API login user.
You can read up on the Todo and TodoEntryV2 entities and what task categories are supported in Related
Information.
TodoEntryV2
Todo
17.2 WfRequestComments
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Use Cases
https://<api-server>.com/odata/v2/ Get all comments created by admin which have the action type
WfRequestComments?$filter=(actionType eq initiate or decline
'INITIATE' or actionType eq 'DECLINE') and
createdBy eq 'admin'&
$select=createdBy,actionType&$format=JSON
Code Examples
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/WfRequestComments(46L)",
"type": "SFOData.WfRequestComments"
},
"createdBy": "admin",
"actionType": "INITIATE"
}
]
}
}
17.3 WfRequestParticipator
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Request Information
Operation Query
URI http://<api-server>/odata/v2/
WfRequestParticipator?$top=1&
$filter=actorType eq 'ROLE' &$select
wfRequestParticipatorId, ownerId,
actorType&$format=JSON
Sample Code
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<api-server>/odata/v2/WfRequestParticipator(327L)",
"type": "SFOData.WfRequestParticipator"
},
"wfRequestParticipatorId": "327",
"relatedTo": null,
"ownerId": "80295",
"lastModifiedDateTime": "/Date(1471303354000+0000)/",
"lastModifiedOn": "/Date(1471288954000)/",
"participatorType": "CC_ROLE",
"createdOn": "/Date(1471288954000)/",
"wfRequestId": "1325",
"actorType": "ROLE",
"createdBy": "sfadmin",
"processingOrder": "1",
"createdDateTime": "/Date(1471303354000+0000)/",
"lastModifiedBy": "sfadmin",
"roleId": "EM",
"dynamicGroupNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/WfRequestParticipator(327L)/
dynamicGroupNav"
}
},
"ownerNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/WfRequestParticipator(327L)/
ownerNav"
}
},
"positionNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/WfRequestParticipator(327L)/
positionNav"
}
},
"dynamicRoleNav": {
"__deferred": {
"uri": "https://<api-server>/odata/v2/WfRequestParticipator(327L)/
dynamicRoleNav"
}
}
}
]
}
}
Related Information
Supported Operations
Operation Description
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
● No Edit
Approvers do not have in-flight editing capability.
● Edit with Route Change
Approvers can edit a workflow and the workflow route will
be recalculated when they submit the request.
● Edit without Route Change
Approvers can edit a workflow but the workflow route will
not be recalculated when they submit the request.
● Edit Attachments Only
Approver can only edit the attachments of the workflow.
● Source
The manager before the change
● Target
The new manager after the change
Note
If a data change does not involve a manager change, the
approval requests will be sent to the same person.
Request
Operation Query
URI https://<API-Server>/odata/v2/
WfRequestStep?$filter=createdBy eq
'cgrant1' and ownerId eq 'cgrant1' and
status eq 'COMPLETED'&
$select=wfRequestStepId,stepNum,ownerId,ap
proverType&$format=JSON
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/WfRequestStep(1L)",
"type": "SFOData.WfRequestStep"
},
"wfRequestStepId": "1",
"stepNum": "1",
"approverType": "ROLE",
"ownerId": "cgrant1"
}
]
}
Related Information
17.5 WfRequestUIData
This entity enables you to query the workflow data displayed on the Workflow Details page. You cannot query this
entity on its own. You can only query the entity as a navigation property through other entities, for example,
TodoEntryV2.
Supported Operations
Operation Description
Properties
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
actions Possible actions for the workflow request. Note that the action
is only available for the designated user in the workflow.
In this example, we try to query the to-do item 623M and expand to its workflow request, and then further expands
the wfRequestUINav navigation property to fetch the UI data.
Request
Operation Query
URI https://<hostname>/odata/v2/TodoEntryV2(623M)?$format=JSON&
$expand=wfRequestNav/wfRequestUINav
Response
{
"d": {
"__metadata": {
"uri": "https://<hostname>/odata/v2/TodoEntryV2(623M)",
"type": "SFOData.TodoEntryV2"
},
"todoEntryId": "623",
"lastModifiedDateTime": "/Date(1500336000000+0000)/",
"dueDate": null,
"todoEntryName": "Requests Waiting for My Approval",
"categoryLabel": "Employee Change Requests",
"completedDateTime": null,
"mobileLinkUrl": null,
"subjectId": "162",
"createdDate": "/Date(1500336000000+0000)/",
"linkUrl": null,
"formDataId": null,
"categoryId": "14",
"status": 2,
"userNav": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/TodoEntryV2(623M)/userNav"
17.6 WorkflowAllowedActionList
Describes how this entity lets you see what actions a consumer can take on a the WfRequest entity. Using Boolean
values TRUE/FALSE, you can see what a consumer can or cannot do for a given workflow step. The workflow steps
include returning, withdrawing, commenting, declining, updating, resubmitting, or allowing a delegate to decline,
revoke, or grant a WfRequest.
Supported Operations
Query
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
With this query, you're expanding the workflowAllowedAction list to see what actions a consumer can perform on
workflow items that do not have the status completed and have been created by the user, User ID.
Request
Operation Query
URI https://<api-server>/odata/v2/WfRequest?
$filter=status+ne+'COMPLETED'+and
+createdBy+eq+<'User ID>'&
$expand=workflowAllowedActionListNav,wfReq
uestStepNav&$format=JSON
Response
workflowAllowedActionListNav: {
results: [1]
0: {
__metadata: {
uri: "https:/<hostname.com>/odata/v2/
WorkflowAllowedActionList(1563L)"
type: "SFOData.WorkflowAllowedActionList"
}-
wfRequestId: "1563"
allowResubmit: false
allowReject: false
allowDelegateGrant: false
allowDelegateDecline: false
allowApprove: false
allowWithdraw: true
allowSendback: false
allowPostComment: true
allowUpdateRequest: false
allowDelegateRevoke: false
}-
-
}
Related Information
17.7 AutoDelegateConfig
This entity contains the workflow auto delegation configuration of a specified user.
Supported Operations
Operation Description
Upsert If the record doesn’t exist, the operation creates a record; if the
record already exists, the operation updates it.
Parameters
Request
Operation Query
URI https://<API-Server>/odata/v2/AutoDelegateConfig('vicky')?
$format=json
Response
{
"d": {
"__metadata": {
"uri": "https://<API-Server>/odata/v2/AutoDelegateConfig('vicky')",
"type": "SFOData.AutoDelegateConfig"
},
"delegator": "vicky",
"lastModifiedDateTime": "/Date(1598001489000+0000)/",
"mdfSystemEffectiveEndDate": "/Date(253402214400000)/",
"createdDateTime": "/Date(1571041761000+0000)/",
"mdfSystemVersionId": null,
"mdfSystemEffectiveStartDate": "/Date(-2208988800000)/",
"mdfSystemStatus": "A",
"mdfSystemEntityId": "71B3342E4FB947A2A3CB8C22B483D6B3",
"startTime": "/Date(1597881600000+0000)/",
"mdfSystemObjectType": "AutoDelegateConfig",
"lastModifiedDate": "/Date(1598001489000)/",
"lastModifiedBy": "admin",
"lastModifiedDateWithTZ": "/Date(1598001489000+0000)/",
"mdfSystemRecordStatus": "N",
"mdfSystemTransactionSequence": "1",
"delegationStatus": "ON",
"optimisticLockUUID": "098E1D42B2B341B091AFC93327A2EC78",
"createdDate": "/Date(1571041761000)/",
"createdBy": "admin",
"mdfSystemRecordId": "DEC52B0ED6244BACA7E8A76795C7128D",
"endTime": "/Date(1598486400000+0000)/",
"mdfSystemStatusNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/AutoDelegateConfig('vicky')/
mdfSystemStatusNav"
}
},
"createdByNav": {
"__deferred": {
Request
Operation Query
URI https://<API-Server>/odata/v2/
AutoDelegateConfig('testemp1')/autoDelegateDetails
Response
{
"d": {
"results": [
Use Case 3: Updating the auto delegation configuration of user vicky to set
delegation status as OFF
Request
Operation Upsert
URI https://<API-Server>/odata/v2/upsert?$format=json
Payload {
"__metadata":{
"uri":"AutoDelegateConfig('vicky')"
},
"delegationStatus": "OFF"
}
Response
{
"d": [
{
"key": "AutoDelegateConfig/delegator=vicky",
"status": "OK",
"editStatus": "UPSERTED",
Request
Operation Insert
URI https://<API-Server>/odata/v2/AutoDelegateConfig?
$format=json
Payload {
"delegator": "vicky",
"startTime": null,
"delegationStatus": "ON",
"endTime": null,
"autoDelegateDetails":
[{
"alwaysOn": true,
"delegatee": "testemp5",
"status": "ON"
}]
}
Response
{
"d": {
"__metadata": {
"uri": "https://<API-Server>/odata/v2/AutoDelegateConfig('vicky')",
"type": "SFOData.AutoDelegateConfig"
},
"startTime": null,
"delegationStatus": "ON",
"endTime": null,
"delegator": "vicky",
"autoDelegateDetails": {
"__metadata": {
"uri": "https://<API-Server>/odata/v2/AutoDelegateDetail???",
"type": "SFOData.AutoDelegateDetail"
},
"alwaysOn": true,
"delegatee": "testemp5",
"status": "ON"
}
}
}
Request
Operation Merge
URI https://<API-Server>/odata/v2/AutoDelegateConfig('vicky')?
$format=json
Payload {
"delegationStatus": "OFF"
}
Response
Use Case 6: Updating the auto delegation configuration of user vicky to set
delegation status as OFF and clear values of other fields
Request
Operation Replace
URI https://<API-Server>/odata/v2/AutoDelegateConfig('vicky')?
$format=json
Payload {
"delegationStatus": "OFF"
}
Response
Operation Delete
URI https://<API-Server>/odata/v2/AutoDelegateConfig('vicky')
Response
Error Codes
Error Description
The error occurs when delegationStatus is assigned “null” as delegationStatus is a required field/association in Object Auto
value. DelegateConfig.
The error occurs when start time is greater than end time or Enter a start time that is before the end time. Enter a future
end time is a past time. time as the end time.
This error occurs when you update a record and specify an op Your changes for AutoDelegateConfig data conflict with those
timisticLockUUID other than the existing record’s optimisti made concurrently by another user. Please refresh and resub
cLockUUID. mit your changes.
COE_GENERAL_BAD_REQUEST Enter a start time that is before the end time. Enter a future
time as the end time.
COE_GENERAL_BAD_REQUEST Enter a start time that is before the end time. Enter a future
time as the end time.
COE_GENERAL_BAD_REQUEST Enter a start time that is before the end time. Enter a future
time as the end time.
Related Information
17.8 AutoDelegateDetail
This entity contains delegatee details of the workflow auto delegation configuration of a specified user.
Supported Operations
Using the Delete operation of this entity may result in unexpected errors. For most cases, we recommend that
customers use the AutoDelegateConfig entity instead.
Operation Description
Upsert If the record doesn’t exist, the operation creates a record; if the
record already exists, the operation updates it.
This use case demonstrates how to retrieve all delegatees of a user through AutoDelegateConfig, instead of
AutoDelegateDetail. This is a recommended practice.
Request
Operation Query
URI https://<API-Server>/odata/v2/
AutoDelegateConfig('testemp1')/autoDelegateDetails
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
AutoDelegateDetail(AutoDelegateConfig_delegator='testemp1',externalCode='f913dfa4044
e4776a7ca191b8d818bcc')",
"type": "SFOData.AutoDelegateDetail"
},
"externalCode": "f913dfa4044e4776a7ca191b8d818bcc",
"AutoDelegateConfig_delegator": "testemp1",
"alwaysOn": true,
"delegatee": "testemp5",
"status": "ON",
"statusNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
AutoDelegateDetail(AutoDelegateConfig_delegator='testemp1',externalCode='f913dfa4044
e4776a7ca191b8d818bcc')/statusNav"
}
},
"delegateeNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
AutoDelegateDetail(AutoDelegateConfig_delegator='testemp1',externalCode='f913dfa4044
e4776a7ca191b8d818bcc')/delegateeNav"
}
}
}
]
}
}
This use case demonstrates how to retrieve all delegatees of a user through AutoDelegateDetail. We
recommend that you use AutoDelegateConfig instead, as shown in Use Case 1.
Request
Operation Query
URI https://<API-Server>/odata/v2/
AutoDelegateDetail(AutoDelegateConfig_delegator='testemp1',
externalCode='f913dfa4044e4776a7ca191b8d818bcc')
{
"d": {
"__metadata": {
"uri": "https://<API-Server>/odata/v2/
AutoDelegateDetail(AutoDelegateConfig_delegator='testemp1',externalCode='f913dfa4044
e4776a7ca191b8d818bcc')",
"type": "SFOData.AutoDelegateDetail"
},
"externalCode": "f913dfa4044e4776a7ca191b8d818bcc",
"AutoDelegateConfig_delegator": "testemp1",
"alwaysOn": true,
"delegatee": "testemp5",
"status": "ON",
"statusNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
AutoDelegateDetail(AutoDelegateConfig_delegator='testemp1',externalCode='f913dfa4044
e4776a7ca191b8d818bcc')/statusNav"
}
},
"delegateeNav": {
"__deferred": {
"uri": "https://<API-Server>/odata/v2/
AutoDelegateDetail(AutoDelegateConfig_delegator='testemp1',externalCode='f913dfa4044
e4776a7ca191b8d818bcc')/delegateeNav"
}
}
}
}
Use Case 3: Changing the active delegatee to ‘testemp3’ for user testemp1
Request
Operation Upsert
URI https://<API-Server>/odata/v2/upsert?$format=json
Payload {
"__metadata":{
"uri":"AutoDelegateDetail(AutoDelegateConfig_delegator='
testemp1',externalCode='f913dfa4044e4776a7ca191b8d818bcc
')"
},
"delegatee": "testemp3"
}
Response
{
"d": [
{
Use Case 4: Changing the active delegatee for user testemp1 and keeping
values of other fields unchanged
Request
Operation Merge
URI https://<API-Server>/odata/v2/
AutoDelegateDetail(AutoDelegateConfig_delegator='testemp1',
externalCode='f913dfa4044e4776a7ca191b8d818bcc')
Payload {
"delegatee": "testemp5"
}
Response
Error Codes
Error Description
The externalCode used when upserting already exists. The delegation setup must be unique.
The status was set to "Pending" or "Rejected". To save this auto delegation configuration, set the status to a
value other than "Pending" or "Rejected".
17.9 MyPendingWorkflow
This entity enables you to query all completed workflow requests of which the current login user is a CC user; and
all pending and sent-back workflow requests of which the current login user is a contributor.
Supported Operations
Operation Description
Use Case 1: Querying all completed, pending, and sent-back workflow requests
In this use case, we try to query all completed workflow requests of which the current login user is a CC user; and
all pending and sent-back workflow requests of which the current login user is a contributor.
Request
Operation Query
URI https://<API-Server>/odata/v2/MyPendingWorkflow?
$format=json
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<API-Server>/odata/v2/MyPendingWorkflow('V2-
HbJs6b5CpgRbjfs%252FB6ByZA%253D%253D')",
"type": "SFOData.MyPendingWorkflow"
},
"wfRequestId": "V2-HbJs6b5CpgRbjfs%2FB6ByZA%3D%3D",
"subject": "Personal Information change for Alice Fong - effective
09/10/2019",
Related Information
17.10.1 approveWfRequest
Lets you approve a workflow request assuming that you have authorization to approve the next step in the workflow
as described in the topic WorkflowAllowedActionList.
Supported Operations
Parameters
Request
URI https://<api-server>/odata/v2/
approveWfRequest?wfRequestId=1234L
Response
<d:WfRequestActionResponse>
<d:element m:type="SFOData.WfRequestActionResponse">
<d:status>success</d:status>
<d:wfRequestId m:type="Edm.Int64">1234L</d:wfRequestId>
</d:element>
Error Codes
COE_GENERAL_BAD_REQUEST Message will tell you if the error is due to lack of user authori
zation or if there is an issue with the workflow itself.
Related Information
17.10.2 commentWfRequest
Lets you comment a workflow request and send email notifications, provided that you have authorization in the
WorkflowAllowedActionList. Notifications are sent to previous step approvers, current step approvers,
contributors, and the initiator.
Supported Operations
Parameters
Request
URI https://<api-server>/odata/v2/
commentWfRequest?
wfRequestId=1234L&comment='test'
Response
<d:WfRequestActionResponse>
<d:element m:type="SFOData.WfRequestActionResponse">
<d:status>success</d:status>
<d:wfRequestId m:type="Edm.Int64">1563</d:wfRequestId>
</d:element>
</d:WfRequestActionResponse>
Error Codes
COE_GENERAL_BAD_REQUEST Message will tell you if the error is due to lack of user authori
zation or if there’s an issue with the workflow itself.
Related Information
17.10.3 rejectWfRequest
This function import enables you to reject a workflow request assuming that you have authorization in
WorkflowAllowedActionList, or you are a workflow admin user. To be a workflow admin, you need to have the
role-based permission from Manage Workflows Manage Workflow Requests .
Supported Operations
Request
URI https://<api-server>/odata/v2/
rejectWfRequest?wfRequestId=1234L
Response
<d:WfRequestActionResponse>
<d:element m:type="SFOData.WfRequestActionResponse">
<d:status>success</d:status>
<d:wfRequestId m:type="Edm.Int64">1234L</d:wfRequestId>
</d:element>
</d:WfRequestActionResponse>
Error Codes
COE_GENERAL_BAD_REQUEST Message will tell you if the error is due to lack of user authori
zation or if there is an issue with the workflow itself.
Related Information
Lets you send back a workflow request assuming that you have authorization in the WorkflowAllowedActionList.
Supported Operations
Parameters
Request
URI https://<api-server>/odata/v2/
sendbackWfRequest?wfRequestId=1234L
Response
<d:WfRequestActionResponse>
<d:element m:type="SFOData.WfRequestActionResponse">
<d:status>success</d:status>
<d:wfRequestId m:type="Edm.Int64">1234L</d:wfRequestId>
</d:element>
</d:WfRequestActionResponse>
COE_GENERAL_BAD_REQUEST Message will tell you if the error is due to lack of user authori
zation or if there is an issue with the workflow itself.
Related Information
17.10.5 withdrawWfRequest
Lets you withdraw a workflow request assuming that you have authorization in the WorkflowAllowedActionList.
Supported Operations
Parameters
Request
Response
<d:WfRequestActionResponse>
<d:element m:type="SFOData.WfRequestActionResponse">
<d:status>success</d:status>
<d:wfRequestId m:type="Edm.Int64">1234L</d:wfRequestId>
</d:element>
</d:WfRequestActionResponse>
Error Codes
COE_GENERAL_BAD_REQUEST Message will tell you if the error is due to lack of user authori
zation or if there is an issue with the workflow itself.
Related Information
17.10.6 getWorkflowPendingData
You can use getWorkflowPendingData to query the changed data in a workflow that is not yet approved or rejected,
as well as fully completed.
Note
As of Q2 2019, the getWorkflowPendingData API is converted from Beta to Public. If you are using the Beta
version, please change the endpoint URL.
This API supports entities that are in the label: value pair format. Refer to the following list for the supported
entities:
● EmpCompensation
● EmpEmployment
● EmpGlobalAssignment
● EmpJob
Note
For EmpJob, the DirectReportee, Reportee, Deactivate, and TimeBalanceSection attributes are not
supported, because they do not have corresponding HRIS elements.
The following entities are not supported, because there are multiple fields for each record:
● EmpJobRelationships
● EmpPayCompNonRecurring
● EmpPayCompRecurring
● EmpWorkPermit
● PerNationalId
Permissions
You have the Employee Central API Read Permission on All Employee Central HRIS OData Entities
permission.
Supported Operations
Properties
Property Description
fieldId The ids of HrisElementField for only the work permit group and
national id group of ESS workflow. For other groups, the value
is null.
payComponents The value is not null only when the workflow involves compen
sation amount change.
type For label: value pair change set, the value is null. For grid type
of data, which means the data format is a table, the value is
"grid".
title The change set group title, which is the same as displayed in
UI.
entityName The OData entity name, which is the same as displayed in the
Metadata file.
Parameters
Get the pending data of the workflow request <your_wfRequestID>, for example, 2621L
Sample Request
URI http://<hostname>/odata/v2/beta/getWorkflowPending-
Data?wfRequestId=2621L
Response
{
"d": [{
"wfRequestId": "2621",
"workflowAttributeGroups": {
"results": [{
"changeSet": {
"results": [{
"changeSet": {
"results": []
},
"entityName": "EmpGlobalAssignment",
"fieldId": null,
"fieldName": "assignmentType",
"id": "assignment-type",
"label": "Assignment Type",
"newValue": "Short-term assignment",
"oldValue": null,
"payComponents": null,
"type": null
}]
},
"groups": {
"results": [{
"changeSet": {
"results": []
},
You can map the change to an HRIS element using the entityName and fieldName fields.
Permissions
Parameters
● NO_EDIT: Approvers do
not have in-flight editing
capability.
● EDIT_WITH_ROUTE: Ap
provers can edit a work
flow and the workflow
route will be recalculated
when they submit the re
quest.
● EDIT_WITHOUT_ROUTE:
Approvers can edit a
workflow but the work
flow route will not be re
calculated when they
submit the request.
● EDIT_ATTACH
MENT_ONLY: Approver
can only edit the attach
ments of the workflow.
This section lists only the properties and navigation properties that require special business logic, permission, or
other additional information. For more information, refer to the API dictionary in Admin Center API Center
OData API Data Dictionary or the API metadata using query: https://<api-server>/odata/v2/<Entity>/
$metadata.
Property Description
In this use case, we try to change the approver of step 12345 of workflow request 1234 to user1200.
Request
URI https://<API-Server>/odata/v2/changeWfRequestApprover?
workflowReqId=1234L&workflowReqStepId=12345L&userId='user12
00'
Response
{
"d": [
{
"status": "success",
"wfRequestId": "1234"
}
]
}
Error Codes
Error Description
If you want to save time when adding new employees to your organization, you can use an Upsert operation. This
will prove less time-consuming that adding the employees one-by-one in the Employee Central UI.
At a minimum you can insert the User, PerPerson, EmpEmployment, EmpJob, and PerPersonal entity to add an
employee. The order in which you perform the Upsert operations is critical. Be sure to follow it.
1. User entity
2. PerPerson
3. EmpEmployment
4. EmpJob
5. PerPersonal
Caution
Before inserting or updating employee information using OData API, check whether an HRIS sync job is
currently running in your instance. An active HRIS sync job may overwrite the values of certain fields, such as
username. This could lead to inconsistent user data. We recommend that you avoid all API edit operations
when an HRIS sync job is running.
Please contact your Implementation Partner to find out whether an HRIS sync job is scheduled for your
instance. If you are no longer working with an Implementation Partner, contact Product Support.
Related Information
When you add a new employee, you need to upsert the User entity. The order in which you upsert your entities for
adding a new employee is crucial and the user entity is the first one. The other ones are PerPerson (2nd upsert),
EmpEmployment (3rd upsert), EmpJob (4th upsert) and PerPersonal (5th upsert).
Good to know
When you upsert the user entity, this also creates the PerPerson and EmpEmployment entity. However, both these
entities remain hidden until you explicitly upsert them.
Please also note that the PerPerson entity will only be visible after you have upserted the EmpEmployment entity.
URI: http://<Hostname>.com/odata/v2/upsert
Payload
Source Code
{
"__metadata": {
"uri": "User('cgrant')"
},
"username": "carlagrant",
"status": "Active",
"userId": "cgrant"
}}
Tip
To see the required fields for this entity for your instance, check your OData dictionary. There you'll see any other
insertable fields available and you can add them to your payload, if required.
Response
When the insert is successful, you'll have the following response. Please note that the operation always returns
status 200 (OK) with a response body indicating all Upsert results. Individual Upsert failures are not reported as
errors.
Source Code
<feed>
<entry>
<content type="application/xml">
<m:properties>
<d:key>cgrant</d:key>
<d:status>OK</d:status>
<d:editStatus>INSERTED</d:editStatus>
<d:message m:null="true" />
<d:index m:type="Edm.Int32">0</d:index>
<d:httpCode m:type="Edm.Int32">201</d:httpCode>
<d:inlineResults m:type="Bag(SFOData.UpsertResult)" />
</m:properties>
</content>
</entry>
Related Information
Good to know
Although the PerPerson entity is created when the user entity is upserted, it remains hidden. It will only become
visible when:
URI: http://<Hostname>.com/odata/v2/upsert
Payload
Source Code
{
"__metadata": {
"uri": "PerPerson('cgrant')"
},
"personIdExternal": "grantcarla",
"userId": "cgrant"
}}
Tip
To see the required fields for this entity for your instance, check your OData dictionary. There you'll see any other
insertable fields available and you can add them to your payload, if required.
When the insert is successful, you'll have the following response. Please note that the operation always returns
status 200 (OK) with a response body indicating all Upsert results. Individual Upsert failures are not reported as
errors.
Source Code
<feed>
<entry>
<content type="application/xml">
<m:properties>
<d:key m:null="true" />
<d:status>OK</d:status>
<d:editStatus>UPSERTED</d:editStatus>
<d:message m:null="true" />
<d:index m:type="Edm.Int32">0</d:index>
<d:httpCode m:type="Edm.Int32">200</d:httpCode>
<d:inlineResults m:type="Bag(SFOData.UpsertResult)" />
</m:properties>
</content>
</entry>
</feed>
Related Information
When you add a new employee, you need to upsert the EmpEmployment entity. The order in which you upsert your
entities for adding a new employee is crucial and the EmpEmployment entity is the third one when you use the
minimum number of entities to add a new employee. The other ones are User (1st upsert), PerPerson (2nd
upsert),this one EmpEmployment (3rd upsert), EmpJob (4th upsert), and PerPersonal (5th upsert).
Good to know
When you upsert EmpEmployment, the PerPerson entity will also become visible assuming that it has been
explicitly upserted (and not just created as a hidden entity during the User upsert).
URI: http://<Hostname>.com/odata/v2/upsert
Sample Code
Source Code
{"__metadata": {
"uri": "EmpEmployment(personIdExternal='grantcarla',userId='cgrant')"
},
"startDate":"/Date(1388534400000)/",
"personIdExternal":"grantcarla",
"userId":"cgrant"
}}
Tip
To see the required fields for this entity, check the OData dictionary in your company instance. You can also see the
other insertable fields and can add them to your payload, if required.
Response
When the insert is successful, you'll have the following response. Please note that the operation always returns
status 200 (OK) with a response body indicating all Upsert results. Individual Upsert failures are not reported as
errors.
Source Code
<feed>
<entry>
<content type="application/xml">
<m:properties>
<d:key m:null="true" />
<d:status>OK</d:status>
<d:editStatus>UPSERTED</d:editStatus>
<d:message m:null="true" />
<d:index m:type="Edm.Int32">0</d:index>
<d:httpCode m:type="Edm.Int32">200</d:httpCode>
<d:inlineResults m:type="Bag(SFOData.UpsertResult)" />
</m:properties>
</content>
</entry>
</feed>
Related Information
When you add a new employee, you need to upsert the EmpJob entity. The order in which you upsert your entities
for adding a new employee is crucial and the EmpJob entity is the fourth one when you use the minimum number
of entities to add a new employee. The other ones are User (1st upsert), PerPerson (2nd upsert), EmpEmployment
(3rd upsert), this one, EmpJob (4th upsert), and PerPersonal (5th upsert).
URI: http://<Hostname>.com/odata/v2/upsert
Payload
Source Code
{"__metadata": {
"uri": "EmpJob"
},
"jobCode":"ADMIN-1",
"userId":"cgrant",
"startDate":"/Date(1388534400000)/",
"eventReason":"HIRNEW",
"company":"ACE_USA",
"businessUnit":"ACE_CORP",
"managerId":"NO_MANAGER"
}
}
}
Tip
To see the required fields for this entity for your instance, check your OData dictionary. There you'll see any other
insertable fields available and you can add them to your payload, if required.
Response
When the insert is successful, you'll have the following response. Please note that the operation always returns
status 200 (OK) with a response body indicating all Upsert results. Individual Upsert failures are not reported as
errors.
Source Code
<feed>
<entry>
<content type="application/xml">
<m:properties>
<d:key m:null="true" />
<d:status>OK</d:status>
<d:editStatus>UPSERTED</d:editStatus>
<d:message m:null="true" />
<d:index m:type="Edm.Int32">0</d:index>
<d:httpCode m:type="Edm.Int32">200</d:httpCode>
<d:inlineResults m:type="Bag(SFOData.UpsertResult)" />
</m:properties>
</content>
</entry>
Related Information
When you add a new employee, you need to upsert the PerPersonal entity. The order in which you upsert your
entities for adding a new employee is crucial and the PerPersonal entity is the last one when you use the minimum
number of entities to add a new employee. The other ones are User (first upsert), PerPerson (2nd upsert),
EmpEmployment (3rd upsert), EmpJob (4th upsert) and this one PerPersonal (5th upsert).
URI: http://<Hostname>.com/odata/v2/upsert
Payload
Source Code
{ "__metadata":{
"uri":"PerPersonal(personIdExternal='grantcarla',startDate=datetime'2014-01-01T00
:00:00')"},
"personIdExternal":"grantcarla",
"namePrefix": "Ms",
"gender":"F",
"initials": "cg",
"firstName":"Carla",
"lastName":"Grant"
}
Tip
To see the required fields for this entity for your instance, check your OData dictionary. There you'll see any other
insertable fields available and you can add them to your payload, if required.
Response
Source Code
<feed>
<entry>
<content type="application/xml">
<m:properties>
<d:key m:null="true" />
<d:status>OK</d:status>
<d:editStatus>UPSERTED</d:editStatus>
<d:message m:null="true" />
<d:index m:type="Edm.Int32">0</d:index>
<d:httpCode m:type="Edm.Int32">200</d:httpCode>
<d:inlineResults m:type="Bag(SFOData.UpsertResult)" />
</m:properties>
</content>
</entry>
</feed>
Related Information
Background
In this topic, we’re talking about external and internal user data.
External user data refers to non-Employee Central user data. When non-Employee Central modules use Employee
Central entities to store user data (for example, Recruiting might use PerPerson and PerPhone to store details
about an applicant), this type of user data is known as external user data.
Internal user data refers to Employee Central users, that is employees, as well as any users that have a dependent
relationship with an Employee Central user (for example, a spouse, a child, or, an emergency contact).
The Employee Central entities, EmpEmployment, PerAddressDEFLT, PerEmail, PerPhone, PerPerson, and
PerPersonal are often reused by other non-Employee Central modules to store user data. This data is external user
data. Up to now, you haven't been able to filter out this external user data for PerAddressDEFLT, PerEmail,
PerPhone, or for PerPersonal . So, if, for example you’re using Employee Central OData APIs for a scenario such as
payroll replication, your response could include applicants from Recruiting. And, conversely, you have not been able
to include external user data for EmpEmployment or PerPerson. Now, however, we're offering filterable and
selectable fields to model queries to meet your requirements.
We're offering you the following Boolean fields to use with $filter:
For EmpEmployment, you can use this combination to return external user data:
Upserta
Field Type Nullable Required Creatable Updatable ble Visible Sortable Filterable
includeAll Edm.Boo True False False False False False True True
Records lean
isECRe Edm.Boo True False False False False True False True
cord lean
Good to know
includeAllRecords works on the root entity only. If you specify it on the navigation entity, it won't work.
Works:
Query: https://<hostname>.com/odata/v2/PerPerson?$expand=personalInfoNav&
$filter=includeAllRecords eq true
Query: https://<hostname>.com/odata/v2/PerPerson?$expand=personalInfoNav&
$filter=personalInfoNav/includeAllRecords eq true
Your want your query to return You'll need to Use the following filter
Internal user data Filter out external user data Option 1: isECRecord=true
Option 3: includeAllRecords=false
Option 5: no filter
External user data Filter out internal user data isECRecord=false, includeAllRecords=
true
Note
Only available for EmpEmployment
External and internal user data Include external and internal user data includeAllRecords= true
Note
Please remember that includeAllRecords is a hidden field, so you won't see it in the response.
Query: https://<hostname>.com/odata/v2/PerPhone
Response
<m:properties>
<d:personIdExternal>llll</d:personIdExternal>
<d:phoneType>5845</d:phoneType>
<d:extension m:null="true"></d:extension>
<d:createdOn m:type="Edm.DateTime">2011-03-17T21:39:02</
d:createdOn>
<d:isPrimary m:type="Edm.Boolean">true</d:isPrimary>
<d:phoneNumber>707 2000</d:phoneNumber>
<d:createdBy>admin</d:createdBy>
<d:lastModifiedBy>admin</d:lastModifiedBy>
<d:createdDateTime
m:type="Edm.DateTimeOffset">2011-03-17T21:39:02Z</d:createdDateTime>
<d:lastModifiedOn m:type="Edm.DateTime">2011-03-17T21:39:02</
d:lastModifiedOn>
<d:lastModifiedDateTime
m:type="Edm.DateTimeOffset">2011-03-17T21:39:02Z</d:lastModifiedDateTime>
</m:properties>
Sample Code
<m:properties>
<d:personIdExternal>GAdams</d:personIdExternal>
<d:userId>GAdams</d:userId>
<d:startDate m:type="Edm.DateTime">1900-01-01T00:00:00</
d:startDate>
<d:eligibleForStock m:null="true"></d:eligibleForStock>
<d:initialOptionGrant m:null="true"></d:initialOptionGrant>
<d:payrollEndDate m:null="true"></d:payrollEndDate>
<d:serviceDate m:null="true"></d:serviceDate>
<d:professionalServiceDate m:null="true"></
d:professionalServiceDate>
<d:okToRehire m:null="true"></d:okToRehire>
<d:regretTermination m:null="true"></d:regretTermination>
<d:customString23 m:null="true"></d:customString23>
<d:endDate m:null="true"></d:endDate>
<d:lastModifiedDateTime
m:type="Edm.DateTimeOffset">2016-06-21T08:54:09Z</d:lastModifiedDateTime>
<d:eligibleForSalContinuation m:null="true"></
d:eligibleForSalContinuation>
<d:StockEndDate m:null="true"></d:StockEndDate>
<d:assignmentClass m:null="true"></d:assignmentClass>
<d:lastDateWorked m:null="true"></d:lastDateWorked>
<d:salaryEndDate m:null="true"></d:salaryEndDate>
<d:isECRecord m:type="Edm.Boolean">false</d:isECRecord>
<d:originalStartDate m:null="true"></d:originalStartDate>
<d:benefitsEndDate m:null="true"></d:benefitsEndDate>
<d:lastModifiedOn m:type="Edm.DateTime">2016-06-21T08:54:09</
d:lastModifiedOn>
<d:initialStockGrant m:null="true"></d:initialStockGrant>
<d:bonusPayExpirationDate m:null="true"></
d:bonusPayExpirationDate>
<d:createdOn m:type="Edm.DateTime">2016-06-21T08:54:09</
d:createdOn>
<d:createdBy>v4admin</d:createdBy>
Response
Sample Code
<m:properties>
<d:personIdExternal>121</d:personIdExternal>
<d:userId>121</d:userId>
<d:startDate m:type="Edm.DateTime">2011-12-05T00:00:00</
d:startDate>
<d:eligibleForStock m:type="Edm.Boolean">false</
d:eligibleForStock>
<d:initialOptionGrant m:null="true"></d:initialOptionGrant>
<d:payrollEndDate m:type="Edm.DateTime">2011-11-28T00:00:00</
d:payrollEndDate>
<d:serviceDate m:null="true"></d:serviceDate>
<d:professionalServiceDate m:null="true"></
d:professionalServiceDate>
<d:okToRehire m:null="true"></d:okToRehire>
<d:regretTermination m:type="Edm.Boolean">false</
d:regretTermination>
<d:customString23 m:null="true"></d:customString23>
<d:endDate m:null="true"></d:endDate>
<d:lastModifiedDateTime
m:type="Edm.DateTimeOffset">2011-12-06T00:00:42Z</d:lastModifiedDateTime>
<d:eligibleForSalContinuation m:type="Edm.Boolean">false</
d:eligibleForSalContinuation>
<d:StockEndDate m:type="Edm.DateTime">2011-11-28T00:00:00</
d:StockEndDate>
<d:assignmentClass>ST</d:assignmentClass>
<d:lastDateWorked m:type="Edm.DateTime">2011-11-28T00:00:00</
d:lastDateWorked>
<d:salaryEndDate m:type="Edm.DateTime">2011-11-28T00:00:00</
d:salaryEndDate>
<d:isECRecord m:type="Edm.Boolean">true</d:isECRecord>
<d:originalStartDate m:type="Edm.DateTime">2011-05-11T00:00:00</
d:originalStartDate>
<d:benefitsEndDate m:type="Edm.DateTime">2011-11-28T00:00:00</
d:benefitsEndDate>
<d:lastModifiedOn m:type="Edm.DateTime">2011-12-06T00:00:42</
d:lastModifiedOn>
<d:initialStockGrant m:null="true"></d:initialStockGrant>
<d:bonusPayExpirationDate m:null="true"></
d:bonusPayExpirationDate>
<d:createdOn m:type="Edm.DateTime">2011-12-06T00:00:41</
d:createdOn>
<d:createdBy>nnnn</d:createdBy>
<d:lastModifiedBy>nnnn</d:lastModifiedBy>
<d:createdDateTime
m:type="Edm.DateTimeOffset">2011-12-06T00:00:41Z</d:createdDateTime>
A person UUID (unique universal identifier) is now available for integration and import scenarios.
Background
We’ve introduced the concept of a person UUID for the entire SAP SuccessFactors HXM Suite. When a new hire or
user is created, the system generates this identifier – called “perPersonUuid”. This field is immutable meaning that
once the field is populated with a value, it cannot be changed.
In SAP SuccessFactors HXM Suite, you can now expose perPersonUuid for integration and import scenarios for all
employees. So even if the employment field IS_EC_SYSTEM_OF_RECORD=F and the record is for a non-Employee
Central user, the perPersonUuid can be exposed.
perPersonUuid cannot be queried directly, but is available from the User entity with the new navigation
personKeyNav.
perPersonUuid is exposed regardless of data model configuration, RBP settings, or provisioning settings.
perPersonUuid can also be added to PerPerson.
Good to know
Note
Remember
As a customer, you don't have access to Provisioning. To complete tasks in Provisioning, contact
your implementation partner or Account Executive. For any non-implementation tasks, contact
Product Support.
● The only way to expose this field in a query is with $expand from the User entity. If you try to query the entity
directly, the error message <COE_UNSUPPORTED_FEATURE> is raised.
To query it, personKeyNav has now been added to the User entity and you use $expand to expose perPersonUuid.
Request: https://<api-server>/odata/v2/User('admin')?$format=json&$expand=personKeyNav&
$select=personKeyNav
Response
Sample Code
{
"d": {
"__metadata": {
"uri": "https://<api-server>/odata/v2/User('admin')",
"type": "SFOData.User"
},
"personKeyNav": {
"__metadata": {
"uri": "https://<api-server>/odata/v2/PersonKey('admin')",
"type": "SFOData.PersonKey"
},
"personIdExternal": "admin",
"personId": "2",
"perPersonUuid": "3A085DB0D9184B49B0E3E70D6F07EB1A"
}
}
},
Request: https://<api-server>/odata/v2/User('admin')?$format=json&$expand=personKeyNav&
$filter=personKeyNav/pePersonUuid eq "3A085DB0D9184B49B0E3E70D6F07EB1A"
Response
Sample Code
Response:
{
"d": {
"__metadata": {
"uri": "https://<api-server>/odata/v2/User('admin')",
"type": "SFOData.User"
},
....
},
"personKeyNav": {
"__metadata": {
"uri": "https://<api-server>/odata/v2/PersonKey('admin')",
"type": "SFOData.PersonKey"
},
"personIdExternal": "admin",
"personId": "2",
"perPersonUuid": "3A085DB0D9184B49B0E3E70D6F07EB1A"
}
Related Information
Background
FOWfConfig contains workflow information but - as with all entity fields - you can only read the fields that have the
attribute visible=true. In FOWfConfig, this means that you couldn't read the following fields:
Being able to read these fields means that you can get much more detailed workflow information.
You can access these fields for more detailed information as follows:
Tell me more
wfStepApproverNav: Properties
Sample Code
<NavigationProperty Name="wfStepApproverNav"
sap:required="false"
sap:creatable="false"
sap:updatable="false"
sap:upsertable="false"
sap:visible="true"
sap:sortable="true"
sap:filterable="true"
Relationship="SFOData.FOWfConfig_FOWfConfigStepApprover"
FromRole="FOWfConfig" ToRole="FOWfConfigStepApprover_ref"
sap:label="wfStepApproverNav">
</NavigationProperty>
FOWfConfigStepApprover: Properties
Sample Code
Extract from $metadata focussing on the fields that have the attribute visible=true (up to now only available in
FOWfConfig with the attribute visible=false)
<EntityType Name="FOWfConfigStepApprover">
Response
Sample Code
{
"d": {
"__metadata": {
"uri": "https://<hostname>.com/odata/v2/FOWfConfig('LOA')",
"type": "SFOData.FOWfConfig"
},
"externalCode": "LOA",
"createdOn": "/Date(1300533482000)/",
"futureDatedAlternateWorkflow": null,
"createdBy": "admin",
"description": "HR Business Partner assigned to manager's business unit",
"name": "Leave of Absence",
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1300533482000+0000)/",
"remindIndays": null,
"lastModifiedOn": "/Date(1323196467000)/",
Response
Sample Code
....
<entry>
<id>https://<hostname>.com/odata/v2/
FOWfConfigStepApprover(externalCode='LOA',stepNum=1L)</id>
<title type="text"></title>
<updated>2016-10-11T08:22:03Z</updated>
<author>
<name></name>
</author>
<link rel="edit" title="FOWfConfigStepApprover"
href="FOWfConfigStepApprover(externalCode='LOA',stepNum=1L)"></link>
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/
approverDynamicRoleNav" type="application/atom+xml;type=feed"
title="approverDynamicRoleNav"
href="FOWfConfigStepApprover(externalCode='LOA',stepNum=1L)/
approverDynamicRoleNav"></link>
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/
approverGroupNav" type="application/atom+xml;type=entry"
title="approverGroupNav"
href="FOWfConfigStepApprover(externalCode='LOA',stepNum=1L)/approverGroupNav"></
link>
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/
approverPositionNav" type="application/atom+xml;type=feed"
title="approverPositionNav"
href="FOWfConfigStepApprover(externalCode='LOA',stepNum=1L)/
approverPositionNav"></link>
<category term="SFOData.FOWfConfigStepApprover" scheme="http://
schemas.microsoft.com/ado/2007/08/dataservices/scheme"></category>
<content type="application/xml">
<m:properties>
<d:stepNum m:type="Edm.Int64">1</d:stepNum>
<d:externalCode>LOA</d:externalCode>
<d:approverPositionRelationship m:null="true"></
d:approverPositionRelationship>
<d:lastModifiedDateTime
m:type="Edm.DateTimeOffset">2011-12-06T18:34:27Z</d:lastModifiedDateTime>
<d:actionType>NO_EDIT</d:actionType>
<d:skipType m:null="true"></d:skipType>
<d:approverRole>EH</d:approverRole>
<d:relationshipToApprover m:null="true"></
d:relationshipToApprover>
<d:approverType>ROLE</d:approverType>
<d:createdBy>admin</d:createdBy>
<d:lastModifiedBy>admin</d:lastModifiedBy>
<d:createdDateTime
m:type="Edm.DateTimeOffset">2011-07-28T00:28:27Z</d:createdDateTime>
<d:context>SOURCE</d:context>
<d:respectRBP m:null="true"></d:respectRBP>
<d:relationshipToPosition m:null="true"></
d:relationshipToPosition>
</m:properties>
</content>
</entry>
What's new?
The mdf entities, SecondaryAssignments and SecondaryAssignmentsItem are now available. This means that it is
now possible to know which employment contract is the primary one for replication scenarios. In a nutshell you can
now build a concurrent employment replication from Employee Central to other 3rd Party systems using OData
APIs. Please note that secondary employment is also known as concurrent employment.
Previously it was not possible to differentiate primary from secondary employments using OData APIs. By offering
SecondaryAssignments and SecondaryAssignmentsItems, important data has been made available in one single
API call and you benefit from:
The PerPerson entity now has a navigation secondaryAssignmentsNav that lets you navigate to the MDF entity
SecondaryAssignments.
Tell me more
SecondaryAssignments has a business key externalCode (Person ID External) meaning that it references a person.
It has a one to multiple association with the MDF entity SecondaryAssignmentsItem.
Good to know
Both entities are effective-dated. If the concept of effective dating is new to you, please take a look at Effective
Dating so that you can make the most out of this new entity.
In the PerPerson entity, you use the secondaryAssignmentsNav, a visible, sortable, and filterable field to build a
query that navigates to the entity SecondaryAssignments.
GET Operation: Retrieves the secondaryAssignmentsNav which in turn will return the
SecondaryAssignmentsItems, that is information about the secondary employment.
Request: https://<hostname>.com/odata/v2/PerPerson?$format=json&$filter=personIdExternal
%20eq%20'jsmith'&$expand=secondaryAssignmentsNav/allSfProcesses
Response
Sample Code
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<hostname>.com/odata/v2/PerPerson('jsmith')",
"type": "SFOData.PerPerson"
},
"personIdExternal": "jsmith",
"dateOfBirth": null,
"lastModifiedOn": "/Date(1303743709000)/",
"lastModifiedDateTime": "/Date(1303743709000+0000)/",
"dateOfDeath": null,
"createdOn": "/Date(1303743708000)/",
"countryOfBirth": null,
"createdBy": "v4admin",
"regionOfBirth": null,
"createdDateTime": "/Date(1303743708000+0000)/",
"lastModifiedBy": "v4admin",
"personId": "11",
"personRerlationshipNav": {
"__deferred": {
"uri": "https://<hostname>.com/odata/v2/
PerPerson('jsmith')/personRerlationshipNav"
}
"SecondaryAssignments_effectiveStartDate": "/Date(1466726400000)/",
"externalCode":
"c95d6999d02e46878dcad5ef2a02397c",
"mdfSystemEffectiveEndDate": "/
Date(253402214400000)/",
"mdfSystemObjectType":
"SecondaryAssignmentsItem",
"mdfSystemVersionId": null,
"lastModifiedDateTime": "/
Date(1467020470000+0000)/",
"usersSysId": "181",
"mdfSystemTransactionSequence": "1",
"createdBy": "admin",
"mdfSystemRecordId":
"448E51556F414997A79F1360D837CD29",
"mdfSystemEntityId":
"DCAF412BC16D46408FB7D3EEDB7DDF63",
"createdDateTime": "/
Date(1467020470000+0000)/",
"lastModifiedBy": "admin",
"mdfSystemStatus": "A",
"lastModifiedDate": "/
Date(1467020470000)/",
"mdfSystemEffectiveStartDate": "/
Date(-2208988800000)/",
"lastModifiedDateWithTZ": "/
Date(1467020470000+0000)/",
"createdDate": "/Date(1467020470000)/",
"mdfSystemRecordStatus": "N",
"usersSysIdNav": {
"__deferred": {
"uri": "https://<hostname>.com/
odata/v2/
SecondaryAssignmentsItem(SecondaryAssignments_effectiveStartDate=datetime'2016-06
-24T00:00:00',SecondaryAssignments_externalCode='jsmith',externalCode='c95d6999d0
2e46878dcad5ef2a02397c')/usersSysIdNav"
}
},
"mdfSystemRecordStatusNav": {
"__deferred": {
"uri": "https://<hostname>.com/
odata/v2/
SecondaryAssignmentsItem(SecondaryAssignments_effectiveStartDate=datetime'2016-06
-24T00:00:00',SecondaryAssignments_externalCode='jsmith',externalCode='c95d6999d0
2e46878dcad5ef2a02397c')/mdfSystemRecordStatusNav"
}
},
"mdfSystemStatusNav": {
"__deferred": {
"uri": "https://<hostname>.com/
odata/v2/
SecondaryAssignmentsItem(SecondaryAssignments_effectiveStartDate=datetime'2016-06
-24T00:00:00',SecondaryAssignments_externalCode='jsmith',externalCode='c95d6999d0
2e46878dcad5ef2a02397c')/mdfSystemStatusNav"
}
}
}
]
},
"mdfSystemRecordStatusNav": {
Upsert Operation: Retrieves the secondaryAssignmentsNav which in turn will return the
SecondaryAssignmentsItems, that is information about the secondary employment. There is not often a business
case for this operation but it has been provided to support the cloning or transfer of data between similar instances
in a different environment. In this example here, user system ID (represented by the externalcode) for the primary
employment is PrimaryEmployment and the userSysID for secondary employment is represented by 301 (a
number automatically generated when a secondary employment is created).
Request: https://<hostname>.com/odata/v2/upsert
Sample Code
{
"__metadata": { "uri": "SecondaryAssignments"},
"effectiveStartDate" : "/Date(1420066800000)/",
"externalCode" : "mjaschob",
"allSfProcesses": {
"__metadata": { "uri": "SecondaryAssignmentsItem"},
"SecondaryAssignments_effectiveStartDate" : "/Date(1420066800000)/",
"SecondaryAssignments_externalCode" : "mjaschob",
"externalCode" : "myexternalcode55",
"usersSysId" : "301"
}
}
You can take a look at the tips and FAQs here to see if they can answer your questions or help you with your APIs. In
some cases, you'll find a brief explanation, and others will guide you to existing topics for your answer.
The Allow Admin to Access OData API through Basic Authentication permission lets admins use Basic
Authentication to make API calls. It's available in Role-Based Permissions under Administrator Settings in Manage
Integration Tools.
Two authentication types are available in OData APIs - HTTP Basic Authorization and OAuth 2.0.
HTTP Basic Authorization is less secure but simpler to set up and use - so you might want to use it for testing or in
test clients. OAuth is more complex to set up but more secure.
Caution
HTTP Basic Authentication will soon be retired. Please migrate to OAuth as soon as possible. For detailed
retirement plan, see the related link.
Related Information
Note
Please don't use SOAP APIs or Ad hoc APIs for building new integrations in Employee Central. The only
exception to this rule is the SOAP based Compound Employee API (CE API).
UI consumption Yes No
19.3 APIs are missing or not up-to-date in the OData API Data
Dictionary?
Sometimes you cannot find an entity in the OData API Data Dictionary, or the definition in the dictionary is out of
dated. That might be because the entity is an MDF object and it is not exposed to OData API properly.
For detailed steps on how to solve this problem, see Exposing MDF Objects.
Sometimes a system is changed in a way that leads to an API breaking. More often than not, such incompatible
changes are made during configuration of the system and not by the API consumers. Take a look at this list to see
what actions could lead to an incompatible change - by avoiding these actions in the first place, you should be free
of incompatible changes in your system.
● Removing any field that is exposed by an API from the MDF object definition or HRIS succession data model
will break that API.
● Changing the visibility of any field that is exposed by an API in the MDF object definition or HRIS succession
data model from visible/enabled to invisible/none will break that API
● Removing permissions or provisioning settings for OData APIs will break the API
● Renaming the identifier of customString field in the succession datamodel - this breaks the API because
technically what is actually happening is the deletion of the customString field and creation of a new one.
● Changing the field type from picklist to string
● Deleting codes from picklists
In contrast to these incompatible changes, compatible changes will not break the APIs. Some examples of
compatible changes include:
If your're having problems with duplicate records, take a look at these tips.
Picklists
When you use a picklist label (picklistLabels) in a $filter query, specify the locale to avoid duplicate records.
Background: When a picklist has more than one locale and this is not defined in a query, all the locales will be
queried. This could result in duplicate records.
$filter=<entity>Nav/picklistLabels/locale eq 'en_US'
Paging
If pages have duplicates or missing records, one possible reason is undefined sorting. Try using orderBy on the
whole business key to fix this issue.
Upsert statements have a single record error message behavior; for each record that fails, an error message is
issued.
Payload Information:
Sample Code
[
{
"__metadata" : {
"uri" : "https://<Hostname>/odata/v2/
PerPersonal(personIdExternal='aaaa',startDate=datetime'1990-01-01T00:00:00')",
"type" : "SFOData.PerPersonal"
}, "startDate" : "\/Date(631152000000)\/", "personIdExternal" : "aaaa",
"initials" : "LT", "gender" : "M", "namePrefix" : "LT"
}, {
"__metadata" : {
"uri" : "https://<Hostname>/odata/v2/
PerPersonal(personIdExternal='dddd',startDate=datetime'1990-01-01T00:00:00')",
"type" : "SFOData.PerPersonal"
}, "startDate" : "\/Date(631152000000)\/", "personIdExternal" : "dddd",
"initials" : "LT", "gender" : "H", "namePrefix" : "LT"
}, {
"__metadata" : {
"uri" : "https://<Hostname>/odata/v2/
PerPersonal(personIdExternal='hhhh',startDate=datetime'1990-01-01T00:00:00')",
"type" : "SFOData.PerPersonal"
}, "startDate" : "\/Date(631152000000)\/", "personIdExternal" : "hhhh",
"initials" : "LT", "gender" : "M", "namePrefix" : "LT"
}
]
Response:
Sample Code
<feed>
<entry>
<content type="application/xml">
<m:properties>
<d:key m:null="true" />
<d:status>OK</d:status>
<d:editStatus>UPSERTED</d:editStatus>
<d:message m:null="true" />
<d:index m:type="Edm.Int32">0</d:index>
<d:httpCode m:type="Edm.Int32">200</d:httpCode>
<d:inlineResults m:type="Bag(SFOData.UpsertResult)" />
</m:properties>
</content>
</entry>
<entry>
<content type="application/xml">
<m:properties>
Describes how deleted objects in $expand can be handled as a change in certain Employee Central OData APIs.
The standard behavior in Employee Central OData API queries, such as the one below, is to ignore any records that
have been deleted.
To override this standard behavior, go to Admin Center Manage Employee Central Settings , and turn on the
switch for Consider Deletion of Expanded Entities As A Change.
This query shows you any changes to the e-mail records for the employee and time frame specified:
https://<hostname>/odata/v2/PerPerson?$expand=emailNav&$filter=personIdExternal eq
'106015' and emailNav/lastModifiedDateTime ge datetimeoffset'2000-01-01T01:00:00.000Z'
Sample Code
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://qaautocand-api.lab-rot.ondemand.com/odata/v2/
PerPerson('106015')",
"type": "SFOData.PerPerson"
},
"personIdExternal": "106015",
"lastModifiedDateTime": "/Date(1441580677000+0000)/",
"createdDateTime": "/Date(1441568467000+0000)/",
"createdOn": "/Date(1441568467000)/",
"countryOfBirth": "AUS",
"lastModifiedBy": "admindlr",
"perPersonUuid": "BE297AA97D004D29ADCBE89546F323EA",
"lastModifiedOn": "/Date(1441580677000)/",
"createdBy": "admindlr",
"personId": "339",
....
"emailNav": {
"results": [
{
"__metadata": {
"uri": "https://qaautocand-api.lab-
rot.ondemand.com/odata/v2/PerEmail(emailType='8448',personIdExternal='106015')",
"type": "SFOData.PerEmail"
},
"emailType": "8448",
"personIdExternal": "106015",
"lastModifiedDateTime": "/Date(1441833666000+0000)/",
"createdDateTime": "/Date(1441833666000+0000)/",
"createdOn": "/Date(1441833666000)/",
"emailAddress": "[email protected]",
"customDouble1": null,
"isPrimary": true,
"customDate1": null,
"lastModifiedBy": "admindlr",
"customString5": null,
"customString4": null,
"customString3": null,
"customString2": null,
"customString8": null,
"customString7": null,
"customString6": null,
"lastModifiedOn": "/Date(1441833666000)/",
"customString1": null,
"createdBy": "admindlr",
"customLong1": null,
....
}
]
}
}
]
}
}
Sample Code
Response
{
"d": {
"results": []
}
}
All records of the employee have been removed. This causes issues - if instead of e-mail information, for example,
an address or a dependent is deleted - the system responds in the same way to the lastmodified query. Instead of
updating the response with an empty value for deleted object, all records are removed.
Sample Code
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://qaautocand-api.lab-rot.ondemand.com/odata/v2/
PerPerson('106015')",
"emailNav": {
"results": []
}
}
]
}
}
Instead of an empty response without any e-mail or person information, the e-mail information (the expanded
entity that was deleted) has been updated with an empty value and the other information appears in the response.
19.8 How to have more than one pay component on the same
pay date
When an employee is due more than one non-recurring payment on the same pay date, an additional business key,
sequenceNumber, can be added to EmpPayCompNonRecurring.
You can configure the data model to add this field as an additional business key (as long as it is upsertable in the
data model).
Related Information
To ignore inactive users in your Employee Central OData API calls, you have to explicitly select them in the User
entity using the property status. Terminated employees will still appear on entities such as PerPerson or EmpJob so
the only way to exclude them is by using the User entity and filtering by the property status which supports the
If you want to link to a custom MDF object, you will need a combination of UPSERT and POST. This is because the
upserts for MDF objects and Employee Central OData APIs are not compatible.
Example
Let's assume that you want to add information about where an employee's office is located in the employee job
information. To do this, you will need the following:
Note
This is a prerequisite. Even if you update the EmpJob entity with a business key for office and then upsert,
the office will not be created. Updating the entity with the key allows you to link to an existing object only.
2. Add the business key for the MDF object (which already exists) to EmpJob
Here are some tips on how to improve API performance and consumption:
Too many deep filters in a query Make sure you are using all the direct available fields in the en
tity
$expand for unnecessary navigations Do you really need those navigations? Are they directly availa
ble fields in the entity.
Merging API calls using navigation (if this is negatively impact Use $BATCH instead
ing performance)
Calculated fields in expanded entities in empCompensation Use rules instead in custom fields to persist the values
Calculated and empCompensationGroupSumCalculated
Writing data using incremental update Use full purge instead, if possible.
Writing data including triggering of rules for job information Disable Triggering of Rules in Company and Logo settings and
(EmpJob) calculate values for rules in consumer.
If you're getting roundtrip errors, this might be down to a conflict between the user locale and the fileLocale.
You can resolve this problem by making sure that your user locale and fileLocale are both en_US. Take a look
atfileLocale [page 52] for more information.
A side effect is sometimes triggered when an API consumer performs a write operation.
The side effects triggered by the write operation are different in the OData API from the side effects triggered in UI.
Sometimes the difference is profound. For example, a workflow is triggered in the UI but not in the OData API.
Sometimes the difference is minor. When an HRIS Sync is triggered directly in the UI but indirectly in the API or
data imports via an asynchronous sync job sending e-mails when the job starts and finishes.
Take a look at these examples to get an overview of what side effects are triggered:
● Triggering of workflows: OData APIs and data imports have the same behaviors. For how to create an approval
process by configuring workflows to review data being imported, see Configuring Workflows for Data Imports.
● Triggering of business rules: OData APIs and data imports have the same behaviors. For how to configure
business rules during data imports, see Configuring Business Rules for Data Imports.
Note
You can use the API rule context to determine whether specific OnChange or OnSave rules are required to
be triggered during an API upsert. For details, see Adding Contexts for Business Rules.
● Triggering of HRIS sync: If there is at least one recurring HRIS Sync job configured in your company instance,
an HRIS element import triggers an HRIS Sync job run. Only one HRIS Sync job can run at a time. For more
information, see the EC Data Import or User Data Changes Through API section in Triggering HRIS Sync.
● Triggering of Intelligence Services: Intelligence services are triggered by rules only. For the list of the Intelligent
Services events published by Employee Central and how to configure rules for the events, see Employee
Central Events for Intelligent Services and its child topics.
Upsert operations in a $batch ChangeSet follow the "all-or-nothing" rule. That means, if one record fails to upsert,
all other changes will roll back.
Caution
--batch_202010071357
Content-Type: multipart/mixed; boundary=changeset_202010071357
Content-Length: 100
--changeset_202010071357
Content-Transfer-Encoding: binary
Content-Type: application/http
POST upsert?purgeType=full HTTP/1.1
Content-Type: application/json;charset=utf-8
accept:application/json
<JSON/Atom representation of an upsert operation>
--changeset_202010071357--
--batch_202010071357--
By default, if errors occur to an upsert operation in a $batch ChangeSet, only the first error is returned no matter
how many entities are in the upsert payload. However, you can use parameter
enableUpsertResponseExtensionInChangeset to control whether all error messages of an upsert operation
in a ChangeSet are returned. To return all upsert error messages, set the parameter to true in the request.
{
"error": {
"code": "COE_GENERAL_SERVER_FAILURE",
"message": {
"lang": "en-US",
Related Information
enableUpsertResponseExtensionInChangeset
19.14.1 strictTransactionIsolate
strictTransactionIsolate is an upsert parameter for determining if partial upsert applies during multiple-
record upserts.
Parameter Values
Caution
The strictTransactionIsolate parameter is used to ensure data integrity during upsert. Using the
parameter could result in performance degradation, the extent of which depends on the single record
processing time and the batch size.
false (default) Standard upsert behavior: one failed record during upsert
causes all records to fail.
Use Case
If you're puzzled by the results you get from queries such as https://<api-server>/odata/v2/EmpJob?
$filter=standardHours+gt+'20'&fromDate=2000-12-31, then take a quick look at the examples in
fromDate and toDate (Date Range) Query.
Hyperlinks
Some links are classified by an icon and/or a mouseover text. These links provide additional information.
About the icons:
● Links with the icon : You are entering a Web site that is not hosted by SAP. By using such links, you agree (unless expressly stated otherwise in your agreements
with SAP) to this:
● The content of the linked-to site is not SAP documentation. You may not infer any product claims against SAP based on this information.
● SAP does not agree or disagree with the content on the linked-to site, nor does SAP warrant the availability and correctness. SAP shall not be liable for any
damages caused by the use of such content unless damages have been caused by SAP's gross negligence or willful misconduct.
● Links with the icon : You are leaving the documentation for that particular SAP product or service and are entering a SAP-hosted Web site. By using such links, you
agree that (unless expressly stated otherwise in your agreements with SAP) you may not infer any product claims against SAP based on this information.
Example Code
Any software coding and/or code snippets are examples. They are not for productive use. The example code is only intended to better explain and visualize the syntax and
phrasing rules. SAP does not warrant the correctness and completeness of the example code. SAP shall not be liable for errors or damages caused by the use of example
code unless damages have been caused by SAP's gross negligence or willful misconduct.
Bias-Free Language
SAP supports a culture of diversity and inclusion. Whenever possible, we use unbiased language in our documentation to refer to people of all cultures, ethnicities, genders,
and abilities.
SAP and other SAP products and services mentioned herein as well as
their respective logos are trademarks or registered trademarks of SAP
SE (or an SAP affiliate company) in Germany and other countries. All
other product and service names mentioned are the trademarks of their
respective companies.