今回は複数のレコードのステータスをワンクリックで更新するカスタマイズをご紹介します!
例えば、ステータスが「承認待ち」のレコードを全て「承認済み」に変える必要がある時、レコードが多いと、レコード一つ一つ詳細画面を表示して、承認ボタンをクリックして…とやっていくととても時間がかかりますよね。
そんな時はCustomineで条件に合うレコード全てのステータスを更新するカスタマイズをするととても便利になりますよ!
また、あらかじめkintone標準の一覧機能で、更新するレコードを絞り込んでおくとカスタマイズはよりシンプルにできます。
Customineの基本的な事柄は、こちらの「はじめてのカスタマイズ」をご参照ください。
アプリのフォーム
kintoneアプリストアから「旅費精算申請」アプリを選択し、追加します。
さらに、一括更新するレコードを絞り込むための一覧「ワンクリック承認」を追加します。
以下のように設定します。
カスタマイズでやりたいこと
「ワンクリック承認」の一覧画面に「一括承認」ボタンを設置する。
「一括承認」ボタンをクリックすると現在画面に表示されているレコード全てで、「承認」アクションを実行し、ステータスを「承認」に変更する。
一度一括承認をすると元に戻すのが難しいので、ステータス更新前に確認ダイアログを表示する。
レコードが存在しない場合はエラーダイアログを表示する。
Customineの設定
特定の一覧にのみボタン設置
やること
「ボタンをメニュー位置に配置する」を使用します。一覧画面では表示位置を「一覧画面メニューの右側」と「一覧画面メニューの下側」から選択できます。今回は「一覧画面メニューの右側」を選択します。
「一覧画面メニューの下側」を選択した場合は下の画像の様になります。
条件
「一覧画面を表示した時」に「現在の一覧が指定の一覧ならば」を加えることで、指定の一覧でのみ「やること」を発動させることができます。
確認ダイアログ表示
やること
「確認ダイアログを表示する」を使用します。
下のようなダイアログを表示します。
条件
「ボタンを押した時」を使用します。
更新対象のレコード取得
やること
「一覧で画面に表示されているレコードを取得する」を使用します。「一覧の条件でレコードを全件取得する」とは違い、一覧が複数ページにまたがっている場合、現在表示されているページのレコードのみが取得されます。
条件
「確認・入力ダイアログで「OK」を押した時」を使用します。「他のアクションの実行が完了した時」ではダイアログを表示して「OK」ボタンを押す前に「やること」が発動してしまうので、こちらは使えません。
ステータス一斉更新
やること
「ステータスを変更する(指定のレコード)」を使用します。レコード取得アクションで取得したレコード 全てに対して、プロセス管理のステータス変更アクションを実行します。
条件
「他のアクションの実行が完了した時」と「レコード件数が1件以上ならば」を使用します。
画面を再読み込みする
ここまでで一斉更新は完了しており、表示されていたレコードは「申請中」でなくなるので、「ワンクリック承認」の一覧からは消えるはずですが、見た目には何の変化もありません。画面に反映されるには画面を再読み込みする必要があります。
やること
「画面をリロードする」を使用します。
条件
「他のアクションの実行が完了した時」を使用します。
エラーダイアログを表示する
やること
「エラーダイアログを表示する」を使用します。
下のようなダイアログを表示します。
条件
「他のアクションの実行が完了した時」と「レコード件数が0件ならば」を使用します。
テスト
設定が完了したら、「kintoneアプリへ登録」し、動作チェックしてみましょう。
ボタンクリック前
ボタンをクリックすると、
が表示されます。
「承認する」をクリックすると、画面が一度リロードされ、画面に表示されていたレコードが「申請中」でなくなったので、「ワンクリック承認」の一覧から消えます。
別の一覧に変えると、先ほど表示されていたレコードがすべて「承認」になっているのを見ることができます。
終わりに
複数の承認待ちのレコードを一覧で確認して一気に承認、言葉にするのは簡単ですが、JavaScriptを書くとなるとややこしいですよね・・・
Customineで実装するとなんと6アクションです!すぐに組むことができますし、タイプミスも大幅に減るでしょう!また、作った人以外が見ても何をやっているか明らかですね!
もし分からないことがありましたら、Customineヘルプやサポートもぜひご活用ください。