Rhea's Mistep

Rhea's Mistep

「IT×語学力」を軸に奮闘する文系SE。IT関連、語学、海外などの情報をゆるゆる綴っていきます。

【PowerApps&PowerAutomate】Sharepointリストのアイテムを消す

今回やりたいこと

操作概要

対象のSPOリスト

今回はMicrosoft Power Apps(以下PowerApps)に、Microsoft Power Automate(以下PowerAutomate)を使って、Share Pointリスト(以下SPOリスト)にあるアイテムを削除するロジックを埋め込みます。

操作の流れ
  1. (PowerApps)担当を選択
  2. (PowerApps)削除ボタンをクリック
  3. (PowerAutomate)削除フローが自動で起動
  4. (SPOリスト)PowerAppsで選択された担当のタスクがすべて削除

ロジック概要

以下、アプリ実装のためにすることをツールごとにまとめてみました。

PowerApps
  1. ドロップダウンの挿入(Itemsにロジックの記入)
  2. ボタンの挿入(OnSelectにロジックの記入)
PowerAutomate
  1. PowerAppsをトリガーとして設定
  2. 担当を変数として初期化
  3. SPOリストのGet Itemsを挿入
  4. ApplyToEachの設定
  5. ApplyToEachの中にSPOリストのDelete Itemsを設定

なぜPowerAutomateを使うのか?

バックグラウンド処理が出来るからです。今回の処理は、PowerAppsのRemoveIf関数で代替出来てしまいます。しかし、以下の場合はフリーズ長い待ち時間を招く可能性が大きいです。

  • 削除するデータが大量にある場合
  • 削除するデータの条件が複雑な場合

そのため、どちらかに当てはまった場合は、PowerAutomateをおすすめします。

実際に作成する

PowerAppsの作成

作成後のPowerApps



PowerAppsでCanvasアプリを作成し、ドロップダウンボタンを挿入します。上記のように、ドロップダウンにはSPOリストで作成した担当の名前が選択可能。Deleteボタンで、選択済みの担当のタスクをSPOから削除します。

ドロップボックスの挿入

挿入→検索:ドロップダウン→ドロップダウン」を辿り、画面にドロップダウンを配置します。SPOリストの担当をドロップダウンの選択肢にするには、以下のコードを記入します。(参考:Microsoft Learn

ドロップダウン - Items

Choices([@SPOリストの名前].列項目)

ボタンの挿入

挿入→ボタン」を辿り、画面にボタンを配置します。ボタンを押した瞬間にフローが走るように、以下のコードを記述します。

ボタン - OnSelect

フローの名前.Run(ドロップダウンの名前.SelectedText.Value)

PowerAutomateの作成

作成後のPowerAutomate

PowerAutomateフローでは、変数の初期化SharePointApplyToEachを挿入します。まずは、PowerAppsから変数に名前が格納され、変数の値と一致するSPOリストの絞り込み。ApplyToEachで絞り込んだSPOを1行ずつ削除します。

PowerAppsをトリガーとして設定

PowerAppsからフローを作成

PowerAppsの左側のバーから、PowerAutomateフローを新規作成できます。「フローを新規作成する→Create from blank」を順にクリック。PowerAppsがトリガーとして設定された新しいフローが作成されます。

担当を変数として初期化

変数の初期化

New Stepを押して、”Initialize variable”を選択します。PowerAppsから値を渡したいので、"Ask in PowerApps"を選択。PowerAppsのOnSelectに設定したコードの引数が、変数として格納されます。

SPOリストのGet Itemsを挿入

リストの取得

New Stepを押して、Share Point"Get Items"を選択します。"Site Address"と"List Name"はドロップダウンから選択。

"Filter Query"でPowerAppsで渡した値を絞りこみます。例えば、ドロップダウンで「母」を選択した場合、PowerAutomateに渡されるレコードは、担当列が「母」のみのレコードです。

ポイント

列の名前を日本語で設定した場合は、"OData_内部ID"

ApplyToEachの設定

ApplyToEach

New Stepを押して、"ApplyToEach"を選択します。"Value"と設定している値は、"Get Items"で取得したSPOリストを示しています。

ApplyToEachの中にSPOリストのDelete Itemsを設定

"ApplyToEach"の内部にある"Add an action"をクリックして、Share Point"Delete Items"を選択します。"Get Items"と同様に、"Site Address"と"List Name"はドロップダウンから選択。"id"には、"ID"を設定して完了です。

フローの結果

担当が「」になっているレコードを削除します。

PowerAppsのドロップダウンで「」を選択。Deleteボタンを押します。すると、以下のように「母」のレコードがすべて削除されました。

「母」のレコードが削除されている

お疲れ様でした!