クエリ前ビジネスルール

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:4分
  • クエリ前ビジネスルールを使用して、インスタンスでデータ分離をサポートすることができます。ドメインセパレーションをサポートする ServiceNow アプリケーションは、データとデータルーティングの分離のみをサポートするか、高度なビジネスロジック分離機能があるか、アプリケーションのテナント (顧客) レベルの管理をサポートする可能性があります。

    クエリ前ビジネスルールは、ドメインセパレーションされた環境内でデータ分離をサポートするために使用する補足コードです。

    警告:
    ドメインセパレーションプラグインの代わりにクエリ前ビジネスルールを使用しないでください。このビジネスルールは、プラグインほど安全にデータ漏洩を防止しません。

    データ分離のためのクエリ前ビジネスルールの使用

    次の状況では、クエリ前ビジネスルールをデータ分離と併用できます。
    • ドメインセパレーションが ServiceNow アプリケーションでサポートされておらず、サービスプロバイダー組織外の 1 人以上の外部顧客にテーブルまたは行へのアクセスを許可または制限する必要がある場合。
      注:
      開発を開始する前に、その製品のアプリケーションロードマップについて ServiceNow カスタマーサポートにお問い合わせください。ドメインサポートの改善が今後のリリースで計画されている可能性があります。
    • テーブルがドメインセパレーションされていても、システム内の一連のドメインにのみ適用される特定の条件に基づいて、その行へのアクセスを許可または制限する必要がある場合。
      注:
      たとえば、X ドメインの顧客にはそのドメインをサポートする複数のベンダーがあり、それらのベンダーには、割り当てられたレコードのみを表示するためのアクセス権が付与されます。

    クエリ前ビジネスルールを作成する前の考慮事項

    ユーザー情報、グループメンバーシップ、会社、ロール、またはレコード固有のフィールド条件の組み合わせに基づいて、クエリ前ビジネスルールをスクリプト化して、親テーブルと子テーブルにアクセスできないようにすることができます。クエリ前ビジネスルールは個別のドメインに配置され、ドメイン階層の特定の分岐にグローバルに適用されるように作成されます。
    • 可能な場合は、適用されるユーザーに対してのみルールが実行されるように、ドメイン階層のできる限り低いところでクエリ前ビジネスルールを作成します。
    • ビジネスルールが実行されないシナリオや、ユーザーがトリガーしたインタラクションが実行するビジネスルールをトリガーしないシナリオが存在することを理解してください。たとえば、[ビジネスルールを実行] がオフになっている変換マップがある場合、またはワークフローが無効になっているスクリプトがある場合、ビジネスルールは実行されません。
    • 必ず条件フィールドを入力して、ルールを実行するタイミングを指定します。たとえば、ビジネスルールをドメイン内の特定のベンダーにのみ適用するかどうかを指定できます。
      警告:
      ビジネスルール (特にクエリービジネスルール) を設計およびコーディングするときは、OR 句とインデックスのないフィールドの検索を制限します。インデックス化されていないフィールドで OR 句や検索が多すぎると、クエリが遅くなったり、インスタンスのパフォーマンスに影響したりする可能性があります。
    • クエリ前ビジネスルールは必要な場合にのみ使用します。クエリ前ルールが多すぎると、インスタンスのパフォーマンスに影響を与える可能性があります。

    クエリ前ビジネスルールは、アクセス制御リスト (ACL) の前に実行され、全体的なパフォーマンスを向上させます。これは、システム内の複数のドメインにアクセスできるサービスプロバイダー (SP) 環境のユーザーに返される結果を制限する場合に特に当てはまります。
    注:
    データのフィルタリングは (ACL とは異なり)、データのやり取りをするときに「データセキュリティは….を制限します」というメッセージが表示されないユーザーにとって透過的になります。

    クエリ前ビジネスルールと ACL を使用しない場合

    クエリ前ビジネスルールと ACL を使用して顧客データを分離する場合は注意してください。ビジネスルールと ACL の両方を使用して、カスタマイズを作成し、それを維持する必要があります。カスタマイズはパフォーマンスの問題を引き起こす可能性があります。開発チームは、システムが壊れないようにプロセスを作成する必要があります。

    ドメインセパレーションは、広くサポートされているフレームワークである現在のドメインパスクエリー方法 (v3) を使用して、スケーラビリティとガバナンスの両方を提供します。ServiceNow プラットフォームチームとアプリチームは、フレームワークを維持する責任を負い、顧客の負担を軽減します。

    多くのインスタンスで多数の顧客を持つ企業では、クエリ前ルールと ACL を過度に使用すると、データベースクエリのパフォーマンスが低下する可能性があります。

    ドメインセパレーションを有効にする方法

    ServiceNow プラグインを使用してドメインセパレーションを有効にできます。製品マネージャーが機能を管理し、開発チームが製品マネージャーをサポートします。ServiceNow リリースには、ドメインセパレーション機能の拡張と修正が含まれています。インスタンスオーナーは、ドメインセパレーションのサポートについて、https://support.servicenow.comサービスポータル など、カスタマーサービス & サポートリソースを参照できます。