行ごとに複数のメールアドレスでフィルタする

メールアドレスによるフィルタは、ログインしている閲覧者のアドレスと、有効なメールアドレスを含むデータソースのフィールドを比較することによって行われます。フィルタは、データの各行について、閲覧者のメールアドレスがその行のアドレスと一致するかどうかを確認します。

次のようなデータがあるとします。

メール データ
alan@example.com abc
mary@example.com cde
alan@example.com efg
mary@example.com ghi

このデータをメールアドレスでフィルタし、ユーザー alan@example.com がフィルタされたレポートを表示すると、このユーザーにはデータ abcefg のみが表示されます。別のユーザー mary@example.com が同じレポートを表示すると、このユーザーにはデータ cdeghi が表示されます。

この方法は、閲覧者とデータが 1 対 1 の関係にある場合に有効です。では、ユーザー manager@example.com にもデータを表示したい場合はどうすればよいでしょうか。つまり、複数のデータ行を、複数のユーザーに表示したい場合です(多対多の関係)。

メールによるフィルタは行ごとに 1 つのアドレスに対してのみ機能するため、メール フィールドにメールアドレスのリストを含めることはできません。たとえば、次のように メール フィールドにメールアドレスのリストを含めても機能しません。

メール データ
alan@example.com, manager@example.com, vp@example.com, bigwig@customer.com abc

ソリューション: データの統合を使用する

共通のフィールドを結合キーとして使用してメールアドレスのテーブルとデータを統合することによって、メールアドレスとデータの間に多対多の関係を作ることができます。

果物店の例

あなたは、果物を生産する会社を経営しており、営業担当者がそれぞれの担当している複数の果物店での営業成績を自身で確認できるようにしたいと考えています。複数の営業担当者が複数の店舗を担当できます。営業担当者が自分のデータのみを表示できるようにデータをフィルタするには、次の操作を行います。

ステップ 1: アクセス制御リストのテーブルを作成する

このステップでは、アクセス権を与える営業担当者のメールアドレスと、データ統合の結合キーとして使用するデータ フィールド(果物店の名前)を対応させた、アクセス制御リスト(ACL)のテーブルを作成します。

営業担当者のメールアドレス 結合キー
salesrep1@example.com 果物店 A
salesrep2@example.com 果物店 A
salesrep1@example.com 果物店 B

salesrep2@example.com

果物店 C

アクセス制御リスト(ACL)のテーブル

ユーザー salesrep1@example.com は果物店 A と果物店 B のデータを表示できますが、ユーザー salesrep2@example.com は果物店 A と果物店 C のデータを表示できます。

ステップ 2: データテーブルを作成する

データテーブルは、営業担当者による各果物店への販売数を記録したものです。

果物店 果物 セールス
果物店 A リンゴ 50
果物店 A バナナ 26
果物店 A オレンジ 20
果物店 A 93
果物店 B リンゴ 98
果物店 B バナナ 86
果物店 B オレンジ 7
果物店 B 85
果物店 C リンゴ 21
果物店 C バナナ 61
果物店 C オレンジ 3
果物店 C 78

データテーブル

ステップ 3: ACL テーブルにメールフィルタを適用する

ACL テーブルにメールフィルタを適用する手順は次のとおりです。

  1. ACL テーブルのデータソースを編集します。
  2. [メールアドレスでフィルタ] をクリックします。
  3. フィルタの [営業担当者のメールアドレス] フィールドを選択します。

ステップ 4: ACL テーブルとデータテーブルを統合する

最後に、ACL テーブルとデータテーブルを統合します。営業担当者のメールアドレスをデータテーブルに列として効果的に追加するには、データテーブルから始めて ACL テーブルを左結合します。

メールフィルタを適用しないと、両方の営業担当者のレコードがすべて表示されます。一方、メールフィルタを適用して ACL テーブルとデータテーブルを統合すると、レポートを閲覧している営業担当者が誰であるかによってデータがフィルタされます。各営業担当者がレポートを表示すると、次のようになります。

営業担当者 1 には次のように表示されます。

データ 果物 セールス
果物店 A リンゴ 50
果物店 A バナナ 26
果物店 A オレンジ 20
果物店 A 93
果物店 B リンゴ 98
果物店 B バナナ 86
果物店 B オレンジ 7
果物店 B 85

営業担当者 2 には次のように表示されます。

データ 果物 セールス
果物店 A バナナ 26
果物店 A オレンジ 20
果物店 A リンゴ 50
果物店 A 93
果物店 C バナナ 61
果物店 C オレンジ 3
果物店 C リンゴ 21
果物店 C 78