SAP SuccessFactors 批量来源

本页介绍了如何使用 Cloud Data Fusion 将 SAP SuccessFactors Employee Central 模块中的任何实体的数据提取到Google Cloud 。

如需了解详情,请参阅 SAP on Google Cloud 概览。

准备工作

设置 SAP SuccessFactors 插件使用的以下系统和服务:

  1. 配置 SAP SuccessFactors 系统。您必须在 SAP 系统中设置权限
  2. 在 Cloud Data Fusion 中部署 SAP SuccessFactors 插件。您必须部署与 Cloud Data Fusion 版本兼容的插件版本。
    • 如果您升级 Cloud Data Fusion 实例或插件版本,请评估这些更改对流水线的功能范围和性能的影响。
  3. 在 Cloud Data Fusion 和 SAP SuccessFactors 之间建立连接
    • 确保 Cloud Data Fusion 实例和 SAP SuccessFactors 实例之间启用了通信。
    • 对于专用实例,请设置 VPC 网络对等互连

配置插件

  1. 前往 Cloud Data Fusion 网页界面,然后点击 Studio
  2. 检查是否已选择 Data Pipeline - Batch(而不是 Realtime)。
  3. 来源菜单中,点击 SuccessFactors。SAP SuccessFactors 节点会显示在您的流水线中。
  4. 如需配置该源,请前往 SAP SuccessFactors 节点,然后点击属性
  5. 输入以下属性。如需查看完整列表,请参阅属性

    1. 为 SAP SuccessFactors 节点输入一个标签,例如 SAP SuccessFactors tables
    2. 输入连接详情。您可以设置新的一次性连接,也可以设置现有的可重复使用连接。

      一次性连接

      如需向 SAP 添加一次性连接,请按以下步骤操作:

      1. 使用连接保持关闭状态。
      2. 连接部分中,在以下字段中输入 SAP 账号中的以下信息:

        1. 提供 SAP 凭据。
        2. SAP SuccessFactors Base 网址(SAP SuccessFactors 基本网址)字段中,输入您的 SAP SuccessFactors 账号基本网址。
        3. Reference name(参考名称)字段中,输入用于标识此来源以便进行谱系分析的连接名称。
        4. 实体名称字段中,输入要提取的实体的名称,例如 people
        5. 如需基于 SAP 的元数据生成架构,并将 SAP 数据类型映射到相应的 Cloud Data Fusion 数据类型,请点击获取架构。如需了解详情,请参阅数据类型映射
        6. 代理网址字段中,输入代理网址,包括协议、地址和端口。
        7. 可选:如需优化从 SAP 提取数据的负载,请输入以下信息:

          1. 如需根据选择条件提取记录,请点击过滤条件选择字段
          2. 展开字段中,输入要展开的导航字段列表,以便在提取的输出数据中展开。例如 customManager
          3. 其他查询参数中,输入要添加到网址的参数,例如 fromDate=2023-01-01&toDate=2023-01-31
          4. 关联的实体名称字段中,输入要提取的实体的名称,例如 EmpCompensationCalculated
          5. 分页类型字段中,输入类型,例如 Server-side pagination

      可重复使用的连接

      如需重复使用现有连接,请按以下步骤操作:

      1. 开启使用连接
      2. 点击浏览连接
      3. 点击连接名称。

      如果不存在连接,请按照以下步骤创建可重复使用的连接:

      1. 依次点击添加连接 > SAP SuccessFactors
      2. 在随即打开的创建 SAP SuccessFactors 关联页面上,输入关联名称和说明。
      3. 提供 SAP 凭据。您可以向 SAP 管理员索要 SAP 登录用户名和密码值。
      4. 代理网址字段中,输入代理网址,包括协议、地址和端口。
      5. 点击创建

属性

属性 已启用宏 必需属性 说明
标签 数据流水线中相应节点的名称。
使用连接 使用可重复使用的连接。如果使用连接,则无需提供凭据。如需了解详情,请参阅管理连接
名称 可重复使用的连接的名称。
参考基因序列名称 唯一标识来源,用于沿袭和注释元数据。
SAP SuccessFactors 基本网址 SuccessFactors API 的基准网址。
实体名称 要提取的实体的名称。不支持具有二进制数据类型或大量数据的属性的实体。例如,UserBadgesBadgeTemplates 不受支持。
SAP SuccessFactors 用户名 用于身份验证的用户 ID,类似于 USER_ID@COMPANY_ID。例如 sfadmin@cymbalgroup
SAP SuccessFactors 密码 用于用户身份验证的 SAP SuccessFactors 密码。
“过滤”选项 用于限制输出数据量的过滤条件,例如 Price gt 200。请参阅支持的过滤选项
选择字段 要在提取的数据中保留的字段。例如 CategoryPriceNameAddress。如果此字段留空,则所有非导航字段都将保留在提取的数据中。

所有字段都必须用英文逗号 (,) 分隔。
展开字段 提取的输出数据中要展开的导航字段列表。例如 customManager。如果实体包含分层记录,则来源会为其读取的实体中的每一行输出一条记录,每条记录都包含一个额外的字段,用于存储“展开字段”中指定的导航属性的值。
关联的实体名称 要提取的关联实体的名称。 例如 EmpCompensationCalculated
分页类型 要使用的分页类型。服务器端分页使用基于快照的分页。如果对不支持该功能的实体尝试使用基于快照的分页,服务器会自动对查询强制使用客户端偏移分页。
仅支持服务器端分页的实体示例包括 BadgeTemplatesUserBadgesEPCustomBackgroundPortlet。如果为这些实体选择客户端分页,则不会传输任何记录,因为它依赖于 Count API,该 API 会将 -1 作为响应返回。

