CData Software Blog

クラウド連携のCData Software の技術ブログです。

ASTERIA WarpでSAP S/4 HANA CloudとSQL Serverをデータ連携させる

本記事ではASTERIA Warp上で、SAP S/4 HANA CloudのデータをSQL Serverに連携させる方法を紹介します。

ASTERIA Warpは簡単なGUIを用いて作成するフローによって既存のデータベース、ファイルシステム、各種業務システム、各種クラウドサービスと簡単に接続、連携することのできるデータ連携ツールです。

www.asteria.com

連携シナリオ

今回はSAP S/4 HANA Cloudの受注(Sales Orders)データをASTERIA Warpを利用してSQL Serverに登録します。 SAP S/4 HANA Cloudからのデータ取得にはASTERIA WarpRDBコンポーネントを利用します。 RDBコンポーネントJDBCドライバを通してデータソースからのデータ取得や更新を行います。

SAP S/4 HANA CloudのデータにアクセスするJDBCドライバとしてCData SAP Gateway JDBC Driver を利用します。 CData SAP Gateway JDBC Driverは、SAP S/4 HANA CloudのWeb APIへのアクセスをJDBCインタフェースに変換するドライバです。 RDBコンポーネント単体ではWeb APIへアクセスすることはできませんが、これを利用することでSAP S/4 HANA CloudのWeb APIへの操作をデータベースの操作のように扱うことができます。

f:id:urabe_shintaro:20210318163209p:plain

連携データ項目

今回連携対象とするデータ項目の一覧を以下に示します。

項目名
SalesOrder オーダID
CreationDate オーダ作成日
OverallDeliveryStatus 配送ステータス
RequestedDeliveryDate 希望納品日
TotalNetAmount 合計数量

SQL Serverのデータ登録用テーブル

SAP S/4 HANAのデータを登録する先としてSQL Serverにテーブルを一つ追加します。

f:id:urabe_shintaro:20210318163625p:plain

事前準備

事前準備として、SAP S/4 HANA Cloudへの接続に必要な情報の取得と、データソースにアクセスするJDBCドライバのインストールを行います。

SAP S/4 HANA CloudのAPIキーの取得

SAP S/4 HANA CloudからAPI経由でデータを取得するにはAPIKeyが必要となります。APIKeyの取得についてはこちらの記事をご参照ください。

https://www.cdatablog.jp/entry/saps4hanaapi

尚、接続方法は環境によって異なる場合があります。 詳細はこちらをご覧ください。

SAP S/4 HANA CloudのSales OrdersデータAPIのURL取得

SAP S/4 HANA CloudのSales OrdersデータへアクセスするAPIエンドポイントのURLを取得します。 SAP API Business Hubにアクセスし、トップ画面の[SAP S/4HANA Cloud]をクリックします。 検索フォームに「Sales Orders」と入力して検索ボタンをクリックし、検索結果から[Sales Orders (A2X)]をクリックします。

f:id:urabe_shintaro:20210318163235p:plain

[Details]タブを開くと、このAPIの詳細が表示されます。 この画面の[Sandbox URL]がSales OrdersのAPIエンドポイントのURLとなります。

f:id:urabe_shintaro:20210318163244p:plain

ここで取得したURLはこの後の接続設定で入力するため控えておいてください。

CData SAP Gateway JDBC Driverのインストール

続いてASTERIA Warpがインストールされている環境にCData SAP Gateway JDBC Driverをインストールします。 CData Software Japan社のCData SAP Gateway JDBC Driverダウンロードページにアクセスしてください。 ダウンロードページの[ダウンロード 評価版]をクリックすると必要事項入力画面が表示されます。

f:id:urabe_shintaro:20210318163300p:plain

必要事項を入力し、[ダウンロード]をクリックするとCData SAP Gateway JDBC Driver評価版のインストーラがダウンロードされます。 ダウンロードしたファイルをダブルクリックするとインストーラが起動しますので、ウィザードに従ってインストールしてください。

ドライバの配置

ASTERIA Warpへのドライバーファイルの配置方法はASTERIAヘルプをご参考ください。

ここでは手動でドライバファイルをASTERIA Warpの外部ドライバフォルダにコピーする手順を示します。

SQL Server JDBC Driverの配置

SQL ServerJDBCドライバを入手し、以下のASTERIA Warp外部ドライバフォルダに配置します。

C:\asteriahome5\system\lib\drivers

SAP Gateway JDBC Driverの配置

CDataドライバのインストールフォルダのlibフォルダ配下に以下のファイルがあることを確認してください。

