SharePointリストへ値を登録(変更)する際はアイテム数に比例して更新作業が煩雑になります。
私が直面した課題では10,000件以上のアイテムがあるリストに新たな列を追加し、それらすべてのアイテムに値を登録する必要がありました。
しかし、膨大なアイテムに一つ一つ手作業で値を登録するのは時間を要するだけでなく、登録ミスのリスクも高まります。
そこでこの作業を自動化できないかと考え、Power AutomateでSharePointリストのアイテムを一括更新してみました
Power Automateフローの全体像
今回作成するPower Automateフロー(以下フロー)の全体像です。
SharePointリストのサンプル
列「タイトル」、列「ラベル」、列「subID」が含まれるリストを使用します。
アイテム数は2,000件を超えています。
フローの作成手順
1. Power Automate (https://make.powerautomate.com/) を起動し、メニューの「作成」から「インスタント クラウド フロー」 を選択します。
2. 任意のフロー名を入力し、トリガーを選択した後、[作成]ボタンをクリックします。今回は手動でフローを起動させるため、「フローを手動でトリガーする」を選択します。
3. SharePointの「複数の項目の取得」アクションを追加します。
設定値は以下のとおりです。
No. | 設定項目名 | 設定値 | 備考 |
---|---|---|---|
① | サイトのアドレス * | SharePointサイトを選択 | 必須 |
② | リスト名 * | SharePointリストを選択 | 必須 |
③ | フィルター クエリ | ID ge 1 and ID le 2000 | ※1 |
④ | 並べ替え順 | ID asc | IDの昇順 |
⑤ | 上から順に取得 | 2000 |
【解説】
※1 SharePoinrリストのIDが1~2000のアイテムを対象とします。
Power Automateで一度に更新できるアイテム数の上限が2,000件であるため、このような条件を設定しています。
例えばアイテム数が3,000件ある場合は、フローを2回に分けて実行する必要があります。2回目のフロー実行前にフィルター クエリの設定値を「ID ge 2001 and ID le 3000」に変更します。
(アイテム数が2,000件以下の場合はフィルター クエリを設定する必要はありません)
6. 「それぞれに適用する」アクションを追加すると、アクション名「Apply to each」が表示されます。
「動的なコンテンツ」から「複数の項目の取得」のvalueを選択します。
7. Apply to each内の「アクションの追加」から、SharePointの「項目の更新」アクションを追加します。
設定値は以下のとおりです。
No. | 設定項目名 | 設定値 | 備考 |
---|---|---|---|
① | サイトのアドレス * | SharePointサイトを選択 | 必須 |
② | リスト名 * | SharePointリストを選択 | 必須 |
③ | ID | 複数の項目の取得「ID」を選択 | 必須 |
④ | (リスト項目) | 更新したいリスト項目に、任意で値を設定 ※ |
※例として、今回は列「ラベル」に”更新”というテキスト、列「subID」にIDを設定しました。
値を空白にしたい場合は、式に「null」を設定することで、登録されている値を一括で削除することが可能です。
設定は以上です。
動作確認
2. フローの実行履歴を確認します。
フローが成功するまで15分弱要したことが確認できます。更新するアイテム数が多い場合、処理時間が長くなることがあります。
3. SharePointリストを確認します。
設定した内容のとおり、列「ラベル」と列「subID」が2,000件目のアイテムまで更新されており、2,000件目以降は更新されていないことが確認できました。
まとめ
本記事ではSharePointリストアイテムの特定の列に対して、設定した値を一括で登録/更新する方法について解説しました。
アイテムの値をすべて空白にする場合や、条件を指定して対象のアイテムだけを更新したい場合などに活用してみてはいかがでしょうか。
さいごに
テンダでは、「こんなプロジェクトに挑戦したい」「こんなチームで働きたい」「理想のチームを創りたい」と願う仲間を求めています。
カジュアル面談も随時受付中です。ぜひ一度お話ししましょう