はじめに
kintoneの自動計算フィールドの値に応じて発火するカスタマイズがエラーで中断。
単純に0除算エラーかと思いきや、最終的に #CONVERT!
が原因だったという話です。
めっちゃ初歩オブ初歩な話かもしれませんが、自分の備忘録として。
発生状況
- 使用環境:kintone + gusuku Customine
- フィールド構成:文字列フィールド + 数値フィールド + 自動計算
- 現象:保存は可能、しかし計算フィールドが後続のフィールド含め全滅(泣)
最初に疑ったこと
- Customineの設定ミス
- 発火タイミング
- 権限やフィールド非表示設定
→ すべて異常なし
gusuku上での調査:情報ダイアログで値を見てみた
- 正常なフィールドは数値や文字列として値が取得できる
- エラーが出ていたフィールド:
- 詳細画面では
#CONVERT!
- 編集画面では 空白
- Customineの情報ダイアログでは #N/A ←こいつが悪いっぽい
- 詳細画面では
どうやらエラーはCustomineではなくkintone側だった
- 計算の内容は文字列に入っていた数値を計算フィールドに入れて他の計算で
数値として使えるようにするというもの - ところが文字列フィールドに
null
や"abc"
のような空白や文字列が……
→#CONVERT!
やらのエラーを返していた
対応策
- まずCustomineの情報ダイアログを活用してエラーのフィールドの値を確認
→なんか#N/A
表示されとるので以下2パターン検証
①kintone側のIF文の条件でフィールドの値が「#N/A」ならばとしてみる
→失敗。エラー解消せず。
②Customine側のif文で自動計算フィールドが#N/A
ならの条件を追加
→結果、一部エラーの解消(回避?)に成功した模様
※ただし、"#N/A" はkintone側で直接扱うのがかなり難しいので、
事前に入力チェックで不正値を弾けるならその方が安全そう(´・ω・`)
まとめ
- 文字列は何でも受け入れちゃうから計算フィールドと併用すると思わぬ事故が発生する
- 詳細画面では
#CONVERT!
、編集画面では空白、Customineのダイアログでは
#N/A
として出てくる
おまけ:#CONVERT!なフィールドを絞り込む方法
- エラーのフィールドは、kintoneの一覧の絞り込み条件では 「空白」 として扱われる
- 手動で修正が必要なレコードを絞り込み可能なのは助かった……
次回予告?
エラーのもう一つの対応策を正規表現でエラーチェックでつぶした話を
書けたら書こうと思います。
2025/07/28追記
予告してたエラーチェックの話を書きました↓↓
https://qiita.com/EYnoco/items/a320532d1830c660dd9a