ブログ

【SAP BTP】SuccessFactors × OData V2接続で失敗!? Integration Suiteでハマるポイントと対策まとめ

この記事をSNSでシェア!

はじめに

株式会社KYOSOでは、SAP Build Work Zone 上での SAP Fiori アプリケーション開発や、クライアントへの技術支援を幅広く行っています。

SAP Integration Suite を使用したSAP SuccessFactorsへのデータ連携について、調査をする機会がありました。本記事では上記対応中に困ったこと、必要な設定方法や注意点を実装の流れを実際の画面とともに紹介します。

Integration Suite に関しては、日本語での情報がまだ少ないのが現状です。

これから導入・運用をご検討されている方や、技術調査を進めている方の参考になれば幸いです。


構成

今回構築した連携フローは、以下のような構成となっています:

  • SAP Integration Suite にて HTTP 経由で XML データを受信
  • Content Modifier で SuccessFactors に適した形式へ変換
  • SAP SuccessFactors側の OData v2 エンドポイントへ POST リクエストを送信

この一連の処理を Integration Flow(iFlow)で構築し、ノーコード/ローコードで実現しています。


実装方法

Step 1:Security Material の作成

まず、SuccessFactorsへの接続時に使用する資格情報(ユーザー・パスワード)を SAP Integration Suite の Security Material に登録します。

手順

1.Monitor タブを開き、「Integration and APIs」をクリック

「Security Material」メニューを選択

「Create」を押下して、新規作成画面へ

入力項目は以下の通りです:

項目内容
Name任意の識別名(例:sf_key
TypeUser Credentials を選択
User<ユーザーID>@<CompanyID>(例:john.doe@ABC123)
PasswordSF ログインパスワード

作成後、この Security Material は後続の SuccessFactors 接続ステップで参照します。


Step 2:Integration Flow の作成

Integration Flow(iFlow)を新規作成し、以下のような構成で構築します:

① HTTP 受信設定

HTTP を入り口として POST リクエストを受け取るための設定を行います。

  • Adapter type:HTTP
  • Path(例):/sfis

このエンドポイントに対して外部から POST リクエストを送ることで、iFlow がトリガーされます。


② XML データの受信定義

POST リクエストで送信された XML データのスキーマを定義します。

ます。


③ Content Modifier の定義

次に、SuccessFactors へ送信する XML ボディを作成するための Content Modifier を追加します。

受信形式は JSON でも試みましたが

OData アダプタは JSON 形式のペイロードには対応しておらず、XML のみサポートしています。

したがって、Integration Flow では XML 形式でのデータ受信・加工が必要になり

ここで、ステップ②で受信した値を参照しながら、新しい XML を構築します。

この XML が、SF の Position エンティティに対して POST するデータの本体になります。

*もしJSON形式で受け渡しをしたい場合はXML to JSON Converterなどを使用してXMLに加工すれば、Flowの中でも処理できます。

ここで困ったことが起きました

XMLの構造エラーでPOSTがうまくいきません。。。

調査したところ行程④にて、対象とするODataのXML構造の取得をし、その構造と一致した形で

XMLを作成しなければいけないことが判明しました!(タグ名の不一致やネスト構造ミスなど)


④ SuccessFactors 呼び出し設定

最後に、SuccessFactors への接続設定を行います。

接続設定:

項目内容
Addresshttps://<your_company>.successfactors.com
Address Suffix/odata/v2
Proxy TypeInternet
AuthenticationBasic
Credential NameStep 1 で作成した sf_key を指定

処理設定(Processing):

  • Operation Type:POST
  • Resource Path:SuccessFactors の OData エンティティ(例:Position)を選択

ここでXML Schema を生成(例:PositionEntityPOST.xsd)します

生成されたスキーマは IntegretionSuitsz全体設定で参照できます

これを③Content Modifier で送るBODYの内容とフィールド定義を合わせる必要があります。

こちらの定義と合っていない内容をXML形式で送り続けておりエラーになっていましたので注意が必要です。


Step 3:接続テスト

すべての設定が完了したら、実際にデータを POST して動作を確認します。

ツール:Postman

  • URL:https://<iflow-endpoint>/sfis
  • メソッド:POST
  • Content-Type:application/xml
  • Body:Content Modifier で定義した形式に準拠した XML

POSTが成功すると、SuccessFactorsに新しいPositionデータが登録されます。


まとめ

いかがでしたでしょうか?

今回は、SAP Integration Suite を使って、SAP SuccessFactors の OData API(v2)へデータを POST する一連の構成について紹介しました。

行程④にも記載の通りOData接続先のXMLの形式確認を行ってから、BODYの内容を生成することによってエラーが回避できました。

先にこちらの作業を行うことをお勧めします。

このように、 Integration Suite を活用することで、コードを書かずに SAP 間の連携を実現できます。データの加工や条件分岐なども GUI 上で直感的に設計できるため、保守性・可読性にも優れています。

SF 内の他のエンティティへのアクセスや、複数のサービスとの連携にも応用が可能ですので、ぜひ活用を検討してみてください。

KYOSOでは、事前検証から実装・保守まで一貫した支援を行い、システム部門や同業の皆さまの業務負荷軽減と導入リスク最小化に貢献しています。
お気軽にご相談ください!

投稿者プロフィール

増田 駿也
増田 駿也
2021年入社、BS事業部所属。

現在はSAP BTP上でのSide-by-Side拡張開発に携わっており、SAP Fioriを活用したUI開発案件を担当しています。

社内の標準化やベストプラクティスの整理にも積極的に関わり、ナレッジの共有を通じてチーム全体のスキル向上にも貢献したいと考えています。
趣味はツーリング。
この記事をSNSでシェア!