アップグレード後のスキップされた更新レコードを解決し、解決内容をインスタンス間で転送する方法 イントロダクション アップグレード後にスキップされた更新レコードを解決し、その解決内容を同じアップグレードを受ける他のインスタンスに転送する方法について説明します。アップグレード後、カスタマイズが保持されていることを確認するために、スキップされた更新レコードを確認します。このプロセスは、特に本番環境の非本番クローンでアップグレードをテストする場合、手動となり、エラーが発生しやすくなる可能性があります。異なるインスタンス間でスキップされたレコードを複数回処理する必要がある場合があります。スキップされた更新レコードの解決追跡では、解決内容を更新セットに記録するため、それらを別のインスタンスに適用し、アップグレード後の手作業を削減できます。 スキップされた変更とは カスタマイズが新しいリリースの更新と競合すると、スキップされた変更が発生します。アップグレードによってカスタマイズが上書きされることはありません。ビジネスルールやスクリプトなど、アップグレードの影響を受けるレコードをカスタマイズしている場合、システムによってスキップされたログレコードが作成されます。その後、ベースバージョンに戻すか、変更をマージするか、カスタマイズを保持するかを決定します。 スキップされた変更には、次のテーブルのレコードが含まれる場合があります: ・sys_ui_form_section ・sys_ui_related_list ・sys_choice_set ・HTML、XML、script、または script_plain タイプのフィールドを持つテーブル sys_user などのユーザーデータレコードでは、スキップされた変更は作成されません。 スキップされた更新レコードの解決追跡 スキップされた更新レコードの解決追跡では、カスタマイズ、スキップされたレコードの処理、およびコメントが更新セットに記録されます。この機能はデフォルトで有効になっており、デフォルトで true に設定されている glide.save.skiplist.decision システムプロパティによって制御されます。 詳細 スキップされたレコードの解決内容を別のインスタンスへの転送 ソースインスタンスをターゲットのリリースバージョンにアップグレードします。スキップされたレコードの解決内容を記録するローカル更新セットを作成し、それを現在の更新セットにします。ソースインスタンスでスキップされたレコードのリストを処理します。更新セットを完了としてマークします。ターゲットインスタンスをソースインスタンスと同じリリースバージョンにアップグレードします。ターゲットインスタンスで、ソースインスタンスから更新セットを取得します。記録された解決内容を適用するために、更新セットをプレビューしてコミットします。 注: 更新セットによってターゲットインスタンス上のスキップされたレコードのリストが更新されますが、そこでスキップされたレコードのリストを処理する必要があります。 解決内容を適用する前にプラットフォームで確認される項目 解決内容、コメント、およびカスタマイズは、次のすべての条件が満たされている場合にのみ転送されます: ・glide.save.skiplist.decision プロパティが true である。 ・対応するログレコードがターゲットインスタンスに存在する。 ・同じファイル名がターゲットインスタンスに存在する。 ・sys_upgrade_state キーが受信バージョンのペイロードハッシュと一致する。 ・Record changed フィールドが true である。 ・レコードの解決ステータスが not_reviewed ではない。 ・Disposition が skipped、skipped error、skipped manual merge、または retrieved である。 ・スキップされたレコードが最新のアップグレードに含まれている。glide.war リリースパッケージ (WAR) のバージョンが、sys_upgrade_history_log テーブルの Upgrade history 列と一致している必要がある。 いずれかの確認に失敗した場合、更新セットでエラーが報告されます。 更新セットの警告メッセージ ターゲットインスタンスで glide.save.skiplist.decision が false の場合、次のメッセージが表示されます: This update will not result any action because Skipped Upgrade Records Resolution Tracking is disabled. その他の問題の場合、次のメッセージが表示されます: This update will not result any action because it is invalid and then skip the remote update. どちらの場合も、使用可能な唯一のアクションはリモート更新をスキップすることです。原因を特定するには、前のセクションの条件を確認します。 追加の考慮事項 更新セットに、ターゲットインスタンスに適用されない Disposition が含まれている場合、エンジンによって警告が報告されます。たとえば、ターゲットインスタンスでは Update と Delete のみが許可されているにもかかわらず、更新セットに Resolve Conflicts が含まれている場合です。これは、ソースインスタンスとターゲットインスタンスのアップグレードが異なることを意味します。相違点を把握するには、ターゲットインスタンスで参照されているアップグレード履歴レコードを確認します。更新セットはインスタンスのアップグレードでのみ機能し、プラグインのアップグレードでは機能しません。更新セットを使用して、プラグイン履歴ログからスキップされたレコードを移動または処理することはできません。 関連リンク KB0726987:アップグレード後のインスタンス間でスキップされたアイテムレコードの数が異なる KB0678054 - アップグレードに関する FAQ - よく寄せられる質問