
kintoneを長く運用していると、何らかの理由で「同じような内容のアプリを新しく作り直したい」という場面があります。
フィールド構成を整理したい、運用が大きく変わったのでアプリを作り直したい、別の環境へ移行したいなど、理由はさまざまです。
そんなとき、通常のレコードデータであればCSVに書き出して、新しいアプリへ読み込むことで比較的簡単に移行できます。
ところが、ちょっと困るのが「レコードコメント」です。
レコードコメントには、担当者とのやり取りや承認・差し戻しの理由、対応経緯など、意外と重要な情報が残っています。
できれば新しいアプリでも過去のコメントを確認できるようにしておきたいところですが、通常のフィールドとは違い、CSVを読み込んで新しいアプリのコメント欄へそのまま移行することはできません。
では、レコードコメントはどうやって移行すればいいのでしょうか。
今回は、プログラムを使わず、kintoneの標準機能を使って過去のレコードコメントを新しいアプリから確認できるようにする方法をご紹介します。
レコードは移行できる。でもコメントは?
kintoneのアプリを作り直す場合、通常のレコードデータであればCSVを利用して移行できます。
旧アプリからデータを書き出し、新アプリのフィールド構成に合わせてCSVを調整して読み込む。
アプリの構成によって多少の調整は必要ですが、基本的にはこの方法で移行できます。
一方、レコードコメントは少し事情が違います。
コメントは通常のフィールドとして保存されているデータではないため、旧アプリからコメントをCSVに書き出すことはできても、そのCSVを新アプリへ読み込んで「レコードコメント」として復元することはできません。
「コメントもCSVに出せるなら、そのまま読み込めるのでは?」
と思ってしまうところですが、ここが通常のレコードデータとの大きな違いです。
REST APIなら移行できるけど……
もちろん、方法がまったくないわけではありません。
kintoneにはレコードコメントを投稿するREST APIが用意されているため、プログラムを作成して旧アプリのコメントを取得し、新アプリへ順番に登録していく方法も考えられます。
この方法であれば、新アプリのレコードコメント欄へコメントを登録することができます。
ただし、REST APIを利用する以上、プログラムの作成が必要になります。
移行するアプリが多かったり、コメントをそのまま復元する必要があったりする場合には有効ですが、「過去のコメントが確認できればいい」というケースでは、そこまでやらなくてもよいかもしれません。
そこで今回は、もう少し簡単にノーコードで対応してみます。
コメント専用アプリを作ってしまおう
今回使うのは、kintoneの「関連レコード一覧」です。
考え方はシンプルです。
旧アプリから書き出したレコードコメントを、新しく作成した「レコードコメントアプリ」へレコードとして登録します。
そして、新アプリに関連レコード一覧を設置して、そのコメントアプリを参照します。
つまり、「新アプリのコメント欄へ過去コメントを復元する」のではなく、「過去コメントを別アプリに保存して、新アプリから見えるようにする」という方法です。
この方法であれば、CSVの読み込みと関連レコード一覧というkintoneの標準機能だけで実現できます。

実際にやってみる
ここからは、実際の画面を見ながら設定の流れを確認していきます。
① 旧アプリからレコードコメントを書き出す
まずは、旧アプリからレコードコメントを書き出します。
レコード一覧画面から「ファイルに書き出す」を開きます。
書き出すフィールドは必要なものだけで構いませんが、今回重要なのが「レコード番号」です。
そして、画面下部にある「レコードコメントを出力する」にチェックを入れます。
これでCSVを書き出すと、レコードコメントの情報も出力されます。

② 出力されたコメントCSVを確認する
書き出されたレコードコメントのCSVを開いてみます。
コメントCSVには「レコード番号」「コメント番号」「投稿ユーザー」「投稿日時」「コメント内容」といった情報が出力されています。
ここで特に重要なのが「レコード番号」です。
この番号によって、「どのレコードに投稿されていたコメントなのか」を判別できます。
後ほど、このレコード番号を使って新アプリとコメントを紐づけます。

③ レコードコメントアプリを作成する
続いて、出力されたCSVを保存するための「レコードコメントアプリ」を作成します。
基本的には、先ほど出力したCSVの項目に合わせてフィールドを作成すればOKです。
例えば、「旧アプリレコード番号」「コメント番号」「投稿ユーザー」「投稿日時」「コメント内容」といったフィールドを用意します。
アプリを作成したら、先ほど書き出したコメントCSVを読み込みます。
これで、これまでレコードコメントとして保存されていた情報が、コメントアプリでは「1コメント=1レコード」として保存されます。

