更新セット競合の解決

  • リリースバージョン: Australia
  • 更新日 2026年03月12日
  • 所要時間:6分
  • 競合は新しいローカル更新を持つ更新です。

    プラットフォームは各更新セットからのカスタマーアップデートレコードの名と更新済みフィールドの値を比較することで競合を検知します。名前が一致しても更新日の値が異なる場合は、競合が存在します。

    カスタマーアップデートがあるインスタンスから別のインスタンスに移動されると、ターゲットインスタンスと一致するように書き換えられる場合があります。書き換えには、顧客更新プログラムの更新名と、更新プログラム内の 1 つ以上のsys_idの変更が含まれる場合があります。レコードまたは参照フィールドが結合戦略を使用するテーブルに対するものである場合、再書き込みが行われます。これにより、カスタマーアップデートが正しいレコードに適用されることが確認されます。たとえば、tablename.fieldname のsys_dictionaryレコードのインスタンス A で 123 sys_id、インスタンス B で sys_id 456 がある場合、そのレコードを参照する顧客更新がインスタンス A から取得され、インスタンス B のsys_update_xmlテーブルに記録されると、 123 への参照は 456 を読み取るように更新されます。

    合体戦略

    結合とは、更新プロセス中に一意の識別子として使用される 1 つ以上のフィールドに基づいてレコードを識別するプロセスのことです。更新セットは、別々のインスタンスで独立に作成する同一のレコード間の競合を検知できます。このような競合を検知するには、レコードは合体する列に基づく合体戦略が必要です。競合の検出はテーブルの一意性に依存するため、合体する列を結合するとき、テーブルは一意である必要があります。同じレコードが異なるインスタンスで別々に作成されている場合、ここにリストされていないレコードは競合しません。

    タイプ 列の合体
    atf_input_variable 名前、要素
    atf_output_variable 名前、要素
    dp_data_pattern source_sys_id
    dynamic_attribute namespaced_name
    dynamic_category namespaced_name
    dynamic_category_member カテゴリ、属性
    dynamic_choice_override choice、category、attribute
    dynamic_namespace 名前
    sys_analytics_bucket sys_scope、bucket_document_id、bucket_table_name
    sys_attachment (カスタム一致ロジックを使用)
    sys_choice_set 名前、要素
    sys_collection collection、name、join_field
    sys_db_object 名前
    sys_df_data_dictionary 名前、要素
    sys_dictionary 名前、要素
    sys_documentation 名前、要素、言語
    sys_index logical_table_name、col_name_string
    sys_module パス
    sys_notification_category 名前
    sys_package ソース
    sys_package_dependency_m2m 依存関係、sys_package
    sys_properties name
    sys_report_chart_color 名前、要素、値
    sys_scope_script_access source_scope、target_scope、script_name
    sys_scope_table_access source_scope、target_scope、table_name
    sys_script_validator internal_type、ui_type
    sys_translated 名前、要素、値、言語
    sys_translated_text tablename、fieldname、documentkey、language
    sys_ui_form 名前、表示、sys_domain
    sys_ui_list 名前、ビュー、sys_domain、要素、関係、親
    sys_ui_message キー、言語、コード
    sys_ui_related_list 名前、表示、関連リスト、sys_domain
    sys_ui_section 名前、表示、キャプション、sys_domain
    sys_ui_view 名前
    sys_user_group 名前
    sys_user_role 名前
    sys_wizard 名前
    ua_table_licensing_config 名前

    カスタマーアップデートレコード名が競合にどのように影響するか

    結合を理解するには、結合しないレコードがどのように機能するかを理解することが役立ちます。ほとんどのレコードタイプでは、カスタマーアップデートを新しいインスタンスに移動すると、システムは次の理由で競合を検知しません。
    • レコードを作成すると、一意のsys_idを受け取ります。ほとんどのレコードタイプでは、sys_idは顧客更新レコード名の一部になります。例えば: sysevent_email_template_9e1998c078b71100a92ecacd80df1d39
    • 別のインスタンスの同じテーブルに同じレコードを作成すると、異なるsys_idを持つ顧客更新レコード名が生成されます。例えば: sysevent_email_template_10b958c8653311005840134572f8e020

    その結果、たとえレコードがそれ以外は同一であっても、レコードの名前が異なるため、システムは競合を検出しません。

    対照的に、レコードの合体は、レコードの命名と競合の判定に次の方法を使用します:次の顧客更新レコードタイプは、名前にsys_idの代わりに合体列の一部またはすべてを使用します。
    • sys_dictionary
    • sys_documentation
    • sys_choice_set
    • sys_ui_list
    • sys_ui_related_list

    各インスタンスで結果として同一のレコード名を使用すると、レコードに異なる sys_id があってもシステムが衝突を識別するのに役立ちます。

    カスタマーアップデートがあるインスタンスから別のインスタンスに移動されると、ターゲットインスタンスと一致するように書き換えられる場合があります。書き換えには、顧客更新プログラムの更新名と、更新プログラム内の 1 つ以上のsys_idsの変更が含まれる場合があります。レコードまたは参照フィールドが結合戦略を使用するテーブルに対するものである場合、再書き込みが行われます。これにより、カスタマーアップデートが正しいレコードに適用されることが確認されます。たとえば、tablename.fieldname の sys_dictionary レコードのインスタンス A に sys_id「123456789」、インスタンス B に sys_id「987654321」がある場合、そのレコードを参照する顧客の更新がインスタンス A から取得され、インスタンス B の sys_update_xml テーブルに記録されると、「123456789」への参照が更新されて「987654321」を読み取ります。

    重複レコードの防止

    • 別々のインスタンスで再作成するのではなく、更新セットを使用してデータを転送し、レコードのsys_idが同じであることを確認します。
    • レコードを XML ファイルとしてエクスポートおよびインポートして、レコードのsys_idが同じであることを確認します。「XML ファイルのエクスポートとインポート」を参照してください。
    • システムディクショナリーからテーブルへのユニークなインデックスを有効にします。「テーブルアドミニストレーション」を参照してください。
    注:
    ベースラインシステムに含まれるデフォルトレコードは、インスタンスのプロビジョニング中にインスタンスがレコードを XML ファイルとしてインポートするため、常に同じsys_idを持ちます。