ども、@kimihom です。
今回はたまったま kintone で試行錯誤した経験をしたのでログとして残しておく。
kiintone における関連の表現
"顧客には複数の問い合わせ履歴がある" みたいな時に、"顧客リスト" アプリのなかに複数の問い合わせ履歴をどうやって表現するのか問題ってのがある。
この場合、kintone ではおそらく2つの方法が掲示されている。
- アプリ内の複数項目をテーブル化する
- 別アプリとして切り出して関連レコードとして表現
それぞれについて簡単にまずは説明する。
アプリ内の複数項目をテーブル化する
前者は複数項目を"顧客リスト" アプリの中に埋め込む方法だ。1行にそれぞれテキストなどを配置して、行の一番右の設定をクリックすると・・・
テーブル化するってボタンが出てくるので、これを選択する。
こうすると なんということでしょう、テーブル化した要素が行の項目となって関連の表現が実現できてしまう。これで1人の顧客の複数の問い合わせ履歴を、顧客アプリの中で実現できた。
別アプリとして切り出して関連レコードとして表現
続いて別アプリとして切り出す方法を紹介する。
まず"顧客リスト" アプリとは別に、"問い合わせ一覧" アプリを作成する。問い合わせ一覧アプリには、"顧客名, タイトル, 内容" の3つがあると仮定しよう。顧客リストにもあった "顧客名" を入れるのが大事。顧客リストアプリの"顧客名" と、問い合わせ一覧アプリの "顧客名" が一致するレコードを、顧客リストアプリに表示させるといった方法だ。
そのためには、"顧客リスト" アプリに関連レコード一覧を追加する。
その設定で参照するアプリを"問い合わせ一覧"アプリにセットし、レコードの条件に、顧客名 = 顧客名 としてやって、顧客リストアプリ内に表示する問い合わせレコードの項目を選択してあげて完了だ。
これで、顧客リストの中で対応する問い合わせ一覧アプリの関連レコード一覧がずらっと表示されるようになる。
kintone でテーブル化したデータを別アプリへ移行する方法
ようやく本題なんだけど、テーブル化したデータのデメリットとして、手軽な分データとして扱いづらいっていうのがあると個人的には思っている。基本的には別アプリで管理して、それらを関連レコードとして表示してあげたほうがデータをシンプルに表現できるので個人的にオススメ。 でも既にテーブル化しちゃったのがあって、それを別アプリに移したいってなったらどうするのってのが今回のお話。
以下の手順でやって行く流れとなる。
- 現在の顧客リストアプリにある 問い合わせテーブル を CSV で書き出す
- CSV から新規"問い合わせ管理"アプリを作成
- CSV で取り込んだ問い合わせデータを一旦全消去
- "問い合わせ管理"アプリにルックアップフィールド "名前" を新規追加
- "問い合わせ管理"アプリを再度読み込む
以下のようなアプリがある想定。
**顧客リスト** 名前、会社名、電話番号、メールアドレス テーブル-> 問い合わせ件名、問い合わせ内容
まずは名前とテーブルの2つで kintone から CSV エクスポート。これで、名前、問い合わせ件名、問い合わせ内容の3つのCSVが書き出される。
CSV からアプリ作成で、以下のアプリを作成。
**問い合わせ管理** 問い合わせ件名、問い合わせ内容
ルックアップに対応させるために、名前を入れないのがポイント!CSVからアプリを作成する場合、ルックアップを指定できないのである。
作った問い合わせ管理アプリからルックアップフィールドを追加し、これを"顧客リスト"の名前に対応する "顧客名" として保存する。続いて、一旦取り込んだデータを一括削除しよう。
その後、改めて CSV から取り込みをして今度は作成したルックアップのフィールドに "顧客名"を指定してあげることで、見事 CSV から取り込んだデータがルックアップフィールド化されることになる。
それさえできれば、後は顧客リストに関連レコード一覧を追加してあげれば対応する顧客の問い合わせ一覧みたいなのも簡単に表示できるようになる。
終わりに
kintone で関連を表現するには2つの方法があることを説明した。
その中で、テーブル管理する方法から別アプリとして切り出す方法について簡単に説明した。これによって、APIや kintone アプリとの連携しやすくすることができた。
私自身、kintone のプロフェッショナルってわけではないので、もっと他にいい方法があるのかもしれない。ただ 今回のやり方でやりたいことはできたので、OK としよう。