アップグレード中にレコードが予期せず上書きされました:update_synchIssue この記事の目的は、アーティファクトに対するカスタマイズに関係なく、アップグレード中に発生する可能性があるアーティファクトの更新についてユーザーを教育することです。カスタマーが認識すべき最も重要な概念は、インスタンス内のレコードに対するすべての更新がカスタマイズとしてキャプチャされるわけではないということです。テーブルの更新をキャプチャするかどうかを制御するエンジンは、 update_synch という属性に含まれるテーブルの辞書エントリにあります。 update_synchとは何ですか? update_synchテーブルでカスタマイズとしてキャプチャできるものとキャプチャできないものを制御します。一般的に、update_synch属性は構成データを含むテーブルにあります。システムに入力されているクライアントユーザーからの生データ (タスクなど) を含むテーブルには、update_synchが存在しません。update_synchが true の場合、更新するカスタマイズがそれぞれのテーブルでキャプチャされ、関連するsys_update_xmlレコードが存在することを示します。この属性がない場合は、テーブルへの変更がキャプチャされないため、テーブルに対する変更に使用できるsys_update_xmlレコードがないことを示します。ただし、テーブルが子テーブルである階層内にある場合、子テーブルとその子孫テーブルはデフォルトで属性を継承します。 このプロパティは、存在するかどうかにかかわらず、辞書コレクションレコードで変更しないでください。製品update_synchが必要なユースケースがあるお客様は、インシデントを介して拡張要求を要求し、製品チームによるレビューを受ける必要があります。また、ServiceNow では [Force to update set] オプションがサポートされていないため、お客様はこの UI アクションを使用しないでください。セットを強制的に更新すると適切なsys_update_xmlレコードが作成されますが、カスタマイズが上書きされないわけではありません。 update_synchがないために更新が発生したかどうかを検証する方法 アップグレード中に発生した更新が update_synch 属性が存在しないことが原因であるかどうかを識別するには、次の手順を実行します。 更新が発生したテーブルの名前を検証します。 この例では、 kb_knowledge_baseを使用します。テーブルを特定するには、更新されたアップグレード履歴レコードのアップグレードの詳細関連リストからレコードを確認します。ファイル名にはテーブル名のプリフィックスが付き、更新されたレコードのsys_idが付きます。これは、 kb_knowledge_base_dfc19531bf2021003f07e2c1ac0739abの線に沿ったもののように見えます テーブルが 更新されているかどうかを検証します システム定義>ディクショナリ>>同期 name='tablename' AND type=collection のクエリを作成レコードを開き、属性関連リストを表示します。詳細ビュー 関連リンクをクリックして、update_synch=true 属性が存在するかどうかを確認することもできます update_synchが存在しない場合は、子テーブルかどうかを確認します。 これを行うには、 [システム定義]> [テーブル]> name="tablename" のクエリを作成します。[拡張] 列が利用できない場合は、これをリストに追加します。このフィールドに値がある場合は、そのテーブルの辞書コレクションレコードで属性を確認し、拡張テーブルにも親があるかどうかを確認します。この例の場合、kb_knowledge_baseには親も子もないため、これがチェックされている限りであることに注意してください。 見つかった情報に基づいて、レコードは update_synch=true が存在しないテーブルにあるため、ナレッジベースレコード自体に OOB 変更がある場合、アップグレードまたはプラグインのアクティブ化中に常に上書きされるため、検出された情報に基づいて、kb_knowledge_base_dfc19531bf2021003f07e2c1ac0739ab への更新は想定内の動作です。 追加の注意として、アップグレード中に更新があった場合、これは基本的にこのkb_knowledge_baseレコードの OOB バージョンが変更されたことを意味します。これを実行する適切な方法は、更新の対象となる既存の OOB レコードを変更するのではなく、kb_knowledge_base で新しいレコードを作成することでした。 トラブルシューティング 最も簡単な回避策は、アップグレード前に更新されるレコードをエクスポートし、アップグレード後に必要に応じて再インポートすることです。もう 1 つのオプションは、既存の OOB レコードを使用せず、目的のコンテンツで新しいレコードを作成することです。