GovAppsプラグイン 安全性を確認できる無料kintoneプラグイン集
プロセス管理を使ったアプリのレコード一覧画面に「一括承認」ボタンを設置するプラグインです。ボタンは、 プロセス管理を有効にすると自動的に作成される「(作業者が自分)」一覧(作業者がログイン ユーザー自身に限定された標準の一覧)を開いているときにだけ表示されるため、担当外のレコードが並ぶ一覧に ボタンが出てしまうことはありません。押すと、今その一覧に表示されているレコードが、 現在のステータスごとにグループ分けされたモーダルに表示されます(REST APIでの追加検索は 行わず、一覧の表示内容をそのまま使います)。実行できるプロセス管理のアクションはレコードのステータスに よって異なるため、グループ(ステータス)ごとにチェックボックスで対象レコードを選び、そのステータスから 実行できるアクションをグループごとのドロップダウンから選びます。最終確認画面ではグループごとの 「件数→実行するアクション」が一覧表示され、複数のステータス・複数のアクションをまたいでも1回の操作で まとめて実行できます。実行できるアクションが無いステータス(次の作業者の選択が必須な遷移しかない場合など) は、その旨を表示するだけで選択肢自体を出しません。設定画面ではモーダルの一覧に表示する項目(フィールド)を 選択できます。
プロセス管理を有効にすると自動的に作成される「(作業者が自分)」一覧(作業者がログインユーザー自身に限定された一覧)を開くと、一括承認ボタンが表示されます。対象レコードをボタン1つでモーダルに呼び出し、「申請中」グループのチェックボックスで承認するレコードを選び、「承認」アクションを選択、最終確認のうえ一括で実行します。
モーダルはレコードの現在のステータスごとにグループ分けされて表示されるため、「申請中」グループでは一部を「承認」、別のレコードは「差し戻す」を選び、さらに「未処理」グループでは「申請する」を選ぶ、といったように、複数のステータス・複数のアクションにまたがる操作を最終確認画面でまとめて確認し、1回の実行操作で処理できます。
設定画面でモーダルの一覧に表示するフィールドを選べるため、申請金額や申請者名など、承認判断に必要な項目だけを表示できます。現在のステータスはグループの見出しに表示されるため、項目として個別に選ぶ必要はありません。
対象は「(作業者が自分)」一覧の現在の表示内容(1ページあたりの表示件数はアプリの一覧設定に従います)です。他の一覧やカレンダー形式・カスタマイズ形式の一覧ではボタンは表示されません。
kintoneセキュアコーディングガイドラインに沿って実装時にチェックしています。特に重要な点は次のとおりです。
document.createElement() + textContentのみで組み立てており、innerHTMLへ動的な値を差し込む箇所はありません。event.records)の内容をそのまま使うため、ボタン押下時に追加の検索リクエストは発生しません。REST APIの利用は「自アプリのプロセス管理アクション実行」のみで、kintone.api()(kintone自身への呼び出し専用の内部ラッパー)経由です。生のfetch/XMLHttpRequestは使用していません。プロセス管理の設定取得・フォームのフィールド定義取得はJavaScript API(kintone.app.getStatus()・kintone.app.getFormFields())を使用しています。詳細な確認項目・確認日は下記GitHubのチェックリストに全項目を掲載しています。
「一括承認」ボタンを押しても、対象レコードの検索でAPIは実行されません(一覧表示イベントの内容をそのまま使います)。
実行時は、選択したレコード数を100件ずつのバッチに分けてPUT /k/v1/records/status.jsonを実行し、
バッチ全体が失敗した場合のみそのバッチ内を1件ずつPUT /k/v1/record/status.jsonで再送します
(通常は成功するため追加実行は発生しません)。設定画面での保存・読み込み自体はkintoneのプラグイン設定機能を
使うため、追加のAPI実行はありません。