カスタムテーブルをドメインセパレーションする

  • リリースバージョン: Zurich
  • 更新日 2025年07月31日
  • 所要時間:4分
  • 個別のドメインにカスタムテーブルを作成する必要がある場合があります。このトピックでは、カスタムテーブルのドメインセパレーションの背後にある手順と概念の両方について説明します。

    1. sys_domain フィールドを作成します。

    注:
    システムテーブルまたはテーブルが ドメインセパレーションプラグインによってドメインセパレーションされていない場合は、ドメインセパレーションしないことをお勧めします。
    これらのポイントを指針として使用して、sys_domain フィールドを作成します。
    • 新しいフィールドを domain_id タイプとして作成します。
      • 列名:sys_domain
      • その他の属性:自動的に定義
    • sys_domain_path が自動的に作成されます。

    列名「sys_domain」は ServiceNow AI Platform で予約されています。これは、システムがこれを認識し、適切なフィールドタイプと属性を自動的に適用することを意味します。この自動構成では、対応する sys_domain_path フィールドも作成されます。

    • ラベルを使用するのではなく、列名を「sys_domain」に設定します。
    • ドメインセパレーションはすべてのテーブルに適しているわけではありません。一般に、テーブルがベースインスタンスの一部であり、そのテーブルに sys_domain フィールドがない場合は、そのままにしておく必要があります。

    「sys_domain」という domain_id タイプのフィールドを作成すると、sys_domain フィールドが自動的に作成されます。

    2. ドメインを設定するビジネスルールを追加します。

    ビジネスルールなし
    ドメインは、レコードを作成するユーザーの現在のドメインに設定されます。
    ビジネスルールあり
    ドメインは、通常は [会社] フィールドに基づいて、スクリプト化されたロジックを使用して割り当てられます。

    sys_domain フィールドに加えて、カスタムテーブルには、ドメインフィールドの値を設定するドメイン - ドメインを設定 - タスクに似たビジネスルールが必要です。さらに、最初のルールがドメインの割り当てに失敗した場合に、ドメインのないレコードをデフォルトドメインに移動するドメイン - デフォルト - タスクが必要です。

    タスクテーブルで、ドメインのビジネスルールを確認します。[順序] フィールドに特に注意してください。実行の優先度は、低から高まで、[順序] フィールドによって指定されます。

    実行される最初のドメイン - ドメインを設定 - タスクルールは、レコードの会社のドメインに基づいてレコードのドメインを設定しようとします。

    最初のルールで適切なドメインが見つからない場合は、2 番目のドメイン – デフォルト – タスクルールが実行されます。このルールは、レコードのドメインをデフォルトのドメインに設定します。

    最後に、タスクレコードのドメインが変更されると、ドメイン - カスケードドメイン - タスクビジネスルールによって、ワークフロー、メトリクス、SLA、添付ファイルなどのタスクに関連するすべてのレコードのドメインが変更されます。

    3. ステップ 2 が失敗した場合のビジネスルールを追加します。

    最初のビジネスルールがドメインの設定に失敗し、ドメインがまだ空またはグローバルである場合は、2 番目のビジネスルールが実行されます。このルールは、caller または requested_for フィールドに基づく task_for フィールドを調べます。このルールは、ユーザーのドメインに基づいてレコードのドメインを設定できるかどうかを確認しています。設定できない場合は、ビジネスルールによってドメインがデフォルトドメインに設定されます。

    ビジネスルールのサンプルスクリプトは次のとおりです。

    /* essentially
    If (task_for is set)
      set the domain to the user's domain
    ELSE
      set the domain to the default domain
    */

    4. ドメイン – カスケードドメイン – タスク

    タスクには、事業達成目標のために連携する多くの関連テーブルを含めることができます。これらの関連レコードには、ワークフロー、SLA、承認、添付ファイル、およびメールが含まれます。タスクのドメインが変更された場合は、関連レコードのドメインも変更して、新しいドメイン内のユーザーに表示されるようにする必要があります。

    このカスケードルールは一般に、デフォルトのドメインからレコードを消去するときにトリガーされます。

    スクリプトに含まれるカスケードドメインの関連レコードは、次の例のように表示されます。

    /*
    * Keep domains in sync w/related records for:
    * workflow context
    * workflow history
    * approver tables and related workflows
    * attachments
    * emails
    */