SharePointリストのアイテムをゴミ箱に入れずに削除する方法を紹介していきます。
HTTPアクションで削除する方法を紹介していきます。
目次 閉じる
項目の削除ではなく、HTTPアクションを利用する
SharePointリストのアイテムを削除するのであれば、通常の「項目の削除」というアクションで機能としては十分そうに見えます。
「項目の削除」ではSharePointのゴミ箱に収納され、大量のアイテムを削除するとゴミ箱が圧迫されてしまいます。それを回避するためにHTTPアクションで削除する必要性が発生し、対応しました。
全体の流れ
複数の項目の取得
SharePointのリストの削除する項目を取得します。
SharePoint に HTTP 要求を送信します(Apply to eachで繰り返し)
「SharePoint に HTTP 要求を送信します」で取得した削除する項目を削除します。
解説
解説
削除したいリストのアイテムを取得します。必要に応じて、フィルタークエリ等を使って削除したいアイテムだけに絞っておきます。
削除したいサイトのアドレスを指定し、方法は「DELETE」を選択。
URIには下記を指定します。
Pwoer Automate
_api/web/lists/getbytitle('【リストID】')/items('【アイテムID】')
その下のヘッダー部分には下記を入力します。
Pwoer Automate
{ "Accept": "application/json;odata=verbose", "Content-Type": "application/json;odata=verbose", "If-Match": "*", "": ""
}
質問があります。
アイテムではなく、フィールドを削除する場合も同じような手順で可能でしょうか。
はい、フィールドを削除する場合も同様です。
URIの部分リストIDまでにすれば、フィールドを削除できます。
お返事ありがとうございます。
とすると、URIは「_api/web/lists/getbytitle(‘【リスト名】’)/fields(‘【フィールドID】’)」となるように思ったのですが、フィールドIDはどこを参照すればわかるでしょうか?
基本的な質問ばかりですみません。
よろしくお願いいたします。
すみません、フィールドを勘違いしていました。
SharePointリストの列のことでしょうか。
列のIDはこちらの記事が参考になるかと思います。
https://jpdynamicscrm.github.io/blog/powerautomate/Look-up-internal-column-names-in-SPO/
ただ、フィールドの削除はPower Automateからは難しいかもしれません。
Azure上でアプリを登録し、アクセストークンを発行すれば可能かもしれません。
また、Power Automateを使ってSharePointリストのフィールドを削除するシチュエーションが思い浮かばないのですが、定期的に実行するようなもので無ければ手動削除でも良いのかもしれません。
ありがとうございます。
内部列名がフィールドIDなのですね。
パワーオートメイトからは難しいとのことで、一度試してみてできなければ、別の運用を考えてみます…
シチュエーションとしては、
リストテンプレートにある「承認付き出張申請」リストの承認機能(approve status列をクリックすると承認アプリと連携して承認申請ができる)をカスタマイズし、ひながた化して組織内で共有したいのですが、
自分でカスタマイズしたリストを、「既存のリストから作成」機能を利用して作り直すと、承認機能が利用できなくなる(approvestatusが単なる整数列として作成されてしまい、承認アプリと連携できない)ことから、パワーオートメイトで元の「承認付き出張リスト」から不要な列を削除し、必要な列を作成することで、擬似的なテンプレートとして利用しようとした次第です。