はじめに
TROCCOでは、kintoneからデータを転送するだけでなく、kintoneにデータを転送するリバースETLとして利用することも可能です。kintoneへのデータ転送を試しましたので、試した内容をまとめてみました。
kintoneのアプリの準備
kintoneにデータの転送先となるアプリとして、以下のアプリを用意しました。アプリにはサブテーブルが含まれています。
| フィールド | フィールドコード | 備考 |
|---|---|---|
| 案件ID | case_id | 「必須項目にする」と「値の重複を禁止する」が有効 |
| 会社名 | company | |
| 案件名 | case | |
| 活動履歴 | activity | サブテーブル |
| 日付 | date | サブテーブル内のフィールド |
| 内容 | details | サブテーブル内のフィールド |
TROCCOからデータ転送する前のアプリの状態は、以下のようにレコードが何もない状態です。
TROCCOの設定
接続情報の作成
以下のドキュメントを参考に、kintoneの接続情報を作成します。
今回はログイン方法としてユーザーネームとパスワードでログインを使用します。
データ転送の設定
以下のドキュメントを参考に、kintoneへのデータ転送を設定していきます。
今回はGoogleスプレッドシートにデータを用意しましたので、Googleスプレッドシートからkintoneへのデータ転送の設定を作成します。
STEP1
STEP1の転送先kintoneの設定では、まずkintone接続情報を設定します。接続情報を設定すると、アプリIDには接続先から取得可能なアプリIDが一覧で表示されますので、対象のアプリIDを選択します。アプリIDは、kintoneで対象のアプリを開いた際のURL(例: cybozu.com/XXX/{id}/ )にて確認することができます。
転送モードは upsert を設定します。アップデートキーには、案件IDフィールドのフィールドコードとして case_id を設定します。
今回の転送先のアプリにはサブテーブルが存在するため、詳細設定のテーブル転送キーを設定します。テーブル転送キーには「ユニークな値で構成されたアプリ直下のフィールド」を設定する必要があるため、案件IDフィールドのフィールドコードとして case_id を設定します。
STEP2
STEP2のデータ設定のカラム定義では、カラム名に転送先のアプリのフィールドコードを設定します。
【サブテーブルについて】
サブテーブルは、カラム定義での指定は不要です。
【サブテーブル内のフィールドについて】
サブテーブル内のフィールドは、カラム名に <サブテーブルのフィールドコード>.<フィールドコード> のように設定します。今回はサブテーブルのフィールドコードが acitivity ですので、サブテーブル内のフィールドを指定する場合は activity.date のように設定しています。
出力オプションのカラム設定には、サブテーブルを含む各フィールドを追加し、カラム名、フィールドコードやデータ型などを設定します。カラム名とフィールドコードには、どちらもフィールドコードを設定します。
【サブテーブルについて】
出力オプションのカラム設定にはサブテーブルの追加が必要です。データ型にはSUBTABLEを指定します。テーブルの行をソートするカラムには、サブテーブル内のフィールドの中からソートに使用するフィールドのフィールドコードを指定します。
【サブテーブル内のフィールドについて】
サブテーブル内のフィールドは、カラム名に <サブテーブルのフィールドコード>.<フィールドコード> のように設定します。フィールドコードにはフィールドコードのみ指定し、サブテーブルの指定は不要です。
転送の設定が終わりましたら確認画面に進み、設定を保存します。
kintoneにデータを転送
Googleスプレッドシートには以下のデータを用意しています。
TROCCOでデータ転送を実行すると、転送先のkintoneのアプリにデータが挿入されました。
各レコードを確認すると、サブテーブルにもレコードが挿入されていることを確認できます。
サブテーブルへのデータ転送
ドキュメントには、サブテーブルへの転送について以下の制約が記載されています。転送設定のSTEP1の転送モードの設定はサブテーブルを除くレコードが対象となり、サブテーブルへのデータ転送は洗い替えとなるようです。
サブテーブルへの転送に関する制約
転送モードでupdateやupsertを選択していても、サブテーブルへのデータ転送は常に洗い替えとなります。
すなわち、既存のサブテーブルのレコードは、転送のたびに新しく転送されたデータに置き換わります。
(引用元:転送先 - kintone)
動作確認のため、同じアプリに別のデータを転送してみます。転送するデータとして以下のデータを用意しました。案件IDが103と101の新しいレコードを用意しています。
TROCCOでデータ転送を実行し、kintoneのアプリを確認します。案件IDが103のレコードが新しく作成されています。また、案件IDが102のレコードはそのまま残っています。
案件IDが101のレコードの詳細を確認すると、サブテーブルからは以前のレコードがなくなっており、先ほど転送したレコードのみ表示されました。
さいごに
TROCCOの転送先kintoneでデータ転送を試してみました。こちらの記事が何かの参考になりましたら幸いです。














