2023年11月12日に先行提供を開始するアップデートの紹介
2024年2月11日に実施予定の定期メンテナンスにて、kintone JavaScript APIで、数値フィールドに対して数値ではない値を取得、または数値ではない値で書き換えした場合の挙動が変更されます。
この変更について、2023年11月12日の定期メンテナンスでアップデートオプションを通じた先行提供を開始します。
変更の背景
これまでkintone JavaScript APIで数値フィールドを操作した場合、数値ではない値の取得や書き換えが可能でした。
そのため、カスタマイズでは取得した値が数値かどうかを判定し、それに応じた処理を実装する必要がありました。
今後のアップデートでは、kintone JavaScript APIで数値フィールドに対して使用できる値を定め、使用できない値を扱う際の挙動を次のように変更します。
- 数値ではない値を取得しようとすると、「#INVALID!」という値が返される。
- 数値ではない値に書き換えようとすると、エラーが発生する。
この変更により、数値フィールドで数値を扱う際の考慮事項が減り見通し良く実装できるようになるとともに、今後の製品アップデートに伴う対応コストが減り、カスタマイズの保守性が向上することを見込んでいます。
リリースのスケジュール
- 2023年11月版:「リリース予定の新機能の先行利用」を通じて提供します。
- 2024年2月版:正式リリースします。「新機能の無効化」による無効化が可能です。
- 2024年5月版:「新機能の無効化」の提供を終了します。
先行利用する場合に必要な設定
kintoneシステム管理のアップデートオプション画面で、次のようにオプションを設定します。
kintoneヘルプ:
新規の有効/無効の切り替え手順
- 「リリース予定の新機能の先行利用」
- 「数値フィールドを取得またはセットするJavaScriptで不正な値が入力されている場合の動作の変更」を選択する。
- 「新機能の無効化」
- 「レコード追加・編集画面の数値フィールドで、桁区切りのカンマ付き数字や全角数字が使用できる変更」の選択を外す。
変更点
kintone JavaScript APIにおいて数値フィールドで取得または書き換えが可能な値
- 数値
- 符号には「+」または「-」を使用できます。
- 小数点記号には「.」を使用できます。
- 指数表記を使用できます。指数の記号には「e」または「E」を使用できます。
- 空文字
数字または記号は、半角文字のみ使用できます。
上記に加え、数値フィールドを書き換えるAPIまたはイベントでは次の値を使用できます。
undefined
null
これらの値を指定すると、数値フィールドの値が空になります。#INVALID!
この値を指定すると、数値フィールドの値は書き換えられません。
以上に当てはまらない値は、数値フィールドでは不正な値として扱われます。
数値フィールドに入力された不正な値を取得する場合
数値フィールドに不正な値が入力された場合、レコードオブジェクトの値に「#INVALID!」が設定されます。
対象イベント/API
-
レコード追加画面を表示した後のイベント
app.record.create.show
mobile.app.record.create.show
-
レコード追加画面でフィールドの値を変更したときのイベント
app.record.create.change.フィールドコード
mobile.app.record.create.change.フィールドコード
-
レコード追加画面で保存するときのイベント
app.record.create.submit
mobile.app.record.create.submit
-
レコード編集画面を表示した後のイベント
app.record.edit.show
mobile.app.record.edit.show
-
レコード編集画面でフィールドの値を変更したときのイベント
app.record.edit.change.フィールドコード
mobile.app.record.edit.change.フィールドコード
-
レコード編集画面で保存するときのイベント
app.record.edit.submit
mobile.app.record.edit.submit
-
レコードの値を取得する
kintone.app.record.get()
kintone.mobile.app.record.get()
備考
不正な値かどうかを判定する前に、次の処理が行われます。
- PC画面:文字の半角化、桁区切り文字の除去、前後の空白の除去
- モバイル画面:前後の空白の除去
数値フィールドの値の書き換えで、不正な値を指定した場合
不正な値を指定して、対象イベントまたはAPIを使って数値フィールドの値を書き換えようとすると、エラーが発生します。
対象イベント/API
-
レコード追加画面を表示した後のイベント
app.record.create.show
mobile.app.record.create.show
-
レコード追加画面でフィールドの値を変更したときのイベント
app.record.create.change.フィールドコード
mobile.app.record.create.change.フィールドコード
-
レコード追加画面で保存するときのイベント
app.record.create.submit
mobile.app.record.create.submit
-
レコード編集画面を表示した後のイベント
app.record.edit.show
mobile.app.record.edit.show
-
レコード編集画面でフィールドの値を変更したときのイベント
app.record.edit.change.フィールドコード
mobile.app.record.edit.change.フィールドコード
-
レコード編集画面で保存するときのイベント
app.record.edit.submit
mobile.app.record.edit.submit
-
インライン編集のフィールド値を変更したときのイベント
app.record.index.edit.change
-
レコードの値を設定する
kintone.app.record.set()
kintone.mobile.app.record.set()
数値フィールドの値の書き換えで「#INVALID!」を指定した場合
「#INVALID!」を指定して、対象イベントまたはAPIを使って数値フィールドの値を書き換えようとすると、値の書き換えは実施されず、数値フィールドに入力されている値が維持されます。
「#INVALID!」を指定した数値フィールド以外のフィールドは、従来とおり値の書き換えが行われます。
対象イベント/API
-
レコード追加画面を表示した後のイベント
app.record.create.show
mobile.app.record.create.show
-
レコード追加画面でフィールドの値を変更したときのイベント
app.record.create.change.フィールドコード
mobile.app.record.create.change.フィールドコード
-
レコード編集画面を表示した後のイベント
app.record.edit.show
mobile.app.record.edit.show
-
レコード編集画面でフィールドの値を変更したときのイベント
app.record.edit.change.フィールドコード
mobile.app.record.edit.change.フィールドコード
-
レコードの値を設定する
kintone.app.record.set()
kintone.mobile.app.record.set()
モバイル版における入力値の前後スペースの扱い
モバイル版では、数値フィールドにおいて入力された値の前後に空白が入っていた場合、空白が取り除かれた値が取得されるようになります。
また、前後の空白を除去すると入力前と後の値が同じになる場合、フィールドの値を変更したときのイベントが発生しなくなります。
対象イベント/API
-
レコード追加画面を表示した後
mobile.app.record.create.show
-
レコード追加画面でフィールドの値を変更したときのイベント
mobile.app.record.create.change.フィールドコード
-
レコード追加画面で保存するときのイベント
mobile.app.record.create.submit
-
レコード編集画面を表示した後のイベント
mobile.app.record.edit.show
-
レコード編集画面でフィールドの値を変更したときのイベント
mobile.app.record.edit.change.フィールドコード
-
レコード編集画面で保存するときのイベント
mobile.app.record.edit.submit
-
レコードの値を取得する
kintone.mobile.app.record.get()
-
レコードの値を設定する
kintone.mobile.app.record.set()