ロール/公開グループにおける制限

RaySheetではロール/公開グループによるビューやRaySheetPageの共有が可能です。そのために、ロール/公開グループの情報(存在するロール/公開グループやその階層構造、所属するユーザー)を関係するオブジェクトから取得します。

一方で、Salesforceには「SOQL クエリによって取得されるレコードの合計数の上限が50,000レコード」というApex ガバナ制限が存在します。

取得するロール/公開グループの情報が50,000レコード以上か近い場合、その他のRaySheetで使用するレコードと合わせて50,000レコードを超える場合があります。もし50,000レコードを超えた場合、以下に示す制限があります。

制限:

  • RaySheetアプリ/RaySheetPageAura/どこでもViewの場合

いくつかの共有ビュー/フォルダ(※)に対して共有されたユーザーは新規作成や設定変更およびユーザーごとのビューの表示調整を行うことができません。ビューとフォルダ、ユーザーごとのビューの表示調整の保存処理が行われるタイミングでエラーが発生します。

(※)レコードの合計数の上限である50,000レコード以内で、ロール/公開グループの情報を取得できたビューとフォルダについては新規作成や設定変更を行うことができます。どのロール/公開グループの情報を取得できたかについては、Salesforceから取得できるレコードの順番やRaySheet内部処理によるため、どのビューとフォルダが対象になるかは不定です。

・共有ビュー/フォルダの所有者は問題なく新規作成や設定変更およびユーザーごとのビューの表示調整を行うことができます。
・ビューで表示しているオブジェクトの表示や更新は行えます。例えば、取引先オブジェクトのビューを表示している場合に取引先オブジェクトのレコードへの更新を行うことはできます。

  • RaySheetPageLWCの場合

RaySheet自体を使用することができません。RaySheet起動時にエラーが発生します。

制限の発生条件:

取得するロール/公開グループの情報が50,000レコード以上か近い場合にこの制限が発生します。以下のSOQLを実行して取得できるレコード数の合計を目安としてください。

SELECT count() FROM UserRole
SELECT count() From GroupMember WHERE UserOrGroupId IN (SELECT Id From Group)
SELECT count() FROM Group WHERE Type LIKE 'Regular'
SELECT count() FROM Group WHERE Type LIKE 'Role%'

回避策:

制限を回避するためには、ロール/公開グループに関係するオブジェクトの合計を50,000レコードよりも少ない状態に保つ必要があります。特に以下の2つのオブジェクトについては、レコード数が多くなりやすい傾向にあるため注意が必要です。

  • Groupオブジェクト
    • ロール/公開グループを作成するとこのオブジェクトにレコードが作成されます。特にロールについては、一つのロールに対して複数のレコードが作成されます。そのため、作成したロール/公開グループ以上のレコードが存在することになります。
  • GroupMemberオブジェクト
    • このオブジェクトにはロール/公開グループに所属するユーザーまたは下位のロール/公開グループがレコードとして存在します。例えば、100の公開グループにそれぞれ100ユーザーが所属していた場合、このオブジェクトには100 × 100 = 10,000レコード存在することになります。
Copyright © 2024 MESCIUS inc. All rights reserved.