rex0220 一括更新プラグイン

kintone 一覧画面と詳細画面で、レコードの一括更新を行うプラグインです。
特定の項目を一括更新する業務などで、効率的に作業を行えます。

![2023-08-12_13h51_51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/68aa9adf-4354-78e0-d1de-e2d7a2467686.png)
![2023-08-12_13h48_39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/d6e90048-5710-cb36-7230-2ee0f5b1c26a.png)
![2023-08-12_08h05_20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/4ebea965-a221-b24b-39cc-c0bc84b816b5.png)
![2023-08-12_13h48_22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/2079c3a2-926b-b3dd-a755-6c2b298e0978.png)

# 一括更新プラグインの特長

・一覧画面で、あらかじめ指定した項目のレコード一括更新を行う
・詳細画面で、あらかじめ指定した項目のレコード更新を行う
・用途に応じて、更新する項目セットを複数設定可能
・更新対象項目：
　文字列１行、文字列 (複数行)、チェックボックス、複数選択、ドロップダウン、ラジオボタン、ルックアップ、数値、日付、日時、時刻、ユーザー選択、組織選択、グループ選択
　※テーブル・テーブル内項目は対象外
・必須制約、文字数制限、数値制約、リンクについて、入力チェック機能あり
・一覧画面で、更新するレコードをチェックボックスで指定可能
・入力項目の初期値を計算式で指定可能
・指定項目について、計算式で自動設定可能
・一括更新の処理毎に、表示する一覧と表示権限を指定可能
・計算式プラグインとの連携機能
・パラレル更新による最大２０万件の一括処理
・３ヶ国語対応
・PCのみ対応

※他プラグインへの影響
　・文字検索プラグイン Ver.18 以降に対応
　・ルックアップ選択条件プラグイン Ver.30 以降に対応
　・一括承認プラグイン Ver.9 以降に対応
　・選択式ルックアップテーブルプラグイン Ver.1 以降に対応

※ Ver.16
・説明のダイアログ表示のタイトル訂正
・DIC_MAP 関数を追加
・EV_INFO 関数に、appId オプション追加
・APP_URL, LOOKUP_GETID, RELATED_GETID 関数追加
・TABLE_DATA, TABLE_MAP, TPDIC 関数追加
　TABLE_DATA(TABLE_MAP(テーブル1,
　TPDIC("ドロップダウンT2",ドロップダウンT1, "数値T2",数値T1, "金額T2", 単価T1*数量T1)))
・desktop から不要な sweetalert2 ライブラリを削除
・プラグイン設定画面初期処理でエラー発生時に、ダイアログ表示するように変更

# 一括更新プラグインの応用例

