計算フィールドや自動計算を設定した文字列を後で追加した時など、レコードを再保存しないとフィールドに値が入らないケースがあります。
この場合に全レコードを一括更新するカスタマイズを作成することで値を入れることができます。
今回のカスタマイズで出来ること
アプリの全レコードを一括更新します
アプリの準備
サンプルアプリとして以下のフィールドを作成しました。計算フィールドには固定値で 1 が入るようにしています。
フィールド名 | フィールドコード | フィールドタイプ、他 |
更新文字列 | 更新文字列 | 文字列 |
計算 | 計算 | 計算 |
詳細画面での表示は次のようになります。
Customineの設定
一覧画面を表示した時の処理
メニュー位置にボタンを配置します。
ボタンを押した時の処理
一覧の表示条件に影響されないように、「全レコードを取得する」でレコードを取得します。その後に、「レコードを書き出す」でレコードを更新します。
「全レコードを取得する」の「取得先アプリ」と、「レコードを書き出す」の「書き出し先アプリ」は、いずれも計算フィールドを配置したアプリを指定します。
この時、マッピングでは何か更新可能なフィールドを指定しないといけないので、更新文字列というフィールドを指定しています。この時の値は常に同じ値で問題ありません。
計算フィールドをアプリに追加してからボタンを押すと値が入ります。自動計算を設定した文字列フィールドでも同じように値が入りますのでお試しください。
まとめ
kintoneの仕様として、更新時にフィールドの値が同じ場合はレコードは更新されないというのがあるのですが、今回のケースだとマッピングで指定したフィールドではなく計算フィールドの値が変わるので更新になります。