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

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


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

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


アプリの準備

サンプルアプリとして以下のフィールドを作成しました。

※フィールド名とフィールドコードは同じものを設定しています

フィールド名

その他

更新文字列

なし

計算

固定で1を設定


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


Customineの設定

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

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

ボタンを押した時の処理

まず、やること「読み込み中画面を表示する」を使い、読み込み中画面を表示します。


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

全レコードを取得する」の「取得先アプリ」と、「レコードを書き出す」の「書き出し先アプリ」は、いずれも計算フィールドを配置したアプリを指定します。


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


処理が終わったら、やること「画面をリロードする」を使って画面をリロードします。


カスタマイズが完成したら、動かして試してみて下さい。

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


まとめ

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