こんにちは。CData Software Japan の色川です。
先日、SAP が提供する購買・支出管理サービスであるSAP Ariba のデータ連携を拡張する「CData Drivers for SAP Ariba Source」および「CData Drivers for SAP Ariba Procurement」がリリースされました。
こちらの記事でご紹介したように、SAP Ariba 向けのCData Drivers を利用することで、CData Arc からSAP Ariba とのデータ連携自動化(オートメーション)をノーコードで実現することができます。
現在SAP Ariba では数多くのWeb API が提供されており、SAP Ariba 向けのCData Drivers ではそれらの多くに対応しています。SAP Ariba 向けのCData Drivers を利用することで、調達・購買データのリアルタイムでの取得・分析など、SAP Ariba とのデータ連携をシンプルに実現できるようになります。
従来からAriba を利用されていた方の中には、Ariba とのデータ連携にAriba のIntegration Toolkit(以下、ITK)を利用されていた方も多いかも知れません。Ariba のITK は、Buyer 管理者向けに提供されていた「Ariba のデータを他のバックエンドシステムと統合するためのツールおよびツールキット」ですが、比較的最近にEOS(End of Support)となっています。
SAP Ariba 向けのCData Drivers に関心を頂いた方の中には、ITK での連携を前提にしていた構成から段階的にCData Drivers を通じたSAP Ariba API への連携にシフトしていきたい、と考えている方もおられるかも知れません。ITK に含まれていたデータ転送ツール(SAP Ariba data transfer tool)では、Ariba へのリクエストを比較的シンプルなform ベースのHTTP リクエストで実現していましたので、Arc でそれと近しい連携アプローチが実現できれば、Ariba との連携構成を段階的にシフトしていく際にも便利そうです。
そこで、この記事ではITK に含まれていたデータ転送ツール(data transfer tool)に類似の連携アプローチとして「CData Arc で、SAP Ariba のData Import/Export タスクをリクエストする」シナリオを試してみます。より具体的には「Ariba のExport Purchase Orders タスクを実行して取得したzip に含まれるCSV データをSQL Server に自動連携」するフローを作成します。
SAP Ariba
SAP Ariba はSAP 社が提供する支出管理(Spend Management)の分野におけるリーダー的な存在のソフトウェアです。SAP Ariba はクラウド型の電子調達・購買サービスで、バイヤー(購買する企業)とサプライヤー(供給する企業)は、世界最大規模の企業間電子商取引(B2B)ネットワークである「SAP Business Network」を通じて、見積・発注・検収・請求などの購買プロセスを実施します。
SAP Ariba は、すべての間接材・すべての購買プロセスをカバーしていますが、他にもサプライヤーや契約の管理に特化した機能や、直接材をカバーするソリューションも提供しています。
SAP Ariba のIntegration Toolkit
SAP Ariba のIntegration Toolkit(ITK)は、Buyer 管理者向けに提供されていた「Ariba のデータをERP などのバックエンドシステムと統合するためのツールおよびツールキット」です。
Ariba のITK では、CSV ファイルを介して、Ariba のデータをERP などのバックエンドシステムと統合することが可能でした。Ariba のITK は大きく2つのツールで構成されていました。
SAP Ariba data transfer tool *1 |
Ariba とバックエンドシステムなどとの間でバッチ型のCSV ファイル連携をサポートするツール |
DB Connector *2 |
JDBC でバックエンドシステムのデータベースからのデータ抽出やCSV 保存、バックエンドシステムへの更新などをサポートするツール |
Buyer 側ではITK を利用してデータ連携を実現していたケースが多いかと思いますが、ITK は近年EOS(End of Support)となっています。SAP ERP や他のSAP アプリケーションとのデータ連携の場合は後継となる選択肢も分かりやすいかも知れませんが、SAP 以外のERP やビジネスアプリケーションとの連携では未だ後継を決めかねているケースもあるかも知れません。
CData Arc
CData Arc は、CData 製品の中で「自動化/Automate」を担うデータ連携ツールです。「B2B 連携をもっとシンプルに」をコンセプトに、ファイル連携 & DB 連携 & API 連携といったB2B 連携に必要なすべてをノーコード・ローコードでつなぐことができるプラットフォームです。
この記事のシナリオ
この記事では、Arc から「SAP Ariba のData Export タスクのうち"Export Purchase Orders" の実行をリクエストして、レスポンスに含まれるzip ファイルを解凍し、解凍した中に含まれる各種のPurchase Order データを取得・マッピングして、バックエンドシステムをイメージしたSQL Server へと連携」します。
ITK に含まれていたデータ転送ツール(data transfer tool)と同じように、curl などを利用して「Export Purchase Orders」タスクを対象に、form ベースのHTTP POST リクエストを発行すると、Purchase Order に関連した複数のCSV ファイルを含んだzip ファイルがレスポンスとして取得されます。(この記事では特に期間指定等はせず実行しています)
それぞれのCSV ファイルを見てみると、1行目にはファイルのエンコーディングが明記され、2行目に各カラムのヘッダー、3行目以降にエクスポートされたデータが構成されているのが分かります。
こちらの記事でご紹介したように、SAP Ariba 向けのCData Drivers と組み合わせて利用することで、CData Arc からSAP Ariba とのデータ連携自動化(オートメーション)をノーコードで実現することができますが、この記事では、Ariba との通信部分にはREST コネクタを利用します。Arc のREST コネクタを利用して、ITK に含まれていたデータ転送ツール(data transfer tool)*1 と同じように、form ベースのHTTP POST リクエストを実行し、CSV ファイルが含まれるzip 形式のレスポンスを取得します。その後は「Zip コネクタを利用した解凍」「Script コネクタでのCSV 形式の調整」「Branch コネクタでの判断や分岐」「CSV コネクタでのXML 変換」などを経て、Arc のフローではおなじみの「XMLMap コネクタのマッピング」「SQL Server へのUpsert」と続きます。
ITK に含まれていたDB Connector *2 では、Oracle、SQL Server、DB2 への連携がサポートされていたかと思いますが、Arc であればSaaS やDB など270 を超えるデータソースへの連携が可能です。
なお、この記事はSAP Ariba integration toolkit guide で紹介されている「Replacing the SAP Ariba data transfer tool with your own tool」の内容等を参考にしています。Data Import/Export タスクの詳細などAriba 側で必要な設定等についてはSAP Ariba のドキュメントをご確認ください。
Ariba のExport Purchase Orders タスクを実行して取得したzip に含まれるCSV データをSQL Server に自動連携
ワークスペースの準備ができたら、シナリオを実現するフローを作成していきます。
このシナリオで作成する連携フローは以下のような流れになっています。
|
コネクタ |
内容 |
1 |
REST |
SAP Ariba のExport Purchase Orders タスクをリクエストしてzip 形式のレスポンスを取得 |
2 |
Zip |
1 のレスポンスを解凍 |
3 |
Script |
2 で解凍したCSV ファイルのフォーマットを調整(1行目をカット) |
4 |
Branch |
2 に複数含まれるCSV ファイルを名称で判断・分岐 |
5 |
CSV |
(分岐毎に)4 のCSV ファイルをXML 形式に変換 |
6 |
XMLMap |
(分岐毎に)5 と7 をマッピング |
7 |
SQL Server |
(分岐毎に)SQL Server へUpsert(更新) |
REST コネクタ
最初に「SAP Ariba のExport Purchase Orders タスクをリクエストしてzip 形式のレスポンスを取得」するREST コネクタを設定します。この連携フローのはじまり(起点)でありポイントとなるコネクタです。コネクタは右上の「+追加」から選択や検索をして追加することができます。またフローキャンバス上での右クリックなどからも追加することができます。
次に「メソッド&URL」で、メソッドは「POST」に設定し、URL を下記のように指定します。realm はそれぞれの環境にあわせて指定してください。
「ボディの種類」を「form-data」に構成し、認証に必要な「sharedsecret」、実行対象として「event」に「Export Purchase Orders」を指定します。
アウトプットタブの「受信」で、zip 形式のレスポンスが取得できることを確認します。
ダウンロードして確認してみると、想定通り、Purchase Order に関する3種のCSV ファイルが含まれていることが確認できます。
Zip コネクタ
次に「レスポンスで得たzip ファイルを解凍」するZip コネクタを設定します。
オペレーションを「解凍」にしたら、あとはデフォルトの構成でOK です。
Script コネクタ
次に「解凍したCSV ファイルのフォーマットを調整」するためにScript コネクタを利用します。先ほど確認したように、取得されるCSV ファイルの1行目にはファイルのエンコーディングが明記されていますが、このシナリオでは不要です。少し変わったシナリオですが、こういう時もArcScript を利用すればシンプルに調整ができます。
この記事では、fileReadLine オペレーションを利用してCSV ファイルを行単位に読み込んで1行目をカット(2行目以降を出力)するようにしました。
Branch コネクタ
複数含まれているCSV ファイルはそれぞれフォーマットが異なりますので、Branch コネクタを利用して「CSV ファイルを名称で判断・分岐」します。
ここまで進めば、あとはそれぞれの分岐で「CSV ファイルからSQL Server オブジェクトへの連携」です。以降は「典型的なマッピングと連携」になりますので、概要のみ記載しています。「典型的なマッピングと連携」について詳しく知りたい方は、こちらの記事などを参考にしてください。
CSV コネクタ
それぞれの分岐毎に、先ほどフォーマットを調整済みの「CSV ファイルをXML 形式に変換」するCSV コネクタを設定します。
それぞれ処理するCSV ファイルにはカラムヘッダーが存在しますので「カラムヘッダーが存在します」を有効にしておきます。
XMLMap コネクタでのマッピング時にスキーマが選択できるように、インプットタブの「テストファイルをアップロード」から、それぞれ処理するレイアウトのCSV ファイルをアップロードしてスキーマ情報を生成しておきます。
SQL Server コネクタ
XMLMap コネクタでのマッピングの前に、マッピングの宛先側となる「SQL Server コネクタへUpsert」するSQL Server コネクタを設定します。
アクションに「Upsert」を選択したら、テーブルの「+追加」で更新対象のオブジェクトを選択して構成します。
XML Map コネクタ
最後に「CSV ファイル(を変換したXML 形式のデータ)と、SQL Server をマッピング」するXMLMap コネクタを設定します。
この記事では特に編集・加工は施さず、同名カラムをシンプルにマッピングしています。
他の分岐も同様に設定して「Ariba のExport Purchase Orders タスクを実行して取得したzip に含まれるCSV データをSQL Server に自動連携」するフローが完成しました。
フローの実行
作成したフローを実行して確認してみましょう。起点となるREST コネクタからフローを実行してみます。「トリガー開始」から「手動で受信」を実行します。これは起点となるREST コネクタのアウトプットタブから「受信」を実行することと同様です。
トランザクションのメッセージビューアで、作成したフローの一連の実行状況が確認できます。
SQL Server の対象オブジェクトに連携されていることが確認できました。
まとめ
この記事では、ITK に含まれていたデータ転送ツール(data transfer tool)に相当する連携アプローチとして「CData Arc で、SAP Ariba のData Import/Export タスクをリクエストする」シナリオを試してみました。
先日リリースされたSAP Ariba 向けのCData Drivers を利用することで、CData Arc からSAP Ariba のWeb API を通じたデータ連携をノーコードで実現することができますが、SAP Ariba 向けのCData Drivers に関心を頂いた方の中には、ITK での連携を前提にしていた構成から段階的にCData Drivers を通じたSAP Ariba API への連携にシフトしていきたい、と考えている方もおられるかも知れません。この記事で試した連携アプローチがこれまでに実施していた連携にフィットすれば、Ariba との連携構成を段階的にシフトしていきたいという場合にも良い選択肢になるかも知れません。
CData Arc はシンプルで拡張性の高いコアフレームワークに、豊富なMFT・EDI・エンタープライズコネクタを備えたパワフルな製品です。CData Drivers との組み合わせで270を超えるアプリケーションへの連携を実現できます。
皆さんのつなぎたいシナリオでぜひ CData Arc を試してみてください。
CData Arc - セキュアなデータ連携とマネージドファイル転送(MFT)
製品を試していただく中で何かご不明な点があれば、テクニカルサポートへお気軽にお問い合わせください。
CData Software Japan - Support Form
この記事では CData Arc™ 2024 - 24.1.8910.0 を利用しています。
関連コンテンツ