CSVを読み込むと、同じ旧アプリレコード番号に対して複数のコメントレコードが登録されます。
例えば、旧アプリのレコード番号「141」に3件のコメントがあれば、コメントアプリ側には「旧アプリレコード番号=141」のレコードが3件登録されるイメージです。
※CSVの列名が”レコード番号”のままで読み込むとレコード番号以外で選択できないため、変更したうえでCSVを読み込んでください。

ここが重要!旧アプリのレコード番号を残しておく
ここで、ひとつ重要なポイントがあります。
アプリを新しく作り直すと、新アプリではレコード番号が新しく採番されます。
例えば、旧アプリで「レコード番号:141」だったレコードが、新アプリでも「141」になるとは限りません。
そのため、旧アプリから新アプリへレコードを移行するときに、旧アプリのレコード番号を保存するためのフィールドを用意しておきます。
例えば、新アプリに「旧アプリレコード番号」というフィールドを作成し、旧アプリのレコード番号をそのまま移行しておきます。
新アプリ自体のレコード番号が変わっても、この値が残っていれば問題ありません。
この「旧アプリレコード番号」が、新アプリと過去コメントをつなぐキーになります。

④ 新アプリに関連レコード一覧を設置する
最後に、新アプリへ「関連レコード一覧」フィールドを設置します。
参照するアプリには、先ほど作成した「レコードコメントアプリ」を指定します。
表示するレコードの条件は、「新アプリの旧アプリレコード番号 = レコードコメントアプリの旧アプリレコード番号」とします。
これで、新アプリのレコードを開いたときに、そのレコードに紐づく過去のコメントだけを関連レコード一覧へ表示できます。
表示項目には、投稿ユーザー、投稿日時、コメント内容などを設定しておけば、旧アプリでどのようなやり取りが行われていたのかを確認できます。

設定が完了すると、新アプリのレコード詳細画面から過去のコメントを確認できるようになります。
新しいレコード番号とは関係なく、保持しておいた「旧アプリレコード番号」を使って、そのレコードに紐づくコメントだけが表示されます。

この方法は「コメントそのものを移行」しているわけではない

注意したいのは、この方法では新アプリのレコードコメント欄へ過去コメントを復元しているわけではないという点です。
あくまで過去のコメントを別アプリへ保存し、関連レコード一覧を使って参照できるようにしています。
そのため、新アプリでは「移行前のコメント=関連レコード一覧」「移行後のコメント=通常のレコードコメント」という形になります。
過去コメントを新アプリのコメント欄へ登録したい場合は、REST APIなどを利用した移行処理を検討する必要があります。
一方、「過去のやり取りを確認できれば十分」という用途であれば、今回の方法ならJavaScriptやREST APIを使わず、kintoneの標準機能だけで対応できます。
移行作業の規模や、過去コメントをどのように利用したいのかによって使い分けるのがよさそうです。
まとめ
kintoneのアプリを作り直すとき、通常のレコードデータはCSVで比較的簡単に移行できますが、意外と困るのがレコードコメントです。
REST APIを使って新しいアプリのコメント欄へ登録する方法もありますが、「過去のコメントを確認できればいい」ということであれば、コメント専用アプリ+関連レコード一覧という方法も選択肢になります。
今回のポイントは、
・旧アプリからレコードコメントをCSV出力する
・コメント専用アプリへCSVを読み込む
・新アプリに「旧アプリレコード番号」を残しておく
・関連レコード一覧で旧アプリレコード番号同士を紐づける
という4点です。
特に「旧アプリレコード番号」を残しておくことが重要です。
アプリを作り直すと新しいレコード番号が採番されますが、旧アプリのレコード番号さえ保持しておけば、それをキーとして過去のコメントと紐づけることができます。
「コメントのためだけにプログラムを書くのはちょっと……」
という場合には、こんな方法で過去のコメントを残してみてはいかがでしょうか。
さいごに
弊社では、要件整理・アプリ設計・JavaScript/プラグイン開発・テスト/検証支援・運用ルール整備まで、kintone活用に関わるさまざまな工程をご支援しています。
「どこから相談したらよいかわからない」「社内だけで進めるのが難しい」といった段階でも構いませんので、ぜひお気軽にご相談ください。