默认值为服务器端分页

支持的过滤条件选项

支持以下运算符:

运算符 说明 示例
逻辑运算符
Eq 等于 /EmpGlobalAssignment?$filter=assignmentClass eq 'GA'
Ne 不等于 /RecurringDeductionItem?$filter=amount ne 18
Gt 大于 /RecurringDeductionItem?$filter=amount gt 4
Ge 大于或等于 /RecurringDeductionItem?$filter=amount ge 18
Lt 小于 /RecurringDeductionItem?$filter=amount lt 18
Le 小于或等于 /RecurringDeductionItem?$filter=amount le 20
And 逻辑与 /RecurringDeductionItem?$filter=amount le 20 and amount gt 4
Or 逻辑或 /RecurringDeductionItem?$filter=amount le 20 or amount gt 4
Not 逻辑否定 /RecurringDeductionItem?$filter=not endswith(payComponentType, 'SUPSPEE_US')
算术运算符
Add /RecurringDeductionItem?$filter=amount add 5 gt 18
Sub /RecurringDeductionItem?$filter=amount sub 5 gt 18
Mul /RecurringDeductionItem?$filter=amount mul 2 gt 18
Div /RecurringDeductionItem?$filter=amount div 2 gt 18
Mod 取模 /RecurringDeductionItem?$filter=amount mod 2 eq 0
分组运算符
( ) 优先级分组 /RecurringDeductionItem?$filter=(amount sub 5) gt 8

数据类型映射

下表列出了 SAP 数据类型及其对应的 Cloud Data Fusion 类型。

SuccessFactors 数据类型 Cloud Data Fusion 架构数据类型
Binary Bytes
Boolean Boolean
Byte Bytes
DateTime DateTime
DateTimeOffset Timestamp_Micros
Decimal Decimal
Double Double
Float Float
Int16 Integer
Int32 Integer
Int64 Long
SByte Integer
String String
Time Time_Micros

使用场景

以下示例用例是 EmployeePayrollRunResults 中单个员工的数据:

示例媒体资源 示例值
externalCode SAP_EC_PAYROLL_1000_0101201501312015_456_416
人员 ID 456
用户 user-1
雇佣 ID 416
薪资服务提供商 ID SAP_EC_PAYROLL
有效付款期的开始日期 2015 年 1 月 1 日
有效付款期的结束 2015 年 1 月 31 日
公司 ID BestRun Germany(1,000 次)
付款 2015 年 1 月 28 日
货币 欧元 (EUR)
工资计算运行类型 常规 (REGULAR)
系统 ID X0B

以下示例展示了 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

流水线示例

请参阅以下 JSON 文件中的示例配置:

  {
      "artifact": {
          "name": "data-pipeline-1",
          "version": "DATA_FUSION_VERSION",
          "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": "PLUGIN_VERSION",
                          "scope": "USER"
                      },
                      "properties": {
                        "useConnection": "false",
                        "username": "${username}",
                        "password": "${password}",
                        "baseURL": "${baseUrl}",
                        "referenceName": "test",
                        "entityName": "${EmpCompensation}",
                        "proxyUrl": "${ProxyUrl}",
                        "paginationType": "serverSide",
                        "initialRetryDuration": "2",
                        "maxRetryDuration": "300",
                        "maxRetryCount": "3",
                        "retryMultiplier": "2",
                        "proxyUsername": "${Proxyusername}",
                        "proxyPassword": "${Proxypassword}"
                      }
                  },
                  "outputSchema": [
                      {
                          "name": "etlSchemaBody",
                          "schema": ""
                      }
                  ],
                  "id": "SAP-SuccessFactors"
              },
              {
                  "name": "BigQuery",
                  "plugin": {
                      "name": "BigQueryTable",
                      "type": "batchsink",
                      "label": "BigQuery",
                      "artifact": {
                          "name": "google-cloud",
                          "version": "BIGQUERY_PLUGIN_VERSION",
                          "scope": "SYSTEM"
                      },
                      "properties": {
                        "useConnection": "false",
                        "project": "auto-detect",
                        "serviceAccountType": "filePath",
                        "serviceFilePath": "auto-detect",
                        "referenceName": "Reff",
                        "dataset": "SF_Aug",
                        "table": "testdata_proxy",
                        "operation": "insert",
                        "truncateTable": "true",
                        "allowSchemaRelaxation": "true",
                        "location": "US",
                        "createPartitionedTable": "false",
                        "partitioningType": "TIME",
                        "partitionFilterRequired": "false"
                      }
                  },
                  "outputSchema": [
                      {
                          "name": "etlSchemaBody",
                          "schema": ""
                      }
                  ],
                  "inputSchema": [
                      {
                          "name": "SAP SuccessFactors",
                          "schema": ""
                      }
                  ],
                  "id": "BigQuery"
              }
          ],
           "schedule": "0 1 */1 * *",
        "engine": "spark",
        "numOfRecordsPreview": 100,
        "rangeRecordsPreview": {
            "min": 1,
            "max": "5000"
        },
        "description": "Data Pipeline Application",
        "maxConcurrentRuns": 1,
        "pushdownEnabled": false,
        "transformationPushdown": {}
      }
  }
  

后续步骤