例:C:\Program Files\CData\CData JDBC Driver for SAP Gateway 2020J\lib

  • cdata.jdbc.sapgateway.jar : ドライバファイル
  • cdata.jdbc.sapgateway.lic : ライセンスファイル

これらをSQL ServerJDBCドライバと同様にASTERIA Warpの外部ドライバフォルダにコピーします。

C:\asteriahome5\system\lib\drivers

ASTERIA Warp 接続の作成

それではASTERIA Warp上で接続の作成とフローの作成・実行を行います。

SAP Gateway接続の作成

画面左のコネクションペイン上にあるf:id:urabe_shintaro:20200330175535p:plainボタンをクリックすると、[コネクションの作成]ダイアログが表示されます。 [接続種別]に「RDB」を選択、[名前]に分かりやすい名前を設定し[OK]をクリックします。

f:id:urabe_shintaro:20210318163320p:plain

作成したコネクションをダブルクリックすると、画面右のインスペクタに接続プロパティが表示されます。 [データベースタイプ]に「Other」を選択し、[ドライバー]に先ほど配置したドライバファイル名「cdata.jdbc.sapgateway.jar」を入力します。 [URL]には以下の形式の接続文字列を設定します。

接続文字列:

jdbc:sapgateway:Url=<SAP S4 HANA APIエンドポイントのURL>;APIKey=<APIキー>;

今回は以下の接続文字列を設定しました。

接続文字列の例:

jdbc:sapgateway:Url=https://sandbox.api.sap.com/s4hanacloud/sap/opu/odata/sap/API_SALES_ORDER_SRV;APIKey=Wxwohk4jfnpLSA2CPUz1Lfax3XeO7G5p;

接続文字列の詳細はこちらをご覧ください。

f:id:urabe_shintaro:20210318163357p:plain

接続設定が完了したらコネクションペイン上で作成した接続を右クリックし、[接続テスト]をクリックします。 テスト結果に「成功」と表示されれば接続設定は完了です。

f:id:urabe_shintaro:20210318163336p:plain

SQL Server接続の作成

SQL Serverへの接続として、RDBのコネクションを新規作成します。 [データベースタイプ]に「SQLServer」、[ドライバ]に「com.microsoft.sqlserver.jdbc.SQLServerDriver」、 [URL][ユーザ名][パスワード]に接続先のSQL Serverの情報をそれぞれ入力してください。

f:id:urabe_shintaro:20210318163409p:plain

接続設定が完了したら先ほどと同様に接続テストを実行し、SQL Serverへの接続が成功することを確認してください。

ASTERIA Warp フローの作成

SAP S/4 HANAからSales Ordersのデータを読み取り、それをSQL Serverに登録する処理として以下のフローを作成しました。

f:id:urabe_shintaro:20210318163420p:plain

SAP S/4 HANAへのアクセスにはRDBGetコンポーネントSQL ServerへのアクセスにはRDBPutコンポーネントを使用しています。

RDBGet : SAP S/4 HANAからのデータ取得

RDBGetコンポーネントは先ほど作成したSAP S/4 HANAへのコネクションを使用します。 取得するデータ項目は連携シナリオの「連携データ項目」で挙げた項目です。 [SQL]にはこれらの項目を取得するSQL文を設定します。

SELECT SalesOrder, CreationDate, OverallDeliveryStatus, RequestedDeliveryDate, TotalNetAmount FROM SAPGateway.A_SalesOrder A

f:id:urabe_shintaro:20210318163440p:plain

RDBPut : SQL Serverへのデータ登録

RDBputコンポーネントは先ほど作成したSQL Serverへのコネクションを使用します。 今回はデータ登録のため[実行する操作]には「Insert」を選択します。 [テーブル名]には予め作成したデータ登録用のテーブル名を指定します。

f:id:urabe_shintaro:20210318163450p:plain

Mapper

最後にデータ項目のマッピングを設定します。 今回は取得したデータをそのままSQL Serverに送信するため、ここでは各項目を結合するだけです。

f:id:urabe_shintaro:20210318163504p:plain

動作確認

作成したフローを実行します。 実行ダイアログの[ステータス]に「正常終了」と表示されれば処理は成功です。

f:id:urabe_shintaro:20210318163518p:plain

フローの実行後SQL Serverのデータを確認すると、以下のようにSAP S/4 HANAのSales Ordersのデータが登録されていることが確認できました。

f:id:urabe_shintaro:20210318163527p:plain

おわりに

本記事ではASTERIA WarpでSAP S/4 HANAのデータをSQL Serverに登録する方法を紹介しました。 SAP S/4 HANAへの接続に使用したCData SAP Gateway JDBC Driverは30日間無料でお試しいただけます。 SAP S/4 HANAとのデータ連携をご検討の方はぜひお試しください。