kintone データ生成プラグインで複数アプリデータを収集

kintoneで複数アプリに異なるレコード形式でデータを持っている場合に、データ生成プラグインを使って、１アプリにデータを収集してみます。

# 処理概要

kintone ストアにあるリサイクル資源回収票をベースに、データの集計を行ってみます。
部門Aと部門Bが異なる種類の資源回収を行っていて、アプリのレコード形式も異なっています。
これを集計アプリに、データをまとめてみます。


![図1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/ef4bc0ec-24bd-f6ac-2cf2-c3900aee1140.png)

部門A、Bの集計グラフ
<img width="833" alt="2020-03-23_00h13_25.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/82800780-b812-6e61-16b9-c145e96513c2.png">

# データ生成プラグインについて

[kintone データ生成プラグイン](https://qiita.com/rex0220/items/8e760adbfd69b9416b2d)

# アプリ構成

- 部門A,B　リサイクル資源回収票アプリ
    - 資源毎に数値項目を持っている

<img width="807" alt="2020-03-22_22h55_38.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/cb1ed3d7-4019-148e-fbbb-614235534084.png">

- リサイクル資源回収票集計アプリ
    - 資源の区分と一つの数値項目
    - 部門項目

<img width="395" alt="2020-03-22_22h59_52.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/afcc0bd3-816b-4ecb-75d0-8320cbb34102.png">


# データ生成プラグインの設定

部門A,B　リサイクル資源回収票アプリに、それぞれデータ生成プラグインの設定を行います。

![図2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/0467c456-4d4b-3cad-aaa7-6184b601ddd2.png)


## 部門A リサイクル資源回収票アプリ

- 処理名：　処理の概要をメモ
- アプリ：　出力先アプリ　リサイクル資源回収票集計アプリ
- 対象アプリ条件：　関連するキー項目を設定
- ループ：　１
- テーブル：　なし
- 設定項目：　出力対象項目を指定

<img width="718" alt="2020-03-22_23h12_57.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/6df919c7-9092-a00f-a6a3-08211192d9a4.png">


### 対象アプリ条件

元レコードと関連づけできるように、項目を指定

- 回収依頼者名
- 回収業者名
- 資源回収日
- 部門：　"A"

<img width="622" alt="2020-03-22_23h17_42.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/b2ad70fd-a950-7c8b-4842-7c64296a55ba.png">


### 設定項目
「自動設定」をクリックすると、フィールドコードとタイプが一致する項目の計算式を設定してくれます。

- ループ配列：　A部門で扱う資源の種類を配列で指定します。<br>
ARRAY("新聞","チラシ","段ボール","雑誌","スチール缶","アルミ缶","空きびん","その他")
- 出力条件：　数値が資源の項目のみ出力<br>
SWITCH($val,"新聞",新聞,"チラシ",チラシ,"段ボール",段ボール,"雑誌",雑誌,"スチール缶",スチール缶,"アルミ缶",アルミ缶,"空きびん",空きびん,"その他",その他,0)>0
- 区分：　$val　は、ループ配列で指定した値が、順番に設定されてきます。

<img width="643" alt="2020-03-22_23h21_39.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/ca311f4d-f831-2dbb-a9d9-e7f64159eb71.png">

- 数量：　$val　の資源の種類に合わせて、各資源の数値を設定<br>
SWITCH($val,
"新聞",新聞,
"チラシ",チラシ,
"段ボール",段ボール,
"雑誌",雑誌,
"スチール缶",スチール缶,
"アルミ缶",アルミ缶,
"空きびん",空きびん,
"その他",その他,0)
- 部門：　"A"
- 識別ID：　「識別ID」をチェック
<img width="637" alt="2020-03-22_23h31_51.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/b8c4408d-73da-8bd0-b07f-b3639d13caaa.png">


## 部門B リサイクル資源回収票アプリ

基本的な設定は、部門Aと同様です。
部門Aのプラグイン設定をダウンロードして、部門B のアプリアップロードすると、変更だけで済みます。

- 部門を"A" から "B" に変更
- ループ配列と数量の設定を、部門Bが取り扱う「ペットボトル等」に変更

<img width="716" alt="2020-03-22_23h40_38.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/b19889bc-ffb0-d16e-9df7-e74ffd97d86d.png">


# 一括データ生成

既存レコードについては、一覧画面で「一括データ生成」を行います。
部門A,B それぞれで「一括データ生成」が必要です。

<img width="845" alt="2020-03-22_23h49_13.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/c1407ac9-6653-0a0f-2e84-3d714aa9ccd2.png">


# リサイクル資源回収票アプリのレコード追加・更新時の自動反映

データ生成プラグイン設定後は、レコード追加・更新時に自動反映されます。

<img width="1158" alt="2020-03-22_23h58_51.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/7402f819-0b8e-16e5-7145-738cd8a0af90.png">