Cybozu developer networkのTipsのURL:

https://developer.cybozu.io/hc/ja/articles/211583223


今回は複数のレコードのステータスをワンクリックで更新するカスタマイズをご紹介します!

例えば、ステータスが「承認待ち」のレコードを全て「承認済み」に変える必要がある時、レコードが多いと、レコード一つ一つ詳細画面を表示して、承認ボタンをクリックして…とやっていくととても時間がかかりますよね。

そんな時はCustomineで条件に合うレコード全てのステータスを更新するカスタマイズをするととても便利になりますよ!

また、あらかじめkintone標準の一覧機能で、更新するレコードを絞り込んでおくとカスタマイズはよりシンプルにできます。

Customineの基本的な事柄は、こちらの「はじめてのカスタマイズ」をご参照ください。

アプリのフォーム

kintoneアプリストアから「旅費精算申請」アプリを選択し、追加します。

さらに、一括更新するレコードを絞り込むための一覧「ワンクリック承認」を追加します。

以下のように設定します。


カスタマイズでやりたいこと

  • 「ワンクリック承認」の一覧画面に「一括承認」ボタンを設置する。

  • 「一括承認」ボタンをクリックすると現在画面に表示されているレコード全てで、「承認」アクションを実行し、ステータスを「承認」に変更する。

  • 一度一括承認をすると元に戻すのが難しいので、ステータス更新前に確認ダイアログを表示する。

  • レコードが存在しない場合はエラーダイアログを表示する。


Customineの設定

特定の一覧にのみボタン設置


やること

ボタンをメニュー位置に配置する」を使用します。一覧画面では表示位置を「一覧画面メニューの右側」と「一覧画面メニューの下側」から選択できます。今回は「一覧画面メニューの右側」を選択します。


「一覧画面メニューの下側」を選択した場合は下の画像の様になります。


条件

一覧画面を表示した時」に「現在の一覧が指定の一覧ならば」を加えることで、指定の一覧でのみ「やること」を発動させることができます。


確認ダイアログ表示


やること

確認ダイアログを表示する」を使用します。

下のようなダイアログを表示します。


条件

ボタンを押した時」を使用します。


更新対象のレコード取得


やること

一覧で画面に表示されているレコードを取得する」を使用します。「一覧の条件でレコードを全件取得する」とは違い、一覧が複数ページにまたがっている場合、現在表示されているページのレコードのみが取得されます。


条件

確認・入力ダイアログで「OK」を押した時」を使用します。「他のアクションの実行が完了した時」ではダイアログを表示して「OK」ボタンを押す前に「やること」が発動してしまうので、こちらは使えません。


ステータス一斉更新

やること

ステータスを変更する(指定のレコード)」を使用します。レコード取得アクションで取得したレコード 全てに対して、プロセス管理のステータス変更アクションを実行します。


条件

他のアクションの実行が完了した時」と「レコード件数が0件ならば」を使用します。


画面を再読み込みする

ここまでで一斉更新は完了しており、表示されていたレコードは「申請中」でなくなるので、「ワンクリック承認」の一覧からは消えるはずですが、見た目には何の変化もありません。画面に反映されるには画面を再読み込みする必要があります。


やること

画面をリロードする」を使用します。

条件

他のアクションの実行が完了した時」を使用します。

エラーダイアログを表示する


やること

エラーダイアログを表示する」を使用します。

下のようなダイアログを表示します。


条件

他のアクションの実行が完了した時」と「レコード件数が1件以上ならば」を使用します。


テスト

設定が完了したら、「kintoneアプリへ登録」し、動作チェックしてみましょう。

ボタンクリック前

ボタンをクリックすると、


が表示されます。

「承認する」をクリックすると、画面が一度リロードされ、画面に表示されていたレコードが「申請中」でなくなったので、「ワンクリック承認」の一覧から消えます。


別の一覧に変えると、先ほど表示されていたレコードがすべて「承認」になっているのを見ることができます。

終わりに

複数の承認待ちのレコードを一覧で確認して一気に承認、言葉にするのは簡単ですが、JavaScriptを書くとなるとややこしいですよね・・・

Customineで実装するとなんと6行です!すぐに組むことができますし、タイプミスも大幅に減るでしょう!また、作った人以外が見ても何をやっているか明らかですね!

Customineヘルプサポートもぜひご活用ください。

もし分からないことがありましたら、フォーラムの方でご質問ください。