計算フィールドや自動計算を設定した文字列を後で追加した時など、レコードを再保存しないとフィールドに値が入らないケースがあります。

この場合に全レコードを一括更新するカスタマイズを作成することで値を入れることができます。



今回のカスタマイズで出来ること

  • アプリの全レコードを一括更新します

    


アプリの準備

サンプルアプリとして以下のフィールドを作成しました。計算フィールドには固定値で 1 が入るようにしています。


フィールド名

フィールドコード

フィールドタイプ、他

更新文字列

更新文字列

文字列

計算

計算

計算



詳細画面での表示は次のようになります。




Customineの設定


全体の流れはこのようになります。



一覧画面を表示した時の処理


メニュー位置にボタンを配置します。




ボタンを押した時の処理

一覧の表示条件に影響されないように、「全レコードを取得する」でレコードを取得します。その後に、「レコードを元に別のレコードを更新する」でレコードを更新します。

この時、更新用のキーとしてはレコード番号を指定するのですが、マッピングでは何か更新可能なフィールドを指定しないといけないので、更新文字列というフィールドを指定しています。この時の値は常に同じ値で問題ありません。




計算フィールドをアプリに追加してからボタンを押すと値が入ります。自動計算を設定した文字列フィールドでも同じように値が入りますのでお試しください。


まとめ

kintoneの仕様として、更新時にフィールドの値が同じ場合はレコードは更新されないというのがあるのですが、今回のケースだとマッピングで指定したフィールドではなく計算フィールドの値が変わるので更新になります。