Ich habe hunger

あふりかエンジニア、アフリカ向けのB2BのSaaSを開発する

kintoneでCSV読み込みしようと思ったら、ルックアップフィールドでつまづいた話。

シナリオ

ルックアップフィールドを設定しているアプリにCSVでデータを読み込もうと思ったら、
該当しているルックアップフィールドがCSV読み込み画面に出てこない:;(∩´﹏`∩);:
それ故に、CSVで読み込んでもそのフィールドは更新されない!!辛い。

具体例

チーム管理をするために、「チーム」アプリと「メンバー」アプリを作成。
メンバーは一つだけチームに所属するとする。(他の会社の中でのローカルルールは知りません)
メンバーがどういう仕事をしているかをレコードで表示するためにチームアプリ内の「チームID」をルックアップフィールドとしてチームアプリ内のデータを参照していた。
メンバーの情報を一気に取り込もうと、CSV読み込みを試みる。


「アプリのフィールドと読み込むデータの列を対応付けます。」と書いてある通り、自動である程度対応させてくれている。最高!
しかし、チームIDがアプリのフィールドとして出てこない・・・。
手動でデータ更新していた時には、全く問題もなくルックアップフィールドも動いていたのに・・・。

と、こんな感じでした。

原因と解決策

原因は、チームアプリのフィールドの設定でした。
チームIDの設定で「値の重複を禁止する」にチェックを入れていないことが原因でした。(杜撰なデータ管理になるのでIDはユニークにせねば)

確かに、値の重複を禁止していないと該当するデータが複数あった場合など、CSVの一括読み込みでは対応しきれないことになる。

では、なぜ手動で更新していた時には問題なく動いていたのか?
それは、該当するデータが複数あった場合は、"人間が選択できる"状態であるからっぽい。(実際はどうかは分からない)
基本的には、kintone上では複合キーのようなことは、APIなどを用いないと事実上不可能ではあるが、手動で、目で見てデータを選択していくのであればありなのかもしれない。非常に人よりで、ある種柔軟なソフトなんだな、と思った出来事でした。