こんにちは。CData リードエンジニアの杉本です。
今日はリリースされたばかりのCData Smaregi Driverとノーコーディングのデータ統合ツールArcESBを使ってECや他システムから出力された想定のCSVを元にスマレジの在庫を更新する機能を作ってみたいと思います。
ArcESB とは?
ArcESB はノーコードでETL/EAIなどのデータ連携やEDIなどの企業間での各種取引情報連携を実現できるWebアプリケーションです。
今回はこのArcESB と CData Smaregi ADO.NET Providerを組み合わせて、在庫連携を行います。
この記事で実現するシナリオ
前述の通り、本記事では以下のようなFTPサーバーにアップされているCSVからデータを取得し、スマレジの在庫情報を自動的に更新することを想定します。
必要なもの
以下の製品のインストールが必要になります。すべて30日間のトライアルが提供されていますので、是非試してみてください。
事前準備
まず使用する製品をそれぞれインストールします。以下のページから、ArcESBの本体を入手できます。必要に応じて、Windows、Java/Linux、Cloud Hostedのバージョンから選択してください。なお、本記事ではWindowsベースで進めます。
https://www.arcesb.com/download/
インストールはそのままダイアログに従って進めれば大丈夫です。難しいところは特にありませんが、ログインする際のパスワード入力を求められる場所がありますので、忘れてしまわないように注意しましょう。
またArcESBには スマレジ の接続用ライブラリが含まれていませんので、個別で CData のサイトから入手し、インストールします。
https://www.cdata.com/jp/drivers/smaregi/ado/
スマレジAPI:契約IDとアクセストークンの入手方法
スマレジ 接続にはAPI接続用の契約IDとアクセストークンが別途必要となります。以下の手順に従って、それぞれの情報を取得できます。
連携元の FTPサーバー
今回のシナリオでは、クラウド上に用意したFTPサーバーに売上データ想定のCSVファイルを配置しました。
CSVファイルには店舗情報や商品ID、売上数量が入っており、これをスマレジに連携します。
ArcESB にログイン
それでは、実際にArcESBを使って連携処理を開発していきます。
ArcESBが起動すると、以下のようにログイン画面が表示されるので、UserName:adminとインストール時に入力したパスワードを使って、ログインします。
ログイン後、「About」へ移動し、トライアルライセンスをアクティベーションします。以下はすでにアクティベーション済みの画面です。
ArcESBは「Flows」からデータ連携のデザイナー画面へ移動できます。
FTP Connector の構成
Flows デザイナー画面に移動したら、それぞれのデータ処理コネクターを配置していきます。
まずFTPサーバーからCSVを取得するための FTP Connector を構成しましょう。
左側のConnection一覧から「FTP」を選択し、キャンパスに配置します。
任意のConnector Id を入力し「+Create Connector」をクリックします。
FTPサーバーに接続するための情報「Remte Host」「User Name」「Password」を指定し
CSVファイルがアップロードされているパスをDownloadの「Remote Path」に指定すればFTPの構成は完了です。
スマレジ Connector の構成
次に、スマレジの接続を構成しましょう。左側のConnection一覧から「Cloud Data」を選択し、キャンパスに配置します。
任意のConnector Id(ここでは Smaregiとしました)を入力し「+Create Connector」をクリックします。
Connector作成後、設定画面が出てくるので、DataSourceの一覧から「CData Smaregi」を選択、「Access Token」と「Contract Id」を入力し、Save Changesをクリックして保存します。
次に更新したいテーブルを選択するために、MappingsのInputから「+」ボタンをクリックします。
Smaregi Connectorで使用できるテーブル一覧が出てくるので在庫データを取得できる「Stock」を選択します。
次の画面に移動すると、入力するための項目情報が一覧で表示されます。ここはデフォルトのままでかまわないので、そのままCreateをクリックします。
CSV Map の作成
続いて、CSVデータと Smaregi の項目を紐付けるための Mapping Connectorを配置します。
左の一覧から「CSV Map」を選択し、キャンパスに配置します。
任意のConnector Idを入力し「+Create Connector」をクリックします。
Connector構成後、まずそれぞれのInputとOutputを紐付けます。以下のようにドラッグアンドドロップで、事前に作成した FTP と Smaregi Connectorと紐付けて、画面右下にある保存ボタンをクリックすればそのままOKです。
次に、Mapの設定画面を開きます。接続が正常に構成されていれば、Destination Fileが以下の様に入力されているはずです。合わせてSource Fileには取得される想定のCSVファイルを指定します。
画面下で各項目のマッピングを行う領域が表示されているので、ここで項目を以下のように紐付けます。
合わせて在庫の更新区分であるStocDivisionに売上として「02」の固定値を指定します。
紐付け後、保存をすれば、設定完了です。
実行設定
最後にデータ連携の実行間隔を設定します。実行間隔の設定は、データ取得元である Connector の詳細画面から「Automation」タブで設定します。
Receiveのチェックボックスにチェックを入れて、IntervalとTimeを指定しましょう。
実行方法
それでは構成したフローを実行してみます。
タイマー起動ではない、手動での実行は「Output」の「Receive」ボタンをクリックすることで可能です。
「Receive」ボタンをクリックすると、FTPからCSVデータが取得され、以下のようにArcESBにロードされたことがわかります。
最終的な処理結果は Smaregi Connector のInputタブから確認できます。ここで処理結果がSentになっていれば、スマレジ側に正常に処理が行われたことになります。
おわりに
このように、ArcESBとSmaregi ADO.NET Providerを活用することで、FTP・CSVデータの連携処理を簡単に構築することができました。
CDataでは Smaregi 以外にも、SalesforceやDynamics 365といった様々な ADO.NET Providerを提供しています。是非任意のツール・サービスに接続するために試してもらえればと思います。