インスタンスデータレプリケーション (IDR)でのレプリケーション動作の変更

  • リリースバージョン: Australia
  • 更新日 2026年03月12日
  • 所要時間:5分
  • インスタンスデータレプリケーション (IDR) (IDR) でオプション設定を構成して、データの複製方法を変更します。

    カスタム結合

    コンシューマーインスタンスのレコードが、インスタンスデータレプリケーション (IDR) (IDR) のプロデューサーインスタンスの同じレコードとは異なる sys_id を持つ場合は、異なる列を使用してレコードを結合します。

    デフォルトでは、IDR のレコードを結合するために [sys_id] フィールドが使用されます。San Diego リリースから、別のフィールドの使用を選択できます。

    コンシューマーインスタンスのレコードが、プロデューサーインスタンスの同じレコードと異なる sys_id を持つ場合は、列結合機能を使用します。たとえば、レコードがディスカバリーによって作成され、複数のインスタンスにロードされた場合などは、sys_id が一致しなくなる可能性があります。このシナリオでは、[カスタム結合を有効にする] オプションを選択し、プロデューサーレプリケーションエントリーフォームで結合フィールドを選択することで、別の一意の識別子フィールドを使用できます。

    [結合] フィールドを選択するときは、次のことを確認する必要があります。

    • 選択したフィールドは、プロデューサーインスタンスのレプリケーションエントリーフォームの [含まれているフィールド (Included Fields)] にあります。
    • フィールドは、コンシューマーインスタンス上で、同じ名前、長さ、およびタイプで存在します。
      注:
      フィールドに有効な変換を作成する場合、[結合] フィールドはコンシューマーインスタンスで異なる場合があります。
    • 選択したフィールドの [一意の列] の値は、辞書エントリ [sys_dictionary] テーブルで true に設定されます。

    [結合] フィールドとして設定した後は、フィールドの値を変更しないでください。

    設定後に [結合] フィールドを変更するには、プロデューサーインスタンスのレプリケーションエントリを削除し、新しいレプリケーションエントリを作成する必要があります。

    [結合] フィールドがコンシューマーインスタンスに存在しない場合、コンシューマーレプリケーションセットフォームに次のエラーが表示されます。コンシューマーインスタンスは、<column_name> の結合フィールドを、<table_name> テーブルの有効なメンバーとして認識していません。プロデューサーテーブルからコンシューマーインスタンスへの更新を受信するには、このフィールドを作成するか、このテーブルでの変換を有効にします。

    変換による結合の使用時にエラーが発生する

    プロデューサーインスタンスで変換が有効になっている場合、ターゲットテーブルの [結合] フィールドの名前、タイプ、および長さが同じである必要があります。これらのパラメーターのいずれかが一致しない場合、エラーが表示されます。

    プロデューサーインスタンスで変換が有効になっていて、[結合] フィールドのマッピングが無効であり、コンシューマーがエントリを同期している場合、コンシューマーレプリケーションセットフォームにエラーが表示されます。

    [結合] フィールドの有効なマッピングを使用してレプリケーションエントリに対して変換が有効になっていて、マッピングが有効でなくなるようにターゲットテーブルのテーブルスキーマが更新された場合、レプリケーションエントリフォームにエラーが表示されます。

    レプリケーションエントリが変換を有効にしようとして、 [結合] フィールドの有効なマッピングが、ソーステーブルからターゲットテーブルまで存在しない場合は、レプリケーションエントリフォームにエラーが表示されます。

    システムフィールド値の保存

    インスタンスデータレプリケーション (IDR) (IDR) でデータを複製するときに、システムフィールドのプロデューサー値を保持します。

    アクティビティエントリのユーザー名を保持するには、コンシューマーレプリケーションセットの受信エントリフォームで [変更者を保持] オプションを選択します。

    たとえば、[作業メモ] フィールドは、変更要求レコードのアクティビティタイプです。ユーザーが変更要求を更新すると、作業メモはアクティビティストリームに移動します。

    • [変更者を保持] を選択しない場合、コンシューマーレコードのユーザー名の代わりに インスタンスデータレプリケーション (IDR) が表示されます。
    • [変更者を保持] を選択すると、変更要求を更新したユーザーがエントリで識別され、名前の先頭に IDR が追加されます。
    変更者を保持 (Preserve Modified By)。

    変更をレプリケートする場合、[変更者を保持][更新者][更新済み][作成済み][作成者] システムフィールドの値に影響します。

    • [変更者を保持] を有効にして、プロデューサーレプリケーションエントリにシステムフィールドを含めると、プロデューサーシステムフィールドの値がコンシューマーレコードにレプリケートされます。プロデューサーレプリケーションエントリにシステムフィールドを含めない場合は、代わりにコンシューマーインスタンスのデフォルトシステム値が使用されます。
    • [変更者を保持] が無効になっている場合、コンシューマーインスタンスのデフォルトシステムフィールド値が使用されます。つまり、プロデューサーレコードのシステムフィールド値と一致しない可能性があります。

    データをシードするとき、[変更者を保持] 設定の影響はありません。

    • プロデューサーレプリケーションエントリにシステムフィールドを含めると、シードされたレコードにプロデューサーシステムフィールドの値が表示されます。
    • プロデューサーレプリケーションエントリにシステムフィールドを含めないと、シードされたレコードのシステムフィールドに null 値が表示されます。

    レプリケーション後のワークフローのトリガー

    レプリケーション後にプラットフォームのビジネスルールを使用してワークフローをトリガーします。

    コンシューマーインスタンスにレプリケートされる挿入と更新により、ターゲットテーブルに構成されたビジネスルールがトリガーされる可能性があります。ビジネスルールは、テーブルに関連付けられたサーバー側のスクリプトです。ビジネスルールを使用して、通知の送信やレプリケートされたデータの検証など、レプリケーションに関連付けられたワークフローをトリガーします。

    ビジネスルールは ServiceNow AI Platform の一部です。詳細については、「ビジネスルール」を参照してください。

    レプリケーション後にビジネスルールを実行するには、コンシューマーレプリケーションセットの受信エントリフォームで [ビジネスルールを実行] オプションを選択します。IDR は、テーブルにデータをレプリケートした後、指定されたテーブルに関連付けられているビジネスルールを呼び出します。