SAP SuccessFactors Batch Source reference

SAP SuccessFactors is a cloud-based human experience management (HXM/HCM) provider. The SAP SuccessFactors Batch Source plugin in Cloud Data Fusion lets you extract data from any entity within the SAP SuccessFactors Employee Central module.

You can configure and execute bulk data transfers from SAP SuccessFactors without any coding.

For more information, see Connect to SAP SuccessFactors Batch Source.

Configuration

Property Macro enabled Description
Reference Name No Uniquely identifies the source for lineage and annotates the metadata.
SAP SuccessFactors Base URL Yes Required. The base URL of SuccessFactors API.
Entity Name Yes Required. The name of the Entity to be extracted. Doesn't support entities that have properties with the Binary data type or large volumes of data. For example, UserBadges and BadgeTemplates are not supported.
SAP SuccessFactors Username Yes Required. The user ID for authentication, similar to USER_ID@COMPANY_ID. For example, sfadmin@SFCPART000807.
SAP SuccessFactors Password Yes Required. The SAP SuccessFactors Password for user authentication.
Filter Options Yes Optional. The Filter condition that restricts the output data volume, for example, Price gt 200. See the supported filter options.
Select Fields Yes Optional. Fields to be preserved in the extracted data. For example, Category, Price, Name, Address. If the field is left blank, then all the non-navigation fields will be preserved in the extracted data.

All fields must be comma (,) separated.
Expand Fields Yes Optional. List of navigation fields to be expanded in the extracted output data. For example, customManager. If an entity has hierarchical records, the source outputs a record for each row in the entity it reads, with each record containing an extra field that holds the value from the navigational property specified in the Expand Fields.
Associated Entity Name Yes Optional. Name of the Associated Entity that is being extracted. For example, EmpCompensationCalculated.
Pagination Type Yes Required. The type of pagination to be used. Server-side pagination uses snapshot-based pagination. If snapshot-based pagination is attempted on an entity that doesn't support the feature, the server automatically forces client-offset pagination on the query.
Examples of entities that only support server-side pagination are BadgeTemplates, UserBadges, and EPCustomBackgroundPortlet. No records are transferred if client-side pagination is chosen on these entities, as it relies on the Count API, which returns -1 as the response.

Default is Server-side Pagination.
Use connection (on/off toggle) No Whether to use an existing connection.
Connections (browse connections) Yes Choose the existing connection to use.

Supported filter options

The following operators are supported:

