本页介绍了如何使用 Cloud Data Fusion 将 SAP SuccessFactors Employee Central 模块中的任何实体的数据提取到Google Cloud 。
如需了解详情,请参阅 SAP on Google Cloud 概览。
准备工作
设置 SAP SuccessFactors 插件使用的以下系统和服务:
- 配置 SAP SuccessFactors 系统。您必须在 SAP 系统中设置权限。
- 在 Cloud Data Fusion 中部署 SAP SuccessFactors 插件。您必须部署与 Cloud Data Fusion 版本兼容的插件版本。
- 如果您升级 Cloud Data Fusion 实例或插件版本,请评估这些更改对流水线的功能范围和性能的影响。
- 在 Cloud Data Fusion 和 SAP SuccessFactors 之间建立连接。
- 确保 Cloud Data Fusion 实例和 SAP SuccessFactors 实例之间启用了通信。
- 对于专用实例,请设置 VPC 网络对等互连。
配置插件
- 前往 Cloud Data Fusion 网页界面,然后点击 Studio。
- 检查是否已选择 Data Pipeline - Batch(而不是 Realtime)。
- 在来源菜单中,点击 SuccessFactors。SAP SuccessFactors 节点会显示在您的流水线中。
- 如需配置该源,请前往 SAP SuccessFactors 节点,然后点击属性。
输入以下属性。如需查看完整列表,请参阅属性。
- 为 SAP SuccessFactors 节点输入一个标签,例如
SAP SuccessFactors tables
。 输入连接详情。您可以设置新的一次性连接,也可以设置现有的可重复使用连接。
一次性连接
如需向 SAP 添加一次性连接,请按以下步骤操作:
- 让使用连接保持关闭状态。
在连接部分中,在以下字段中输入 SAP 账号中的以下信息:
- 提供 SAP 凭据。
- 在 SAP SuccessFactors Base 网址(SAP SuccessFactors 基本网址)字段中,输入您的 SAP SuccessFactors 账号基本网址。
- 在 Reference name(参考名称)字段中,输入用于标识此来源以便进行谱系分析的连接名称。
- 在实体名称字段中,输入要提取的实体的名称,例如
people
。 - 如需基于 SAP 的元数据生成架构,并将 SAP 数据类型映射到相应的 Cloud Data Fusion 数据类型,请点击获取架构。如需了解详情,请参阅数据类型映射。
- 在代理网址字段中,输入代理网址,包括协议、地址和端口。
可选:如需优化从 SAP 提取数据的负载,请输入以下信息:
- 如需根据选择条件提取记录,请点击过滤条件和选择字段。
- 在展开字段中,输入要展开的导航字段列表,以便在提取的输出数据中展开。例如
customManager
。 - 在其他查询参数中,输入要添加到网址的参数,例如
fromDate=2023-01-01&toDate=2023-01-31
。 - 在关联的实体名称字段中,输入要提取的实体的名称,例如
EmpCompensationCalculated
。 - 在分页类型字段中,输入类型,例如
Server-side pagination
。
可重复使用的连接
如需重复使用现有连接,请按以下步骤操作:
- 开启使用连接。
- 点击浏览连接。
点击连接名称。
如果不存在连接,请按照以下步骤创建可重复使用的连接:
- 依次点击添加连接 > SAP SuccessFactors。
- 在随即打开的创建 SAP SuccessFactors 关联页面上,输入关联名称和说明。
- 提供 SAP 凭据。您可以向 SAP 管理员索要 SAP 登录用户名和密码值。
- 在代理网址字段中,输入代理网址,包括协议、地址和端口。
- 点击创建。
- 为 SAP SuccessFactors 节点输入一个标签,例如
属性
属性 | 已启用宏 | 必需属性 | 说明 |
---|---|---|---|
标签 | 否 | 是 | 数据流水线中相应节点的名称。 |
使用连接 | 否 | 否 | 使用可重复使用的连接。如果使用连接,则无需提供凭据。如需了解详情,请参阅管理连接。 |
名称 | 否 | 是 | 可重复使用的连接的名称。 |
参考基因序列名称 | 否 | 是 | 唯一标识来源,用于沿袭和注释元数据。 |
SAP SuccessFactors 基本网址 | 是 | 是 | SuccessFactors API 的基准网址。 |
实体名称 | 是 | 是 | 要提取的实体的名称。不支持具有二进制数据类型或大量数据的属性的实体。例如,UserBadges 和 BadgeTemplates 不受支持。 |
SAP SuccessFactors 用户名 | 是 | 是 | 用于身份验证的用户 ID,类似于 USER_ID@COMPANY_ID 。例如 sfadmin@cymbalgroup 。 |
SAP SuccessFactors 密码 | 是 | 是 | 用于用户身份验证的 SAP SuccessFactors 密码。 |
“过滤”选项 | 是 | 否 | 用于限制输出数据量的过滤条件,例如 Price gt 200 。请参阅支持的过滤选项。 |
选择字段 | 是 | 否 | 要在提取的数据中保留的字段。例如 Category 、Price 、Name 、Address 。如果此字段留空,则所有非导航字段都将保留在提取的数据中。所有字段都必须用英文逗号 (,) 分隔。 |
展开字段 | 是 | 否 | 提取的输出数据中要展开的导航字段列表。例如 customManager 。如果实体包含分层记录,则来源会为其读取的实体中的每一行输出一条记录,每条记录都包含一个额外的字段,用于存储“展开字段”中指定的导航属性的值。 |
关联的实体名称 | 是 | 否 | 要提取的关联实体的名称。
例如 EmpCompensationCalculated 。 |
分页类型 | 是 | 是 | 要使用的分页类型。服务器端分页使用基于快照的分页。如果对不支持该功能的实体尝试使用基于快照的分页,服务器会自动对查询强制使用客户端偏移分页。 仅支持服务器端分页的实体示例包括 BadgeTemplates 、UserBadges 和 EPCustomBackgroundPortlet 。如果为这些实体选择客户端分页,则不会传输任何记录,因为它依赖于 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_externalCod e |
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": {} } }
后续步骤
- 详细了解 SAP on Google Cloud。