- [rex0220 一括更新プラグイン 簡単設定例](https://qiita.com/rex0220/items/9d47dcc1728582ada54e)
- [rex0220 一括更新プラグイン 必須項目のチェック](https://qiita.com/rex0220/items/fb03715953e4ab996a0d)
- [rex0220 一括更新プラグイン チェックボックス・複数選択](https://qiita.com/rex0220/items/c61f59c0d82887d41557)
- [rex0220 一括更新プラグイン ルックアップ項目](https://qiita.com/rex0220/items/9e05c02f48f760eb3163)
- [rex0220 一括更新プラグイン ユーザー選択の更新](https://qiita.com/rex0220/items/af6ea2d1676b60d4d4a6)
- [rex0220 一括更新プラグイン 更新条件](https://qiita.com/rex0220/items/55d1d7d207969a2a08fb)
- [rex0220 一括更新プラグイン 項目の自動計算](https://qiita.com/rex0220/items/fe78b64caf4f596897db)
- [rex0220 一括更新プラグイン 計算式プラグイン連携](https://qiita.com/rex0220/items/287996d0b689e67db65f)
- [rex0220 一括更新プラグイン ユーザー選択にゲストユーザーを設定](https://qiita.com/rex0220/items/49ee13dc1aae47f37629)

# 一括更新プラグインの概要

- 一覧画面でレコードを選択して、一括更新のボタンをクリック
- 項目に値を入力して、「次へ」をクリック
- 必須項目エラー等があれば、エラー表示されます
- 項目確認画面で内容を確認し、「更新」をクリック
- 更新結果を確認します

![2023-08-11_17h18_44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/766921e9-e245-279f-6f58-b6e499419004.png)

# 操作例

![2023-08-11_18h57_39.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/adf98910-2335-9d0c-da12-c692220f7efb.gif)

# ルックアップ項目

ルックアップ項目は、「取得」ボタンでレコードを選択します。
![2023-08-11_19h02_18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/fd5eb227-9e64-6aab-d8bc-9f96630e549a.png)

# ユーザー選択、組織選択、グループ選択
入力エリアをクリックすると、ドロップダウン表示されますので、クリックして選択します。
文字を入力すると、名称・コードで絞り込みができます。
ドラッグアンドドロップで位置を変更できます。
※ユーザーが複数組織に所属している場合、「優先する組織」にのみ表示されます。
ユーザーが複数グループに所属している場合、先頭のグループにのみ表示されます。
![2023-08-11_19h07_54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/527d00ad-dbb3-6864-d7a8-a517b4668937.png)

- ユーザー選択、組織選択、グループ選択の操作例
![2023-08-11_19h11_17.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/ed3ec1a1-ea2e-2e94-89d5-573a0f4e2f9d.gif)

# 入力項目の初期値
項目ごとに、入力の初期値を設定できます。
![2023-08-11_20h41_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/020b6bdc-c291-d076-5247-95da79da3c8e.png)

- 入力項目の初期値設定例 計算式で初期値を設定できます。
![2023-08-11_20h42_37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/8b27f919-77b6-0ba3-1d4a-10f16f05d592.png)

# 計算式による自動計算
項目値を自動計算で設定可能です。
自動計算項目には、計算式を表示します。
![2023-08-11_20h48_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/585fe6de-d070-5fd9-4401-ff0fed14d0e3.png)

- 自動計算の計算式設定例
![2023-08-11_20h50_09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/25f05554-c40b-733f-525f-209369ae617f.png)

# 更新条件
計算式で、更新するレコードの条件設定が出来ます。
詳細画面の場合、更新条件によりボタン表示を行います。

![2023-08-11_21h48_55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/36b0414d-413c-5388-4499-467dfb58cd6d.png)

- 更新条件の設定例：顧客名が"ABC"のレコードのみを更新
![2023-08-11_21h49_36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/da4bdb21-9916-aef6-e32d-4c406a0a7499.png)

# 詳細画面での更新
詳細画面で、指定した項目の更新を行います。
更新条件を満たし、レコード更新権限がある場合に、更新ボタンが表示されます。

![2023-09-21_23h11_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/8017c2d1-d753-adc0-5910-b07225a144c4.png)


# プラグイン設定

- ヘッダー部
    - NOTE：　メモ
    - 説明：　プラグイン設定の概要等
    - プラグイン有効
    - 行制御：　行の複写・追加・削除ボタンを表示
    - 多言語：　ボタン名、概要の英日中の設定欄を表示
    - 権限：　ボタンを表示するユーザー・組織・グループ設定を表示
    - レコード選択：　一覧画面でレコード選択のチェック欄を表示
    - メニュー表示：　一覧画面で、ボタンの代わりにメニュー形式で表示
    - メニュー設定：　メニューに表示する名称を設定
- グリッド部
    - ボタン名：　一覧画面に表示するボタン・メニューを設定
    - 概要：　一括処理のダイアログに概要を表示
    - 一覧、詳細画面：　ボタンを表示する一覧画面、詳細画面を指定
    - 権限：　ボタンを表示するユーザー・組織・グループを指定時にチェック
    - 項目（計算式）：　一括処理を行う条件・項目・計算式を設定


![2023-08-11_21h52_38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/f0e75938-2f2b-0713-9270-cdc15602d20a.png)

## 行制御
行制御をチェックすると、複写・追加・削除のボタンが表示されます。
![2023-08-11_22h06_32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/3ef2847d-352c-56fe-7f78-2f90775cebd1.png)

行番号欄をドラッグアンドドロップして、位置を移動できます。
![2023-08-12_08h13_39.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/04335e34-38ae-bfb5-1a04-d231b33d6030.gif)

## 多言語
多言語をチェックすると、ボタン名、概要の英日中の設定欄が表示されます。
![2023-08-11_22h09_03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/1eae379c-1778-7330-7f79-85787d1cb587.png)

## 権限
権限をチェックすると、ボタンを表示するユーザー・組織・グループ設定を表示します。
セルをクリックすると、ドロップダウン表示されます。
選択肢が多い場合は、文字入力で絞り込みできます。
![2023-08-11_22h11_37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/073c595d-21ef-f950-4eb4-d8410507afdc.png)

## レコード選択
一覧画面でレコード選択のチェック欄を表示します。
![2023-08-11_22h19_08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/4adc73ce-3a06-082c-da76-53a549dd8bc3.png)

## メニュー表示
一覧画面で、ボタンの代わりにメニュー形式で表示します。
![2023-08-11_22h23_47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/8376a8e0-94f7-5c66-4fe5-5ee51844dfc9.png)

## ボタン名と概要
ボタン名と概要は、ダイアログで表示されます。
処理内容が分かりやすいように設定してください。
![2023-08-11_23h52_44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/73fbcc26-1754-032c-0248-5aa14bd4d9b6.png)

## ゲストユーザー設定

ゲストスペースにおいて、ゲストユーザーを権限やユーザー選択項目に指定する場合は、プラグイン設定でゲストユーザーの登録が必要です。
※REST API でゲストユーザーを取得できないため、マニュアルメンテが必要

- クリア：　すべてのゲストユーザーを削除
- リセットID：　現在の並び順で、ID を振りなおす
    - ID の順番に、ゲストユーザーの選択肢に表示される
- ＋：　1行追加

![2024-06-01_11h56_14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/fa48408f-f483-d22c-85e4-f559be1d19a4.png)

- ゲストメンバーの管理画面から、コピペできます

![2024-06-01_12h11_40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/7a8cda54-fa17-0336-1c53-b7dfe7f078a9.png)

## 一覧、詳細画面
一括更新ボタンを表示する一覧画面・詳細画面を制限する場合は、編集ボタンをクリックして、ボタンを表示する一覧をチェックしてください。
![2023-09-21_23h03_23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/d7393c12-d2b4-0348-fbe1-83290c29c1bf.png)


一覧設定のコピー＆ペースト：CTL+C(コピー)し、CTL+V(ペースト)
![2023-08-12_00h02_28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/f94015c6-1c88-9958-7d28-aa9f91699304.png)

## 権限
一括更新ボタンを表示するユーザー・組織・グループ設定
ゲストスペースアプリの場合は、ゲストユーザーを指定できます。

- ゲストユーザー
- ユーザー
- 組織
- グループ

ユーザー・組織・グループは、ドロップダウンから選択および名前・コードで絞り込みができます。
![2023-08-12_07h20_42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/67f4f353-7389-df61-84b0-cd1b00284d61.png)

権限の操作例
![2023-08-12_07h27_57.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/a557ae5f-00bd-28db-7ecb-993b7cf89e12.gif)

権限設定のコピー＆ペーストの操作例：CTL+C(コピー)し、CTL+V(ペースト)
![2023-08-12_07h34_12.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/bfe1e4c0-db6e-8826-58dd-0484e0d97729.gif)

## 項目（計算式）
編集ボタンをクリックすると、指定可能な項目が表示されます。
計算式は、[計算式プラグイン](https://qiita.com/rex0220/items/ae83c6d5ce50ff7a9a73)の関数が利用できます。

項目（計算式）のコピー＆ペーストの操作例：CTL+C(コピー)し、CTL+V(ペースト)
![2023-08-12_08h57_07.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/103bbb45-db50-d5a1-f895-7516aa95e82f.gif)

## 項目設定のダイアログ

- ヘッダー部
    - フィルタ：　項目を絞り込みます
    - 計算式プラグイン連携：　レコード更新時に、計算式プラグインの更新が行われます
    - 未使用項目削除：　設定行からチェック・計算式の指定が無い項目を削除します
不要項目がある場合は、削除して整理してください。
    - 全項目追加：　設定行へ使用していない全項目を追加します
- グリッド部
    - 入力：　入力項目をチェック。チェックが無い場合は、計算式による自動設定
    - 必須：　入力項目で入力を必須にする場合、チェック
    - 有効：　ダイアログ表示時に、項目チェックされ入力欄が有効になります
    - 計算式：　入力がチェックされている場合は、入力欄の初期値を計算式で設定。チェックが無い場合は、計算式による自動設定
    - オプション：　ユーザー選択項目で、ユーザーの選択肢を指定できます
    - 削除ボタン：　項目を削除します

![2023-08-12_07h40_15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/6588eed5-5a77-ab54-8182-0db7712af6fb.png)

- ユーザー選択のオプション指定例

一括更新時に、ユーザーの選択肢がオプションに指定したユーザーのみになります。
![2024-06-01_12h28_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/455725c5-197e-707b-84a6-8b8a40a57ae2.png)

項目設定と入力表示の例
![2023-08-12_08h04_42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/e6384a7f-f420-7acf-755d-32c47e9aa531.png)

- 項目のドラッグアンドドロップ
行番号欄をドラッグアンドドロップして、位置を移動できます。

![2023-08-12_08h42_37.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/ab25471d-f0ec-0168-46de-6423baa95aa1.gif)

- 項目の追加と削除
全項目を追加後、必要な項目にチェックして、未設定の項目を削除します。

![2023-08-12_08h47_12.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/fc105ae2-62f1-1afe-beb6-5b2dcc30c1e6.gif)

# 項目の入力設定

- 入力欄あり、入力必須、計算式による初期値表示：　入力必須で更新する項目
  入力チェック、必須チェック、計算式
- 入力欄あり、入力オプション、計算式による初期値表示：　入力オプションで更新する項目
  入力チェック、有効チェック、計算式
- 入力欄無し、計算式による自動計算：　自動設定で更新する項目
　計算式

![2023-08-12_08h04_42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/f0e606c4-d739-bb8f-390c-4a3f831a53a7.png)

## 入力欄の初期値設定
入力欄ありの項目に、計算式で初期値を設定できます。

- 文字列、ドロップダウン、ラジオボタン
    - 文字列を指定：　"テスト" 
- 数値
    - 数字を指定：　1000
- チェックボックス、複数選択
    - ARRAY 関数で、選択肢を指定：　ARRAY("sample1","sample2")
- 日付
    - 文字列を指定：　"2023-08-12"
    - 日付関数を指定：　TODAY()
    - 日付関数を指定：　DATE_ADD("TODAY",3,"day")
- ユーザー選択
    - ユーザーコードをARRAY 関数で指定：　ARRAY("usser1","user2")
- 組織選択
    - 組織コードをARRAY 関数で指定：　ARRAY("sales","dev")
- グループ選択
    - グループコードをARRAY 関数で指定：　ARRAY("group1","group2")

# 利用ライブラリ
・jQuery MITライセンス
・jQuery-UI MITライセンス
・momentjs  MITライセンス
・sweetalert2 MITライセンス
・FileSaver  MITライセンス
・zlib MITライセンス
・bignumber.js MITライセンス
・kintone-ui-component  MITライセンス
・selectize Apache-2.0 ライセンス
・idb ISCライセンス
・pqgrid 商用ライセンス

# 注意事項

- 既に、JavaScript によるカスタマイズを行っているアプリの場合、処理が競合して、エラーになる場合があります。その場合は、該当するアプリでプラグインの使用を中止してください。
- アプリ毎に 10,000 回/日のAPI 発行回数の制限があります。20 万件の一括更新を行うと、約2,400回の API 発行回数になります。10,000 回/日の制限値を超えないように運用してください。