Because We Love Happy Coding

フリーライターからエンジニア × 講師。発信力だけあり余ってる感じ

kintoneの謎: 不可視のフィールドの謎

今日もまたコーディング。だって僕らはHappy Codingが大好きだから。

別の開発者が作ったkintoneアプリの案件を引き取ったのだが、顧客から不思議な現象について質問を受けた。

同じフィールド名の項目が2つある、というのだ。

調べてみると、「すべて」一覧でフィールドを出してみると、確かに「棚番号」というフィールドが2つ存在する。

ところが、フォームの設定画面を開くと、「棚番号」フィールドは1つしかない。

ブラウザの開発者ツールを開いて調べてみる。

レコード詳細画面を開き、開発者ツールでDOM構造を見ると、DOM上には確かに「棚番号」は1つしかない。

しかし、cybozu.data.page.FORM_DATAの値をみると、やはり「棚番号」が二つある。フィールドコードは微妙に異なっている。

どう探しても出てこないので、ほとほと困ってしまった。

別件で調査をしていて、ひょんなことから真相が判明した。

エクスポート作業のために、フォーム設定画面で「レコード番号」をフォームに追加したところ、普段なら「レコード番号」という名前のフィールドになるはずが「棚番号」という名前のフィールドになったのである。

なんと。

「レコード番号」フィールドのラベル名とフィールドコードが、フォーム上から削除した後でも内部的に保持されていたようなのだ。これが正常な挙動なのか、常にこのようになるのかはちょっと検証していないが、そのような形で保持されうるというのは貴重な知見となった。