はじめに
今回は、 複数のレコードのステータスを更新するAPI を使って、複数のレコードのステータスの更新をボタンクリック1回で実行してみたいと思います。
準備
シナリオとしては、ステータスが「申請中」で作業者が「ログインユーザー」のレコードで絞り込んだ後に、一括承認するというシーンを想定します。
使うアプリはどのアプリでも問題ないですが、今回はアプリストアの中から「旅費清算申請」を選びます。
絞り込みの設定を以下のようにしておきます。
これで準備は完了です。
JavaScriptカスタマイズ
今回利用するソースコードは、次のapproval-button.js
です。
いたってシンプルな処理となっています。
適用する際は、11行目のID
の箇所を自身の環境の一覧のIDに書き換えてください。
その際シングルクオートで囲む必要はありません。
一覧のIDは、イベントオブジェクト内もしくはURLにて確認してください。
view
に続く番号が一覧のIDになります。
例:https://sample.cybozu.com/k/13327/?view=5341206
|
|
以下は処理の流れです。
- 11行目 の処理で、一覧IDによってボタンを出すか出さないを制御します。
すべての一覧に出したい場合は不要です。 - 21行目 の処理で、ボタンを生成します。
22行目 の処理で、装飾するようにクラス名を与えておきます。 - 26行目 からの処理で、 Cybozu CDN にもあるSweetAlertを使って、確認ダイアログを出します。
- 45行目 からの処理で、レコードのステータス更新APIを使って、画面に表示されている全レコードに対して「承認リクエスト」を送ります。
- 62行目 の処理で生成したボタンを、 レコード一覧のメニューの下側の要素を取得する を参考に、レコード一覧メニューの下側の空白部分に追加します。
CSSカスタマイズ
以下のCSS approval-button-design.css
を使ってボタンを中央に寄せます。
|
|
JavaScript / CSSファイルを適用
サンプルコードapproval-button.js
、approval-button-design.css
と合わせて、
Cybozu CDN
にあるSweetAlertも読み込みます。
JavaScript
- SweetAlert v1.1.3
- https://js.cybozu.com/sweetalert/v1.1.3/sweetalert.min.js
- アップロードして追加
- approval-button.js
CSS
- SweetAlert v1.1.3
- https://js.cybozu.com/sweetalert/v1.1.3/sweetalert.css
- アップロードして追加
- approval-button-design.css
JavaScriptとCSSを適用すると、中央にボタンが表示されます。
動作確認
では実際にいくつかのレコードを用意して、承認してみたいと思います。
ボタンを押して実行してみましょう。
実行した結果がこちら。
実際に、一覧で表示されているレコードがすべて承認されました!
ステータス欄が、ステータスによって色が変わっていますがこれは「
条件書式プラグイン
」を適用しています。
サンプルコードのみの場合、色は変わらないのでご注意ください。
注意事項
- 一覧で絞り込み設定をせずに、「申請中」以外のものを出して実行するとエラーになります。
終わりに
今回は、レコード一括承認を試してみました。
一括で承認するのがちょっとこわいので、選択式にしたいという方はこちらの
ブログ
にアイディアを書いていますのでご参考ください。
また、実際に使う場合は承認ボタンを使えるユーザーを制御したりする必要があるかと思います。
ユーザー情報をエクスポートするAPI
を利用することでそういった制御もできるかと思いますので、ぜひチャレンジしてみてください。
このTipsは、2024年2月版kintoneで動作を確認しています。