kintone は RDB ではありません。
これは kintone の管理を担当されている方なら周知の事実だと思います。また、周知でありながら繰り返し頭を抱える事実でもあると思います。
kintone には「ルックアップ」というフィールドがあります。これは他のアプリから特定のフィールド情報をコピーすることができるフィールドであり、みなさんもアプリ間の連携でよく使用されると思います。
ただ、あくまで「コピー」であって「同期」ではありません。ルックアップ元のデータが書き変わったとしても、ルックアップ先で再度ルックアップを実行しない限りはデータは更新されません。
以前私は、ルックアップ元フィールドが一意でない場合に生じる、ルックアップ元が書き変わった場合にレコードが更新できなくなってしまう問題を解決するためのプラグインを開発しました。
個人的にはかなり気に入っていて、私が所属している会計事務所で利用している kintone でも、ほとんどのアプリに導入しています。
ただ、この同期ズレの問題については仕方のないものとして受け入れ、どうしても同期が必要な場合は定期的にルックアップフィールドを更新するバッチなどで対応していました。
今回はこの同期ズレを解消する方法として、「そもそもルックアップしない」というアプローチで解決させるプラグインを開発しました。
kintone には「関連レコード一覧」というフィールドが存在しますが、これの 1 レコード、1 フィールド版のようなイメージです。
キー情報などで紐づくアプリ間で、ルックアップしないであくまで見えるだけ、という状況を作ることができます。
プラグインのソースコードは全て公開しており、無料で利用することができます。
まずはデモからご覧ください。
デモ
プラグインはレコード詳細画面と、レコード編集画面で動作します。
レコードを表示したタイミングで、設定したキー情報に紐づく別アプリのレコード情報を取得し、そのアプリの 1 フィールドのように表示します。
そのアプリには対象フィールドは存在しないため、常にオリジナルのフィールド情報が参照できます。
プラグインのソースコード
当プラグインはオープンソースです。 プラグインがどういったファイルで構成されているのか、どのように実装されているのか、全てのプログラムを Github から確認することが可能です。
プラグインのソースコードを確認されたい方は、当ページトップの「ソースコードを確認する」ボタンからプラグインのリポジトリにアクセスすることができます。