【PowerApps&PowerAutomate】Sharepointリストのアイテムを消す
今回やりたいこと
操作概要
今回はMicrosoft Power Apps(以下PowerApps)に、Microsoft Power Automate(以下PowerAutomate)を使って、Share Pointリスト(以下SPOリスト)にあるアイテムを削除するロジックを埋め込みます。
- (PowerApps)担当を選択
- (PowerApps)削除ボタンをクリック
- (PowerAutomate)削除フローが自動で起動
- (SPOリスト)PowerAppsで選択された担当のタスクがすべて削除
ロジック概要
以下、アプリ実装のためにすることをツールごとにまとめてみました。
PowerApps
- ドロップダウンの挿入(Itemsにロジックの記入)
- ボタンの挿入(OnSelectにロジックの記入)
PowerAutomate
- PowerAppsをトリガーとして設定
- 担当を変数として初期化
- SPOリストのGet Itemsを挿入
- ApplyToEachの設定
- ApplyToEachの中にSPOリストのDelete Itemsを設定
なぜPowerAutomateを使うのか?
バックグラウンド処理が出来るからです。今回の処理は、PowerAppsのRemoveIf関数で代替出来てしまいます。しかし、以下の場合はフリーズや長い待ち時間を招く可能性が大きいです。
- 削除するデータが大量にある場合
- 削除するデータの条件が複雑な場合
そのため、どちらかに当てはまった場合は、PowerAutomateをおすすめします。
実際に作成する
PowerAppsの作成
PowerAppsでCanvasアプリを作成し、ドロップダウンとボタンを挿入します。上記のように、ドロップダウンにはSPOリストで作成した担当の名前が選択可能。Deleteボタンで、選択済みの担当のタスクをSPOから削除します。
ドロップボックスの挿入
「挿入→検索:ドロップダウン→ドロップダウン」を辿り、画面にドロップダウンを配置します。SPOリストの担当をドロップダウンの選択肢にするには、以下のコードを記入します。(参考:Microsoft Learn)
ドロップダウン - Items
Choices([@SPOリストの名前].列項目)
ボタンの挿入
「挿入→ボタン」を辿り、画面にボタンを配置します。ボタンを押した瞬間にフローが走るように、以下のコードを記述します。
ボタン - OnSelect
フローの名前.Run(ドロップダウンの名前.SelectedText.Value)
PowerAutomateの作成
PowerAutomateフローでは、変数の初期化・SharePoint・ApplyToEachを挿入します。まずは、PowerAppsから変数に名前が格納され、変数の値と一致するSPOリストの絞り込み。ApplyToEachで絞り込んだSPOを1行ずつ削除します。
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の設定
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ボタンを押します。すると、以下のように「母」のレコードがすべて削除されました。
お疲れ様でした!