IDR でのレプリケーション動作の変更
インスタンスデータレプリケーション (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 が追加されます。
変更をレプリケートする場合、[変更者を保持] は [更新者]、[更新済み]、[作成済み]、[作成者] システムフィールドの値に影響します。
- [変更者を保持] を有効にして、プロデューサーレプリケーションエントリにシステムフィールドを含めると、プロデューサーシステムフィールドの値がコンシューマーレコードにレプリケートされます。プロデューサーレプリケーションエントリにシステムフィールドを含めない場合は、代わりにコンシューマーインスタンスのデフォルトシステム値が使用されます。
- [変更者を保持] が無効になっている場合、コンシューマーインスタンスのデフォルトシステムフィールド値が使用されます。つまり、プロデューサーレコードのシステムフィールド値と一致しない可能性があります。
データをシードするとき、[変更者を保持] 設定の影響はありません。
- プロデューサーレプリケーションエントリにシステムフィールドを含めると、シードされたレコードにプロデューサーシステムフィールドの値が表示されます。
- プロデューサーレプリケーションエントリにシステムフィールドを含めないと、シードされたレコードのシステムフィールドに null 値が表示されます。
レプリケーション後にワークフローをトリガーする
プラットフォームビジネスルールを使用して、レプリケーション後にワークフローをトリガーします。
コンシューマーインスタンスに複製される挿入と更新により、ターゲットテーブルに構成されたビジネスルールがトリガーされる可能性があります。ビジネスルールは、テーブルに関連付けられたサーバー側のスクリプトです。ビジネスルールを使用して、通知の送信やレプリケートされたデータの検証など、レプリケーションに関連付けられたワークフローをトリガーします。
ビジネスルールは Now Platform の一部です。詳細については、「ビジネスルール」を参照してください。
レプリケーション後にビジネスルールを実行するには、コンシューマーレプリケーションセットの受信エントリフォームで [ ビジネスルールを実行 ] オプションを選択します。 IDR は、データをテーブルにレプリケートした後、指定されたテーブルに関連付けられているビジネスルールを呼び出します。