IDR でのレプリケーション動作の変更

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間: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 値が表示されます。

    レプリケーション後にワークフローをトリガーする

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

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

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

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