こんにちは、黒坂です!
みなさん、krewDataは活用してますか?
krewDataは複数のkintoneアプリのデータを集計・加工し、新しいレコードを作成したり、既存アプリのデータを更新することができるプラグインです。
今回は、最近krewDataを設定していてつまずいてしまった「テーブルの再生成」について、サクッとブログを書いていこうかなと思います。
弊社では初回開発無料の定額39万円でkintoneアプリを開発する定額型開発サービス「システム39」を提供しております。kintoneの導入やアプリ開発でお困りの方は、お気軽にご相談ください。
*Webでの打ち合わせも可能です。
別アプリのレコードの値でテーブルを再生成する
今回はデモとして「受注管理アプリ」と「発送チェックリストアプリ」を使います。
- 受注管理アプリ
1レコード1受注内容、注文商品をテーブルで管理しているアプリです。
テーブルでは、商品の個数や各商品に対するメモを管理しています。
- 発送チェックリストアプリ
受注管理アプリのテーブルをレコードに展開し、1レコード1商品で管理しているアプリです。
発送は受注内容ではなく商品ごとの管理になるため、1商品ごとの管理をしています。

今回は、発送チェックリストアプリの「積み込みチェック」にチェックがついたら、受注管理アプリの該当テーブル行の「積み込みチェック」にチェックを返すという処理を行います。

krewDataを設定してみる
まずはシンプルに「発送チェックリストアプリの編集をきっかけにテーブルを作成して、受注管理アプリのテーブルを再生成する」というフローを作成してみます。

実際にkrewDataを実行してみると・・・
メモが消えてしまった!!

「積み込みチェック」にチェックはつきましたが、元々あった「メモ」の値が消えてしまいました!
消えてしまった原因はテーブル展開の際に、「メモ」を発送チェックリストアプリに連携していなかったため、テーブルを再生成したときに空でデータが作られてしまったからです。
一見バラしたデータを元のテーブルの形に戻せば再生成ができそうですが、このように連携してないデータがある場合はそううまくはいきません。
解決策
「テーブル再生成をしたら、データが消えちゃった!」とならないためには、krewDataで受注管理アプリの「メモ」を取得して、発送チェックリストアプリのデータと結合してから、テーブルを作成します。
それでは早速設定してみましょう!
まずは受注管理アプリから、発送チェックリストアプリで管理していない「メモ」と結合のキーとして必要な「商品名」を取得します。

あとは、取得した受注管理アプリのデータと発注チェックリストアプリの「積み込みチェック」を含む、テーブル作成に必要なデータをアプリ結合し、テーブル作成を行います。

フローを実行すると、無事メモを残して、積み込みチェックをつけることができました。

おまけ
今回の処理は、ルックアップのコピー元のフィールドに設定されている「商品名」が重複禁止設定になっていないと、処理中にエラーが起きてしまいます。
これは、テーブル再生成に限らず、ルックアップの取得をkrewDataやCSVで行うときは必ず重複禁止にする必要があります。

詳しくはkintoneヘルプ「ルックアップフィールドにファイルから値を読み込むことはできますか?」をご参照ください。
まとめ
今回は、krewDataでのテーブル再生成についてブログを書いてみました。
テーブルの再生成をするときは、元のアプリのテーブルからデータを取得して更新したいデータと結合してから、テーブルを作成するというのがポイントです!
ちなみに今回はテーブルの「再生成」についてでしたが、テーブルの「更新」を行うと、変更したい箇所だけ更新を行い、元あるデータも残すことはできます。
ただし、更新を行うためには、テーブル1行1行に対して、更新のキーが必要となります。
皆さんが使用しているテーブルにはキーはありますでしょうか?
気にしてみると意外とテーブルにはキーを持たせていないという場合も多いです。
「テーブルにもキーを持たせたいけど、手作業は難しい…」とお困りの方は、ぜひ弊社の自動採番プラグインもチェックしてみてくださいね!
弊社では初回開発無料の定額39万円でkintoneアプリを開発する定額型開発サービス「システム39」を提供しております。kintoneの導入やアプリ開発でお困りの方は、お気軽にご相談ください。
*Webでの打ち合わせも可能です。