別の開発者が作ったkintoneアプリの案件を引き取ったのだが、顧客から不思議な現象について質問を受けた。
同じフィールド名の項目が2つある、というのだ。
調べてみると、「すべて」一覧でフィールドを出してみると、確かに「棚番号」というフィールドが2つ存在する。
ところが、フォームの設定画面を開くと、「棚番号」フィールドは1つしかない。
ブラウザの開発者ツールを開いて調べてみる。
レコード詳細画面を開き、開発者ツールでDOM構造を見ると、DOM上には確かに「棚番号」は1つしかない。
しかし、cybozu.data.page.FORM_DATA
の値をみると、やはり「棚番号」が二つある。フィールドコードは微妙に異なっている。
どう探しても出てこないので、ほとほと困ってしまった。
別件で調査をしていて、ひょんなことから真相が判明した。
エクスポート作業のために、フォーム設定画面で「レコード番号」をフォームに追加したところ、普段なら「レコード番号」という名前のフィールドになるはずが「棚番号」という名前のフィールドになったのである。
なんと。
「レコード番号」フィールドのラベル名とフィールドコードが、フォーム上から削除した後でも内部的に保持されていたようなのだ。これが正常な挙動なのか、常にこのようになるのかはちょっと検証していないが、そのような形で保持されうるというのは貴重な知見となった。