SAP SuccessFactors バッチソース

このページでは、Cloud Data Fusion を使用して SAP SuccessFactors Employee Central モジュール内の任意のエンティティから Google Cloud にデータを抽出する方法について説明します。

詳細については、Google Cloud での SAP の概要をご覧ください。

始める前に

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. [Realtime] ではなく、[Data Pipeline - Batch] が選択されていることを確認します。
  3. [ソース] メニューで [SuccessFactors] をクリックします。SAP SuccessFactors ノードがパイプラインに表示されます。
  4. ソースを構成するには、SAP ODP ノードに移動して、[プロパティ] をクリックします。
  5. 次のプロパティを入力します。完全版リストについては、プロパティをご覧ください。

    1. SAP SuccessFactors ノードの [ラベル] を入力します(例: SAP SuccessFactors tables)。
    2. 接続の詳細を入力します。新しい 1 回限りの接続または再利用可能な既存接続を設定できます。

      1 回限りの接続

      SAP に 1 回限りの接続を追加するには、次の手順に従います。

      1. [接続を使用] はオフのままにします。
      2. [接続] セクションで、SAP アカウントの次の情報をこれらのフィールドに入力します。

        1. SAP 認証情報を指定します。
        2. [SAP SuccessFactors のベース URL] フィールドに、SAP SuccessFactors アカウントのベース URL を入力します。
        3. [参照名] フィールドに、リネージのこのソースを識別する接続の名前を入力します。
        4. [エンティティ名] フィールドに、抽出するエンティティの名前を入力します(例: people)。
        5. SAP のデータ型を対応する Cloud Data Fusion のデータ型にマッピングする SAP のメタデータに基づいてスキーマを生成するには、[スキーマを取得] をクリックします。詳細については、データ型のマッピングをご覧ください。
        6. [プロキシ URL] フィールドに、プロトコル、アドレス、ポートを含むプロキシ URL を入力します。
        7. 省略可: SAP からの取り込み負荷を最適化するには、次の情報を入力します。

          1. 選択条件に基づいてレコードを抽出するには、[フィルタ オプション] と [フィールドを選択] をクリックします。
          2. [フィールドを展開] で、抽出された出力データで展開するナビゲーション フィールドのリストを入力します。例: customManager
          3. [追加のクエリ パラメータ] に、URL に追加するパラメータ(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. [プロキシ URL] フィールドに、プロトコル、アドレス、ポートを含むプロキシ URL を入力します。
      5. [作成] をクリックします。

プロパティ

プロパティ マクロ対応 必要なプロパティ 説明
ラベル × データ パイプラインのノードの名。
接続を使用 × × 再利用可能な接続を使用します。接続を使用する場合は、認証情報を提供する必要はありません。詳細については、接続を管理するをご覧ください。
名前 × 再利用可能な接続の名前。
参照名 × リネージのソースを一意に識別し、メタデータをアノテーションします。
SAP SuccessFactors のベース URL SuccessFactors API のベース URL。
エンティティ名 抽出するエンティティの名前。Binary データ型のプロパティまたは大量のデータを含むエンティティはサポートされていません。たとえば、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 論理 AND /RecurringDeductionItem?$filter=amount le 20 and amount gt 4
Or 論理 OR /RecurringDeductionItem?$filter=amount le 20 or amount gt 4
Not 論理否定 /RecurringDeductionItem?$filter=not endswith(payComponentType, 'SUPSPEE_US')
算術演算子
Add Addition /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 Modulo /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 内の 1 人の従業員のデータです。

プロパティの例 値の例
externalCode SAP_EC_PAYROLL_1000_0101201501312015_456_416
個人 ID 456
ユーザー user-1
雇用 ID 416
給与プロバイダ ID SAP_EC_PAYROLL
有効なお支払い期間の開始日 01/01/2015
有効なお支払い期間の終了日 01/31/2015
Company ID BestRun Germany(1000)
お支払い 01/28/2015
通貨 EUR(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": {}
      }
  }
  

次のステップ