Operator Description Example
Logical Operators
Eq Equal /EmpGlobalAssignment?$filter=assignmentClass eq ‘GA'
Ne Not equal /RecurringDeductionItem?$filter=amount ne 18
Gt Greater than /RecurringDeductionItem?$filter=amount gt 4
Ge Greater than or equal /RecurringDeductionItem?$filter=amount ge 18
Lt Less than /RecurringDeductionItem?$filter=amount lt 18
Le Less than or equal /RecurringDeductionItem?$filter=amount le 20
And Logical and /RecurringDeductionItem?$filter=amount le 20 and amount gt 4
Or Logical or /RecurringDeductionItem?$filter=amount le 20 or amount gt 4
Not Logical negation /RecurringDeductionItem?$filter=not endswith(payComponentType, ‘SUPSPEE_US')
Arithmetic Operators
Add Addition /RecurringDeductionItem?$filter=amount add 5 gt 18
Sub Subtraction /RecurringDeductionItem?$filter=amount sub 5 gt 18
Mul Multiplication /RecurringDeductionItem?$filter=amount mul 2 gt 18
Div Division /RecurringDeductionItem?$filter=amount div 2 gt 18
Mod Modulo /RecurringDeductionItem?$filter=amount mod 2 eq 0
Grouping Operators
( ) Precedence grouping /RecurringDeductionItem?$filter=(amount sub 5) gt 8

Data type mapping

SuccessFactors Data Type Cloud Data Fusion Schema Data Type BigQuery Data Type
Binary Bytes BYTES
Boolean Boolean BOOLEAN
Byte Bytes BYTES
DateTime DateTime DATETIME
DateTimeOffset Timestamp_Micros TIMESTAMP
Decimal Decimal NUMERIC
Double Double FLOAT
Float Float FLOAT
Int16 Integer INTEGER
Int32 Integer INTEGER
Int64 Long INTEGER
SByte Integer INTEGER
String String STRING
Time Time_Micros TIME

Validation

Click Validate on the top right to Validate the plugin.

The plugin generates a schema based on the metadata from SAP SuccessFactors. It automatically maps SAP SuccessFactors data types to corresponding Cloud Data Fusion data types.

Example data

The following example is the data for a single employee in EmployeePayrollRunResults:

Example property Example value
externalCode SAP_EC_PAYROLL_1000_0101201501312015_456_416
Person ID 456
User Foo Bar
Employment ID 416
Payroll Provider ID SAP_EC_PAYROLL
Start of Effective Payment Period 01/01/2015
End of Effective Payment Period 01/31/2015
Company ID BestRun Germany (1000)
Payout 01/28/2015
Currency EUR (EUR)
Payroll Run Type Regular (REGULAR)
System ID X0B

The example shows the results for an employee in EmployeePayrollRunResults:

EmployeePayrollRunResults_externalCode EmployeePayrollRunResults_mdfSystemEffectiveStartDate amount createdBy createdDate
SAP_EC_PAYROLL_2800_0101201901312019_305_265 1/31/2019 0:00:00 70923.9 sfadmin 12/10/2019 15:32:20
SAP_EC_PAYROLL_2800_0101201901312019_310_270 1/31/2019 0:00:00 64500 sfadmin 12/10/2019 15:32:20
SAP_EC_PAYROLL_2800_0201201902282019_305_265 2/28/2019 0:00:00 70923.9 sfadmin 12/10/2019 15:32:20
SAP_EC_PAYROLL_2800_0201201902282019_310_270 2/28/2019 0:00:00 64500 sfadmin 12/10/2019 15:32:20
SAP_EC_PAYROLL_2800_0301201903312019_305_265 3/31/2019 0:00:00 70923.9 sfadmin 12/10/2019 15:32:20

Example pipeline

See the configurations in the following JSON file:

  {
      "artifact": {
          "name": "cdap-data-pipeline",
          "version": "VERSION_NUMBER",
          "scope": "SYSTEM"
      },
      "description": "",
      "name": "Demo_SuccessFactors_BatchSource",
      "config": {
          "resources": {
              "memoryMB": 2048,
              "virtualCores": 1
          },
          "driverResources": {
              "memoryMB": 2048,
              "virtualCores": 1
          },
          "connections": [
              {
                  "from": "SAP SuccessFactors",
                  "to": "BigQuery"
              }
          ],
          "comments": [],
          "postActions": [],
          "properties": {},
          "processTimingEnabled": true,
          "stageLoggingEnabled": false,
          "stages": [
              {
                  "name": "SAP SuccessFactors",
                  "plugin": {
                      "name": "SuccessFactors",
                      "type": "batchsource",
                      "label": "SAP SuccessFactors",
                      "artifact": {
                          "name": "successfactors-plugins",
                          "version": "0.2.9-SNAPSHOT",
                          "scope": "USER"
                      },
                      "properties": {
                          "referenceName": "test",
                          "baseURL": "${baseUrl}",
                          "entityName": "EmpCompensation",
                          "username": "${username}",
                          "password": "${password}",
                          "expandOption": "empCompensationCalculatedNav",
                          "associatedEntityName": "EmpCompensationCalculated",
                          "paginationType": "serverSide"
                      }
                  },
                  "outputSchema": [
                      {
                          "name": "etlSchemaBody",
                          "schema": ""
                      }
                  ],
                  "id": "SAP-SuccessFactors"
              },
              {
                  "name": "BigQuery",
                  "plugin": {
                      "name": "BigQueryTable",
                      "type": "batchsink",
                      "label": "BigQuery",
                      "artifact": {
                          "name": "google-cloud",
                          "version": "0.18.1",
                          "scope": "SYSTEM"
                      },
                      "properties": {
                          "referenceName": "test",
                          "project": "${projectId}",
                          "datasetProject": "${datasetProjectId}",
                          "dataset": "${dataset}",
                          "table": "${table}",
                          "serviceAccountType": "filePath",
                          "serviceFilePath": "auto-detect",
                          "operation": "insert",
                          "truncateTable": "false",
                          "allowSchemaRelaxation": "false",
                          "location": "US",
                          "createPartitionedTable": "false",
                          "partitioningType": "TIME",
                          "partitionFilterRequired": "false"
                      }
                  },
                  "outputSchema": [
                      {
                          "name": "etlSchemaBody",
                          "schema": ""
                      }
                  ],
                  "inputSchema": [
                      {
                          "name": "SAP SuccessFactors",
                          "schema": ""
                      }
                  ],
                  "id": "BigQuery"
              }
          ],
          "schedule": "0 1 */1 * *",
          "numOfRecordsPreview": 100,
          "maxConcurrentRuns": 1
      }
  }
  

What's next