ODataとは?
こちらのブログに詳細が分かりやすくまとまってますので、こちらを参照ください。 https://qiita.com/tami/items/411a226d1ea6bb25b5f1SAP API Business Hubでリクエストに必要な情報を取得する
今回はSandboxにあるSales OrderのODataサービスに接続します まず、SAP API Business Hubにアクセスします。 1.条件を指定し、Sales Order (A2X)を選択します。(同期 OData API)


XplentyでSAP HANA CloudにOData経由で接続しデータを取得する
1. Xplenty データソース接続
1.パッケージ作成画面で「REST API」コンポーネントを選択する。





Xplenty データ加工
1.JSONデータの一部でデータの加工が必要なため、Selectコンポーネントで加工を行う。 変換処理その1:日時データの変換 取得されたJSONをみると日付データが以下のように取得されます。

REGEX_EXTRACT('/Date(1467981296000)/','([0-9]+)',1)
上記の式をもとに日時フィールドを変換する
例)時間はUTCから日本時間(+9時間)に変更
AddDuration(ToDate('1970-01-01T00:00:00.000Z'),CONCAT('PT',((chararray)((long)REGEX_EXTRACT(CreationDate,'([0-9]+)',1)/1000+(9*60*60))),'s'))

ToDate:DateTime型へ変換
(long):long型への変換 >>注意:ここでDouble型を指定した場合は、Round関数を使用し少数点のけた数を3桁までに調整する必要がある)
(chararray):文字列型への変換
/1000:AddDuration関数が秒単位でしか加算できないため(ただし、0.003のように小数点でミリ秒を表現することは可能です)、ミリ秒の単位の数値を秒単位に変換
9*60*60:9時間を秒数に変換
CASE文使用時の注意点
CASE文を使用する場合、必ずELSE条件も明記する必要がある
変換処理その2: ネストされたJSONから必要な値を抽出

JsonStringToMap関数を使用し、Selectコンポーネントで変換する。
例)JsonStringToMap(to_Item#'__deferred')#'uri'

Xplenty データロード先の設定およびジョブ実行
1.ロード先のデータベースを指定 データベースコンポーネントをDestinationに配置し、ロード先として設定します。
