はじめに
以下のように、担当者とは別に共同担当者を設定し、Power Apps のアプリ上、自分が担当者の場合、もしくは、自分が共同担当者に入っている場合、データを参照したり編集できるようにしたいケースあると思います。
この際、共同担当者は案件により人数が変わるかもしれないため、ユーザーまたはグループ列で複数選択を許可します。
この際、Power Apps 側でフィルターするアプローチについて、悩まれる方もいると思うため、方法を整理しておこうと思います。
アプローチ
まず、以下のようなイメージになるかなということで、式を書いてみましたが、共同担当者.Email といった感じで指定することができませんでした。ユーザーまたはグループ列で複数選択を許可すると Power Apps での扱いが少し難しくなります。
イメージとしては、ユーザーまたはグループ列で複数選択を許可すると、イメージとしては以下のような構造で、ユーザーに関する複数の情報を持つことになります。
解決策は以下のような感じです。
まず、以下のようにして、SharePoint リストの情報をコレクションに格納し、複数行ある共同担当者の Email 列だけ取り出して、Concat 関数で一つの文字列にします。一つの文字列にするにあたって、今回は、カンマ (,) で結合しています。そして、その文字列を AddColumns 関数で新しい列 (共同担当者Email) に代入します。
共同担当者Email という新しい列は、アドレス1,アドレス2 といった文字列になります。
そして、作成されたコレクションに対して以下のような式でフィルターをします。
共同所有者Email はアドレスが結合された文字列のため、その文字列に自分のメールアドレスが入っているか in 演算子で判定します。
こちらで、ユーザーまたはグループ列 (複数選択を許可) である、共同担当者列に自分が含まれているデータをフィルターして表示することができました。