メンバークエリの作成とテスト
このドキュメントでは、メンバークエリを作成してテストし、適切なユーザーが返されることを確認する方法について説明します。
始める前に
次の作業を実施した後、このページの内容に進んでください。
- Groups API の概要を確認する。 
- 動的グループの概要を確認する。 
クエリの作成とテスト
メンバークエリは target_field condition の形式で、Common Expression Language(CEL)の式として構成されます。使用可能な User リソース フィールドのリストについては、動的グループの有効なユーザー属性をご覧ください。
サンプルクエリ
次の例は、exists() CEL 関数を使用して、user.addresses フィールドの特定の値を確認する方法を示しています。
user.addresses.exists(ad, ad.locality=='Sunnyvale')
exists() マクロは、タイプリスト項目用のメンバークエリを作成するために使用されます。
1 つのリスト項目で、(建物の)area と building_id の 2 種類の値を確認する例を次に示します。
user.locations.exists(loc, loc.area=='Sunnyvale' && loc.building_id=='Building 1')
次の例は、特定の組織部門に属するユーザーを検索する方法を示しています。
- 特定の組織部門に直接的に属するすべてのユーザー:
user.org_unit_id==orgUnitId('03ph8a2z1enx4lx')
- 特定の組織部門に直接的または間接的に属するすべてのユーザー:
user.org_units.exists(org_unit, org_unit.org_unit_id==orgUnitId('03ph8a2z1khexns'))
user.name.value.equalsIgnoreCase('jOhn DoE')`
クエリでの否定
メンバークエリでは、NOT ! 演算子を使用して、特定の属性を持つユーザーを除外できます。次に例を示します。
- 特定の組織部門に属していないすべてのユーザー: - !(user.org_unit_id==orgUnitId('03ph8a2z1enx4lx'))
- Marketing組織に属していないすべてのユーザー:- !user.organization.exists(org, org.title = "Marketing")
NOT 演算子 ! と exists() マクロの一部の組み合わせはサポートされていません。
- exists()マクロを使用して、内部に AND- &&演算子を使用する NOT- !クエリ:- !user.organization.exists(org, (org.title == "Cloud" && org.department == "Sales"))
- exists()マクロを使用して、内部に NOT- !演算子を使用するクエリ:- user.organization.exists(org, (org.title == "Cloud" || !(org.department == "Sales")))
メンバークエリのテスト
メンバークエリをテストするには、簡単なクエリビルダーが使用できます。プルダウン メニューとテキスト フィールドを使用して、クエリを入力してテストできます。メンバークエリが正しい結果を返すことを確認したら、グループ API を使用して、対応する CEL クエリを作成できます。
カスタム ユーザー属性
カスタム ユーザー属性は、カスタム スキーマがすでに user.custom_schemas に存在する限り、動的グループクエリで使用できますが、単純なクエリビルダーのプルダウンではサポートされません。カスタム ユーザー属性のクエリをテストするには、CEL クエリ形式で直接 [クエリ(CEL)を入力] テキスト ボックスに入力します。カスタム スキーマのサンプルは次のようになります。
{
  "schemaName": "employmentData",
  "fields": [
    {
      "fieldName": "EmployeeNumber",
      "fieldType": "STRING",
      "multiValued": "false"
    },
    {
      "fieldName": "JobFamily",
      "fieldType": "STRING",
      "multiValued": "true"
    }
  ]
}
単一値フィールド
user.custom_schemas.employmentData.EmployeeNumber == 'value'
複数値フィールド
user.custom_schemas.employmentData.JobFamily.exists(fld, fld == 'value')
次のステップ
メンバークエリのテスト後は、グループの作成で使用できます。詳細については、動的グループの作成をご覧ください。