SAP SuccessFactors 批量来源

本页介绍如何从 SAP SuccessFactors 员工中心模块中 Google Cloud 与 Cloud Data Fusion。

如需了解详情,请参阅在 Google Cloud 上运行 SAP 概览

准备工作

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

  1. 配置 SAP SuccessFactors 系统。您必须 在 SAP 系统中设置权限
  2. 在 Google Cloud 上部署 SAP SuccessFactors 插件, Cloud Data Fusion。您必须部署与 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 SuccessFactorsnode 的标签 示例 SAP SuccessFactors tables
    2. 输入连接详细信息。您可以设置新的一次性连接,也可以设置现有的可重复使用连接。

      一次性连接

      如需添加到 SAP 的一次性连接,请按照以下说明操作 步骤:

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

        1. 提供 SAP 凭据。
        2. SAP SuccessFactors Base 网址(SAP SuccessFactors 基准网址)字段中,输入您的 SAP SuccessFactors 账号基准网址。
        3. 参考名称字段中,输入 识别此沿袭来源的连接。
        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 的基础网址。
实体名称 要提取的实体的名称。不支持具有二进制数据类型的属性或大量数据的实体。例如,UserBadges 和 不支持 BadgeTemplates
SAP SuccessFactors 用户名 用于身份验证的用户 ID,类似于 USER_ID@COMPANY_ID。例如 sfadmin@cymbalgroup
SAP SuccessFactors 密码 用于用户身份验证的 SAP SuccessFactors 密码。
“过滤”选项 限制输出数据量的过滤条件。 例如 Price gt 200。请参阅 支持的过滤器选项
选择字段 要在提取的数据中保留的字段。对于 示例:CategoryPriceNameAddress。如果此字段留空,则所有非导航字段都将保留在提取的数据中。

所有字段必须用英文逗号 (,) 分隔。
展开字段 提取的输出数据中要展开的导航字段列表。例如 customManager。如果实体具有 分层记录,则来源会为 每个记录都包含一个额外字段 包含“展开”选项中指定的导航属性的值, 字段。
关联实体名称 要提取的关联实体的名称。 例如 EmpCompensationCalculated
分页类型 要使用的分页类型。服务器端分页使用基于快照的分页。如果基于快照的分页 则服务器 自动对查询执行 client-offset 分页。
仅支持服务器端分页的实体示例包括 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

使用场景

以下示例用例是 Google Cloud 中单个员工的数据, 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": {}
      }
  }
  

后续步骤