Technical Articles
SAP SuccessFactorsのビジネスコンテンツのインポートと接続
2023Q2リリースでビジネスコンテンツのストーリーが最適化されたストーリーエクスペリエンスに変更されたので、一部内容を更新しました(2023/5/24)。
更新箇所は以下の通りです。
- アーキテクチャ図の差し替え:Digital Boardroomが最適化されたストーリーエクスペリエンスではサポートされていないため、最新のビジネスコンテンツでは提供されていません。
- 各ストーリーのスクリーンショットの差し替え:最適化されたストーリーエクスペリエンスのスクリーンショットに変更しました。
- 各ストーリーの詳細:前回は概要のみ記載していましたが、詳細を記載しました。
- 6.データに合わせてコンテンツを修正するの差し替え:最新のコンテンツに合わせて記載を修正しました。
はじめに
このブログポストではSAP SuccessFactorsのビジネスコンテンツのインポートと接続を紹介します。また、このブログポストはこちらの英語ブログを元に記載をしています。
SAP Analytics Cloudのビジネスコンテンツの探し方やインストール手順はこちらをご参照ください。また、ビジネスコンテンツの利用については、合わせてこちらもご参照ください。
SAP SuccessFactorsのビジネスコンテンツのインポートは以下の手順で行います。
No | タスク | SAP Analytics Cloud | SAP SuccessFactors |
1 | ビジネスコンテンツをインポートする | 〇 | |
2 | OAuth2のクライアントアプリケーションを登録する | 〇 | |
3 | SAP SuccessFactorsを接続する | 〇 | |
4 | 公開ディメンジョンにマスタデータをインポートする | 〇 | |
5 | モデルにトランザクションデータをインポートする | 〇 | |
6 | データに合わせてコンテンツを修正する | 〇 |
-
ビジネスコンテンツをインポートする
今回インポートするビジネスコンテンツはこちらです。以下がインポートするビジネスコンテンツの概要(ヘルプより抜粋)です。各ダッシュボード、モデル、ストーリーの詳細はヘルプをご参照ください。
本ブログでは、CI10で追加されたSAP SuccessFactorsのEmployee Central(EmpJob:職務情報)のデータインポート(以下の図の緑色部分)を説明します。(ヘルプ参照)。
SAP Analytics Cloudのコンテンツネットワークから該当のビジネスコンテンツを選択してインポートします。ヘルプにも記載がありますが、このビジネスコンテンツには簡体字中国語のコンテンツも提供されているので、注意してください。フォルダ自体がわかれているので、フォルダで区別は可能です。
今回はインポートオプションで「オブジェクトまたはデータを上書きしない」を選択し、コンテンツはすべて選択してインポートを実行します。
インポート結果はSAP Analytics Cloudの「通知」から確認することが可能です。今回はすでに存在するオブジェクトもあったため、警告で終了していますが、特に問題はありません。
ただし、接続「SAPSFSF」が一覧にない場合は、他のユーザがインポートを実施し、接続が共有されていない状態です。以下のKBAにしたがって、接続を共有してもらってください。さもないと、データのインポートジョブ実行時に権限不足でエラーとなります。
https://apps.support.sap.com/sap/support/knowledge/en/2327225
あるいは、インポート時に「オブジェクトとデータを上書きする」を選択し、「権限を含む」のフラグを設定してください。
各オブジェクトのインポート結果を確認する場合は、「完了済」をクリックします。ステータスが警告の場合は、カーソルを合わせることで内容を確認することが可能です。
以下がインポートされたストーリー「SAP__HR_GEN_HEADCOUNT」です。参照しているモデルがインポートモデルのため、サンプルデータが表示されています。
- SAP__HR_GEN_HEADCOUNTストーリー
- Overviewページ
Overviewページでは、現在の従業員数(FTEおよびヘッドカウント)、現在(=2023年)の採用者数、現在(=2023年)の退職者数、国別の従業員数の地図チャート、時系列での採用者数チャート、前年(=2022年)から現在(=2023年)までの従業員数の増減チャート、チームごと(ユーザのマネージャ階層)の従業員数割合をレポートすることが可能です。
※詳細は「6.データに合わせてコンテンツを修正する」を参照していただきたいですが、ストーリー上で表示されているデータの一部はディメンジョンメンバーの式に固定の年度が定義されているため、データに合わせて修正する必要があります。
- Current Headcountページ
Current Headcountページでは、現在の従業員情報を様々なディメンジョン、メジャーで分析することが可能です。
左上のラジオボタンで、ヒートマップに表示するメジャー(現在のFTE/現在のFTE%/現在のヘッドカウント/現在のヘッドカウント%/男女レシオ)およびヒートマップのX軸(賃金グレード/会社コード/事業領域/原価センタ/ジョブ分類)のディメンジョンを切り替えることが可能です。ヒートマップはユーザ(マネージャ階層)と選択したディメンジョンで表示がされ、マネージャ階層はドリルダウン/アップすることもできます。ヒートマップで選択したデータが他のウィジェットにリンク分析として反映され、比率や平均などを分析することが可能です。
右側には、雇用ステータス(有効/退職/休職)、性別の割合、次世代のリーダー候補の割合、民族性の割合、派遣労働者の割合が表示されます。
また、画面下部はロケーションごとの平均年齢/平均パフォーマンス/平均ポテンシャル/平均勤続年数や中央値を分析することが可能です。画面の最下部では、会社コードごとのポテンシャルと平均年齢/平均パフォーマンス/勤続年数で人材分布を確認することができます。
- Hires and Terminationsページ
Hires and Terminationsページでは、採用者や退職者を分析することが可能です。
左側には、選択した期間の採用者数、退職者数、採用―退職数、平均勤続年数が表示されます。また、その下には採用者数と退職者数が時系列で表示されます。
地図上にはロケーションごとの退職者数が表示されています。
その他のチャートはページフィルタで選択したメジャー(採用者数、退職者数、採用―退職数)の性別比率、平均勤続年数、ポテンシャルやパフォーマンスの分布状況、マネージャ別など採用者や退職者の分析を行うことが可能です。
- SAP__HR_GEN_HRストーリー
- Headcount Overviewページ
このページでは、現在のFTE、退職率やヘッドカウントの推移、後継者管理、性別や年齢の多様性、従業員満足度、退職者の勤続年数とパフォーマンス、国ごとの平均賃金といった概要を分析することが可能です。ただし、従業員満足度のデータはアーキテクチャ図にある通り、他のソースからSurvey – Survey Resultsのモデルにデータをインポートする必要があります。
- Detailページ
このページでは国や事業領域ごとのFTEの割合、女性管理職の割合、休暇の取得状況、採用と退職のトレンド、国ごとの平均賃金、従業員トレーニング費用などを分析することが可能です。ただし、休暇の取得状況や従業員トレーニング費用のデータは後続で紹介するSuccess FactorsのEC(Employee Central)から提供されません。別途SAP Human Resources: Courses – SummaryとLeaves – Leave of AbsenceのモデルにSuccess Factorsのクエリ経由でデータをインポートする必要があります。
- Contextページ
このページでは従業員へのサーベイ結果や従業員満足度を確認することが可能です。ただし、以下のデータは後続で紹介するSuccess FactorsのEC(Employee Central)から提供されません。アーキテクチャ図にある通り、他のソースからSurvey – Survey Resultsのモデルにデータをインポートする必要があります。
- Context-Salaryページ
このページでは国やジョブタイトルごとの平均賃金やジョブ分類ごとのヘッドカウントを確認することができます。
- Context-Diversityページ
このページでは、性別・民族性・年齢などの多様性や婚姻ステータス、ジョブ分類ごとのFTE、後継者管理の情報を確認することが可能です。
- Context-Movement&Performanceページ
このページでは、ヘッドカウントの推移やパフォーマンスの分布、退職者の退職理由やパフォーマンスや勤続年数を確認することが可能です。
-
OAuthクライアントアプリケーションを登録する
次にSAP Analytics CloudとSAP SuccessFactorsを接続するために、SAP SuccessFactors側でOAuthクライアントアプリケーションを登録します(KBA)。SAP SuccessFactorsにログインし、管理センターから「OAuth2 クライアントアプリケーションの管理」ツールを選択します。「アプリケーション名」に任意のアプリケーション名を入力し、「アプリケーションURL」にSAP Analytics Cloudの情報を入力して、「X509証明書を生成」をクリックします。
主体者のCN(Common Name)を入力して「生成」をクリックします。
X509証明書が生成されるので、「ダウンロード」をクリックしてファイルをダウンロードします(ダウンロードしたファイルをSAP Analytics Cloudの接続登録時に使用します)。
「登録」をクリックすることにより、APIキーも生成されます(APIキーもSAP Analytics Cloudの接続登録時に使用します)。
以上でSAP SuccessFactors側の設定は終了です。
-
SAP SuccessFactorsを接続する
ビジネスコンテンツのインポート時に登録された接続「SAPSFSF」をSAP SuccessFactors側で生成した情報で更新します。
接続に必要な情報を入力し、「OK」をクリックします。
項目 | 内容 |
接続名 | 「SAPSFSF」固定 |
テキスト | 任意のテキストを入力します。 |
サービスURL | こちらからSAP SuccessFactorsの環境を探し、該当のAPIサーバのURLをサービスURLとして入力します。 |
ユーザID | SAP SuccessFactorsにログインするユーザIDを入力します。 |
APIキー | SAP SuccessFactorsで生成されたAPIキーを入力します。 |
秘密鍵 | SAP SuccessFactorsで生成し、ダウンロードしたファイル「Certificate.pem」を選択します。 |
会社ID | SAP SuccessFactorsの会社IDを入力します。 |
以上で、SAP Analytics CloudとSAP SuccessFactorsの接続は終了です。
-
公開ディメンジョンにマスタデータをインポートする
接続したSAP SuccessFactorsから公開ディメンジョンにマスタデータをインポートします。
以下では、公開ディメンジョン「SAP_HR_GEN_USER」を例に説明します。ブラウズ>ディメンジョンから「SAP_HR_GEN_USER」を選択し、「データ管理」を選択します。事前定義のインポートジョブが定義されているのがわかります。
事前定義されているインポートジョブを選択し、「リフレッシュ」をクリックします。
もし以下のエラーが発生した場合は、接続「SAPSFSF」に対する権限がありません。
“You do not have rights to import this data”
“You do not have access to view/edit/update this datasource”
詳細は以下のKBAを参照してください。
https://apps.support.sap.com/sap/support/knowledge/en/2756571
https://apps.support.sap.com/sap/support/knowledge/en/2938074
上記エラーが発生した場合は、インポートを実行したユーザに接続を共有してもらうか、「権限を含む」オプションで接続を再インポートしてください。(「1.ビジネスコンテンツをインポートする」を参照してください。)
提供されているビジネスコンテンツとデータソースのスキーマ構造が異なる場合、リフレッシュ時にエラーが発生します。
その場合は「ディメンジョンからクエリをコピー」する形で新規のインポートジョブを登録してください。
データソースの項目とディメンジョンをマッピングして、「マッピングを終了」をクリックします。
インポートジョブが正常終了したことを確認します。今回の場合はデータに問題があったため、警告終了となっています。
以下の公開ディメンジョンについても、同じようにインポートジョブを実行して、データをインポートします。
ディメンジョン技術名称 | ディメンジョン名 | 備考 |
SAP_ALL_BUSINESSAREA | Business Area | |
SAP_ALL_COSTCENTER | Cost Center | |
SAP_HR_USER_DEPARTMENT | Department | |
SAP_HR_USER_DIVISION | Division | |
SAP_HR_EMPLSTATUS | Employment Status | |
SAP_HR_USER_ETHNICITY | Ethnicity | |
SAP_HR_USER_FUTURELEADER | FutureLeader | True/Falseのみなので、インポート不要 |
SAP_HR_USER_GENDER | Gender | 男女以外なければ、インポート不要 |
SAP_HR_USER_LOSSIMPACT | Impact of Loss | |
SAP_HR_ISCONTINGENT | Is Contingent Worker | True/Falseのみ、インポート不要 |
SAP_HR_USER_ISFULLTIME | Fulltime | True/Falseのみ、インポート不要 |
SAP_HR_USER_JOBCLASSIFICATION | Job Classification | |
SAP_HR_LOCATION_COUNTRY | Location | |
SAP_HR_USER_ISNEWTOPOSITION | NewToPosition | True/Falseのみ、インポート不要 |
SAP_HR_USER_PAYGRADE | Pay Grade | |
SAP_HR_USER_PERFORMANCE | Performance | |
SAP_HR_USER_POTENTIAL | Potential | |
SAP_HR_USER_REASONFORLEAVING | Reason For Leaving | |
SAP_HR_SENIORITYSTARTDATE | Seniority Start Date | 日付項目の加工とマッピングを参照 |
SAP_HR_TERMINATIONDATE | Termination Date | 日付項目の加工とマッピングを参照 |
SAP_ALL_COMPANY_CODE | Company Code |
日付項目の加工とマッピング
データソースの「勤続年数開始日」、「離職日」のデータが「YYYY-MM-DD HH:MM:SS」のため、以下のように加工してマッピングします。データソースからインポートした項目ではマッピングが不足しているので、マッピングする際に以下の加工をする必要があります(ヘルプのNote1のTime Handling)。
以下では「勤続年数開始日(SENIORITYSTARTDATE)」を加工して、ディメンジョンの項目にマッピングします。
- 「YYYY-MM-DD HH:MM:SS」から「YYYY-MM-DD」を抽出して「Seniority Start Date」にマッピング
データソースの項目「YYYY-MM-DD HH:MM:SS」から「YYYY-MM-DD」のみを抽出するために、「スマート変換」から「最初の”00:00:00”の前にある・・・」を選択します。
- 「YYYY-MM-DD HH:MM:SS」から「YYYY」、「MM」を抽出して「YEAR」、「Month」にマッピング
データソースの項目「YYYY-MM-DD HH:MM:SS」から「YYYY」、「MM」のみを抽出するために、列を複製して「-」で項目を分割します。以下のように繰り返しを利用することで、1回の処理で「YYYY」、「MM」を抽出することが可能です。
上記で作成した列をディメンジョンマッピングで適切な項目にマッピングします。
ディメンジョン項目 | マッピングする列 |
ディメンジョンID | 「YYYY-MM-DD」の列 |
Month | 「MM」の列 |
Year | 「YYYY」の列 |
「離職日(TERMINATIONDATE)」も同様の加工とマッピングを行います。
-
モデルにトランザクションデータをインポートする
公開ディメンジョンにマスタデータをインポートした後に、接続したSAP SuccessFactorsからモデルにトランザクションデータをインポートします。事前定義のインポートジョブがエラーとなることがあります(ノート参照)。本ブログでは、モデルからクエリをコピーして、データをインポートする方法を説明します。
モデル「SAP__HR_GEN_IM_EC_HEADCOUNT」にデータをインポートするために、モデルからクエリをコピーして新規のインポートジョブを登録してください。
モデルクエリに含まれている項目は以下の26項目です。
テーブル名称 | 項目名称 | 技術名称 |
職務情報 | 専従換算 | Fte |
職務情報 | フルタイム従業員 | IsFulltimeEmployee |
雇用詳細 | 入社日 | EmploymentNav/startDate |
雇用詳細 | 勤務年数開始日 | EmploymentNav/seniorityDate |
雇用詳細 | 離職日 | EmploymentNav/endDate |
雇用詳細 | 臨時雇用 | EmploymentNav/isContingentWorker |
User | パフォーマンス | userNav/performance |
User | ポテンシャル | userNav/potential |
User | 生年月日 | userNav/dateOfBirth |
User | ユーザID | userNav/userid |
User | 性別 | userNav/gender |
User | 民族性 | userNav/ethnicity |
User | 退職時の影響 | userNav/impactOfLoss |
User | 退職理由 | userNav/reasonForLeaving |
User | 次世代リーダー候補 | userNav/futureLeader |
User | 着任直後 | userNav/newToPosition |
コストセンター | コード | costcenterNav/externalCode |
事業単位 | 事業単位コード | businessUnitNav/externalCode |
事業所 | コード | locationNav/externalCode |
事業部 | コード | divisionNav/externalCode |
法人 | 国 | companyNav/country |
法人 | 法人ID | companyNav/externalCode |
従業員ステータス | external code | EmplStatusNav/externalCode |
給与等級 | 給与等級ID | payGradeNav/externalCode |
職務分類 | 職位コード | jobCodeNav/externalCode |
部署 | コード | departmentNav/externalCode |
上記クエリからインポートした項目ではマッピングが不足しているので、マッピングする際に以下の加工をする必要があります(ヘルプのNote1のTime Handling)。
日付項目の加工とマッピング
データソースの「勤続年数開始日」、「入社日」、「生年月日」、「離職日」が「YYYY-MM-DD HH:MM:SS」のため、以下のように加工してマッピングします。
以下では、「勤続年数開始日」を加工して、モデルの項目にマッピングします。
- 「YYYY-MM-DD HH:MM:SS」から「YYYY-MM-DD」を抽出して「Seniority Start Date」にマッピング
データソースの項目「YYYY-MM-DD HH:MM:SS」から「YYYY-MM-DD」のみを抽出するために、「スマート変換」から「最初の”00:00:00”の前にある・・・」を選択します。
選択した結果、スマート変換で「YYYY-MM-DD」が抽出された新しい列が生成されます。
上記で作成した列を「Seniority Start Date」にマッピングします。
- 「YYYY-MM-DD HH:MM:SS」を「YYYY」、「MM」、「DD HH:MM:SS」に分割
「YYYY-MM-DD HH:MM:SS」の列を「スマート変換」を利用して加工します。
上記で作成した「YYYY」をメジャーの「勤続年(Seniority YEAR)」にマッピングします。
「入社日」、「生年月日」、「離職日」についても同様の加工を行い、ディメンジョンやメジャーの項目にマッピングを行います。
ストーリー「SAP__HR_GEN_HEADCOUNT」のデータが更新されていることがわかります(サンプルデータはモデルのファクトから削除しています)。
-
データに合わせてコンテンツを修正する
ビジネスコンテンツでは「Account」ディメンジョンで式が事前定義されているので、インポートしたデータに合わせて修正します。特にサンプルデータに合わせて年度が固定で定義されている部分は修正が必要です。
以下のメンバーについては、式に年度が固定で定義されている(太字部分)ので、修正が必要かどうかを確認してください。
メンバーID | 式 |
AvgAge | IF(ISNULL([BIRTHYEAR]),NULL, 2023-[BIRTHYEAR] ) |
FTEEOP2022 | RESTRICT([FTE],[d/HIREDATE].[p/YEAR]!=”2023” and [d/SAP_HR_TERMINATIONDATE].[p/Year]=(“2023“,”Unassigned”)) |
HCEOP2022 | RESTRICT([Count],[d/HIREDATE].[p/YEAR]!=”2023” and [d/SAP_HR_TERMINATIONDATE].[p/Year]=(“2023“,”Unassigned”)) |
Seniority | IF([d/SAP_HR_SENIORITYSTARTDATE]=”#”, [Tenure], IF([d/SAP_HR_TERMINATIONDATE]=”#”, 2023-[SENIORITYSTARTYEAR], [TERMINATIONYEAR]-[SENIORITYSTARTYEAR] ) ) |
Tenure | IF([d/SAP_HR_TERMINATIONDATE]=”#”, 2023-[HIREYEAR], [TERMINATIONYEAR]-[HIREYEAR] ) |
Terminations2022 | RESTRICT([Count] ,[d/SAP_HR_TERMINATIONDATE].[p/Year] = “2022“) |
TerminationsCY | RESTRICT([Count] ,[d/SAP_HR_TERMINATIONDATE].[p/Year] = “2023” ) |
まとめ
本ブログでは、CI10で追加されたSAP SuccessFactorsのEmployee Central(EmpJob:職務情報)に関連するSAP Analytics CloudのビジネスコンテンツのインポートやSAP SuccessFactorsとの接続、さらにデータのインポートやディメンジョンの調整について説明しました。
テンプレートを活用することで、比較的簡易にSAP SuccessFactorsのデータをSAP Analytics Cloudにインポートして分析することが可能だとお判りいただけたと思います。ビジネスコンテンツを参考にして、SAP Analytics CloudでSAP SuccessFactorsの分析をご検討いただければ幸いです。