編集画面でよく使用されている特定の値の時に値をセットするカスタマイズですが、編集画面を1つ1つ開かずに該当する複数レコードに一括で値をセットしたいということがあるかと思います。
複数のレコードに対する一括処理は画面のカスタマイズで行う方法と、Job Runnerを使用して行う方法があります。
今回は、複数レコードに対して値をセットする処理をJob Runnerの【定期実行タスク】で行う方法をご紹介します。
Job Runnerを利用する前に、下記をご覧ください。
Job Runnerを利用するとき、初めにすること : ジョブへのスロット割り当てについて
アプリの構成
使用する「保守契約アプリ」のフィールド構成は以下の通りです。
やりたいこと
定期実行タスクで指定した日時に以下の処理を実行します。
契約開始日は入力されているが、契約終了日が空のフィールドをもつレコードに対して、契約開始日から1年後の値をセットします。
Customineの設定
全体の設定は以下のようになります。
接続設定とレコード取得
まず、kintone 接続設定を行います。
接続設定については、こちらで詳しくご案内していますので、ご確認ください。
「実行予定時刻になった時」に「kintone 接続設定を行う」で使用する「保守契約アプリ」と接続設定を行います。
kintoneアプリ側でAPIトークンを発行する際にレコード閲覧とレコード編集の許可をしておきます。
次に、「全レコードを取得する」でレコードを取得します。
※今回はクエリ記法に不慣れな方向けに「全レコードを取得する」を使用した例をご紹介していますが、アクション番号8番の追加条件を指定せずとも、「クエリで条件を指定してレコードを取得する」を使用し、あらかじめ検索条件に一致したレコードを取得しておく方法でも実現できます。
また、アプリにあまりに多くのレコードがある場合に「全レコードを取得する」を使用すると非常に時間がかかったり、場合によってはジョブがタイムアウトしてしまう可能性がありますので、テストを行う際には少数のレコードでお試しください。
契約開始日1年後の値をセット
「日付を計算する」では、契約開始日を基準日として1年後の値を取得しています。
条件は「レコード1行が準備できた時」と設定し、追加条件「フィールド値が空でないならば」「フィールド値が空ならば」で契約開始日は入力されているが、契約終了日が空の条件を指定します。
この設定で条件と一致したレコード1行1行に対して、「日付を計算する」が実行されます。
次に、「フィールドに値をセットする」で取得結果をレコードのフィールドにセットします。
「フィールドに値をセットする」で値がセットされたレコードは、ジョブの最後にまとめて保存されるため、以上のカスタマイズだけでレコードには自動的に値が保存されています。
「ジョブ生成・設定」ボタンを押し、ジョブ設定画面で「直ちに実行」してみてください。
「実行履歴」タブで、実行結果を確認できます。
もしエラーになっていたり、意図しない結果になっているようでしたら、カスタマイズを見直してみてください。
アプリ側でも結果に問題がないようでしたら、次にスケジュール設定を行います。
スケジュール設定については、こちらのページの下部でご案内しておりますのでご確認ください。
<補足>
今回は指定時間に一括で値を変更するという内容でしたが、例えば一覧画面にボタンを設置し、ボタン操作によって上記のような一括更新する処理を行いたいという場合も設定可能です。
Job Runnerの【定期実行タスク】で設定した内容はそのままで、トリガーとなるボタン作成は画面のカスタマイズにて設定を行ってください。設定についてはこちらのページの下部でご案内しております。
ご不明点等ございましたら、チャットにてご質問ください!
Customineドキュメントやサポートページもぜひご活用ください。