kintoneカスタマイズのあるある川柳🎋

突然ですが、kintoneカスタマイズのあるある川柳とその対策を書いてみませんか!?!?
正解はないと思うので、あるあるに対する対策や考え方も聞いてみたいです~:laughing:

・・・では言い出しっぺの私から!

計算と JavaScriptが 喧嘩する

【説明】

フィールドの値を変更したときのイベントなどで、計算フィールドで計算した値をJavaScriptで使おうとすると、計算結果がバグります:roll_eyes:

2026-04-2118h1818

(() => {
  'use strict';
  kintone.events.on(['app.record.create.change.A','app.record.create.change.B'], (event) => {
    
    const record = event.record;
    
    record.JS計算.value = Number(record.A.value) + Number(record.計算.value);
    
    return event;
    
  });
})();

【対策】

計算かJavaScriptかどちらかにしよう:raising_hands:
計算フィールドを使って更にJavaScriptで計算するってやるとめちゃめちゃバグりましたw

こんな感じで川柳書いてみませんか~~:laughing:

面白い試みだと思ったので私も……

ユーザーを 消すと壊れる 一覧画面

(字余り)

【説明】

一覧の絞り込み条件に指定したユーザーを、条件から外す前に cybozu.com共通管理 から消してしまうと、カスタマイズが動かなくなることがあります。

例えばこんなユーザーがいたとして、

一覧の絞り込み条件に指定しておきます。

カスタマイズで、一覧画面上で 現在のクエリを取得 します (壊れる操作の一つ)。

(function() {
  'use strict';
  kintone.events.on('app.record.index.show', function(event) {
    const space = kintone.app.getHeaderMenuSpaceElement();
    if (space instanceof HTMLDivElement) {
      const query = kintone.app.getQuery();
      const span = document.createElement('span');
      span.innerText = query;
      space.appendChild(span);
    }
  });
})();

この状態で、 cybozu.com共通管理 で絞り込みに使ったユーザーを消します。

すると、もともと動いていたカスタマイズがエラーを起こします。これが発生すると、後続のカスタマイズが全て止まるので、プラグインなどもすべて動かなくなってしまいます。

【対策】

ユーザーは基本消さないようにしましょう。
また、やむを得ず消す場合は影響がないかどうか事前に確認しましょう。

もしこのようなエラーが起こってしまったら、一覧の絞り込み条件に削除されたユーザーが指定されていないか確認して、条件から外せば動くようになります。

こんな感じでいかがでしょうか!?

ノッてくださってありがとうございます!!
そしてなんとなんと!そんな事が起こるのですね!知りませんでした:scream:!!!

ユーザーの削除、気をつけないといけませんね:eyes:

あるあるといえば…

新しく 足したテーブル 空配列

【説明】

既に運用しているアプリに新しくサブテーブルを追加すると、それまでに作成したレコードではサブテーブルの値が画像上のように[](空配列)になる(通常、何も入力しないで保存したサブテーブルは画像下のように要素数1でサブテーブル内のフィールドが空になる)ので、detail.showイベント等でサブテーブル内のフィールドにアクセスしようとするとエラーが起きます

無知だった頃は一つ一つのレコードを編集->保存してサブテーブルの1行目を作った思い出があります…

UIに こだわりすぎて 溶ける時(トキ)

【説明】

kintoneはJavaScriptやCSSでカスタマイズによってほぼなんでもできるんですが、そのせいで社内利用者からの「この挙動はこうなってほしい」「この見た目をこうできない?」に対応し続けて疲れてしまうパターン :laughing:

無理やりカスタマイズして保守性が下がったり、細かいことにこだわりすぎてコストが高くなってしまいます

【対策】

依頼を真に受けすぎず、咀嚼して、それって本当に必要なのか、他に方法はないか?を考える
例えば、カスタマイズせずとも、ラベルをおくだけで解決することもあるかも???(カスタマイズせずにやれるとベスト!

「あくまで社内向けのアプリなのでここで妥協しましょう」と周囲に理解・協力してもらうこと、その関係性も作っておくことも大事だったりする… :face_holding_back_tears:
kintone管理者は、大変なおしごとです :smiling_face: