はじめに

XplentyのIntegrationページにはIntegration対象のアプリケーションとして掲載されてないのですが、Rest APIをサポートしている製品であれば、Xplentyからデータをつなげるものが数多くあります。ということで、今回はCybozu社が提供するkintoneについて、開発環境をお借りし、Rest APIでコネクトしデータを取得してみました。

API Tokenの生成

まずはkintone側で取得したい対象のアプリのAPI トークンを生成します。

undefined

kintoneに接続する際のヒント

ヒント1:列名について

kintone側では、あらかじめ「フィールドコード」の部分を英語に変更しておくと、Xplenty側で日本語の抽象的な列名で出力された列名を英語に変更する手間が省けます。

Kintone_setting.png

ヒント2:取得条件は多彩なクエリパラメータで指定可能

今回の例では、クエリパラメータでアプリを指定した簡単なものですが、以下のページで紹介されているクエリパラメータを利用すれば、日時による条件指定など特定の条件にマッチするデータを取得することが可能です。

https://developer.cybozu.io/hc/ja/articles/202331474#q1 

Xplentyでパッケージ(ジョブ)を作成する

Xplenty側ではRest APIコンポーネントを選択し、URLを入力し、ヘッダ情報にKeyに「X-Cyboze-API-Token」と先ほど生成したAPIトークンを設定画面で入力すればOKです。undefined

設定項目を入力したら、実際にプレビューでデータが取得できたのが確認します。(今回の例では、案件管理のサンプルデータを取得しています。)

undefined

取得したJSONデータの加工処理

あとはJSONを加工するだけです。

処理1:Selectコンポーネント1

まず1回目の処理で取得したJSONデータについてシンプルな部分の加工が終わりました。

Kintone_tr1.png

 

処理2:Selectコンポーネント2

通常であれば、これで終了なのですが、今回取得する案件データには、各案件ごとに営業担当者の活動履歴が存在します。1つの案件に対して複数の訪問や電話の履歴が記録されているので、そのデータも取得するには、さらに2つの工程を経てデータを抽出する必要があります。まず案件に紐づく活動履歴が数件あるので、1案件1レコードのデータを活動履歴の数ごとに行を分割して持つようにします。

Kintone_tr2.png

 

処理3:Selectコンポーネント3
さらに活動ごとに行が分かれた活動履歴の列には、その中に「活動日」や「どういった活動をしたか」と言った内容の値が含まれているので、それぞれのデータから必要なデータ項目を取得します。

Kintone_tr3.png


出力先を指定して完成:

これで完成です。最終的なジョブの構造はこんな感じです。REST APIでkintoneに接続し、データを取得後、3つの加工Stepを経て、S3に保存しています。(もちろんRedshit、Google Bigquery、Snowflakeなどにも出力可能です。) 

 Kintone_tr4.png

ジョブを実行してデータ確認

実際に実行したデータを見てみましょう。

狙い通り、1つの案件レコードに4件の活動履歴がある場合、4行に分けて出力できています。あとは、スケジュールで毎日パッケージを実行するよう設定するだけです。

Kintone_prvi1.png

ちなみに、もしStep2と3を実行せずに結果を出力した場合は、以下のようなデータが出力されます。

Kintone_prv2.png

最後に

Xplentyで操作感を試されたい場合は、無料トライアルを体験できます。

Xplentyを無料で試してみよう!

また、製品のデモに興味のある方は、以下のサイトより申し込みください。(予約サイトは英語ですが、日本語でデモします)

Xplentyのデモ紹介に登録して、無料でプラットフォームを試してみよう!