今回はPower Automate クラウドフローを使って、重複データの入力を防ぐ仕組みをご紹介します。
例えば、SharePointリストをマスタのデータベースとして使用している場合、重複する値があると困りますよね。SharePointリストに重複データが登録された際にTeamsに通知する仕組みを作りました。
SharePointリストで重複を防ぐ方法もある
そもそもSharePointリストには重複データの入力をブロックする仕組みがあります。
SharePointを開いて「リストの列の設定」から、重複を防ぎたい列を選択します。
そして、「固有の値を適用する」を「はい」にします。これで「はい」にできるのであればわざわざPower Automateフローをつくらなくても解決します。

重複する値を許可しないように設定することで、登録する時点で注意喚起してくれます。
そのような機能があるのに、なぜわざわざPower Automate を使用しているのか。
それは、SharePointリストのしきい値を超えてしまいSharePointリストが本来持っている仕組みを使えなくなってしまったためです。「固有の値を適用する」を選択するとエラーが出てしまいます。これはアイテム数が7,000件くらいあるリストです。運用を始めてみたら、「やっぱりこの列は重複させたくない」とあとから気づいてしまったのです。

そもそもデータベースを作った時に重複データを入力できないように制御を設定すべきですので、早めに気づいた方はSharePointリストの機能を使ってくださいね。
トリガーは「項目が作成されたとき」、次に「複数の項目の取得」を選択する
早速内容に入ります。
まずはPower Automate クラウドフローを開いてください。トリガーは自動化されたフローを選択します。
そして、項目が作成された時を選択します。

ここで、重複データの入力を防ぎたいリストを選択してください。
次に、複数の項目の取得を選択します。そして、フィルタークエリに重複させたくない列をイコールでフィルターします。フィルタークエリに関して知りたい方は、こちらのURLから記事を読んでください。(URL)

変数を初期化する
ここで変数の初期化をします。
名前に「length(長さ)」を入れて、種類を「整数」にします。値は下記の式を入れます。
length(outputs('複数の項目の取得')?['body/value'])

これで重複の値があると2という値が入ります。次に条件を入れます。

「値の選択」には、「length」を入れます。1よりも値が大きい場合は「はい」という流れにします。
このあとはTeamsに通知するなどのアクションを選択できればOKです。(今回は割愛します)
さいごに
うまく変数を使わないとTeamsに2件通知が飛ぶと思います。通知件数を1件にする方法は、下記の記事でご紹介します。
この記事の内容でわからないことがあれば、Power Automateクラウドフローの基本について過去に記事を書いていますので、こちらもご参考にしてください。