アプリケーションのインストール中に発生するスキップされたレコード
グローバルまたはスコープ対象のアプリケーションをローカルで更新すると、一部のレコードがスキップされる場合があります。スキップされたレコードは、展開先のインスタンスのメタデータレコードを変更したとき、または更新セットを適用したときに発生する可能性があります。使用する展開モデルと該当するプロパティの状態によっては、sys_upgrade_history_log に「スキップされたレコード」が生成されるリスクが生じることがあります。さまざまな方法でアプリケーションをアップグレードする場合に、インスタンスで想定されることについて説明します。
一般的なユースケース
ほとんどの状況では、次の一般的なユースケースがアプリケーションのインストール中に発生します。
| 展開タイプ | アプリケーションタイプ | 期待される成果 |
|---|---|---|
| ソースコントロール | スコープ対象 | スキップなし。アプリケーションはソースコントロールからロードされます。ローカル更新 xml が存在する場合は、それらの変更をスタッシュするように求められます。 |
| ソースコントロール | グローバル | スキップなし。アプリケーションはソースコントロールからロードされます。ローカル更新 xml が存在する場合は、それらの変更をスタッシュするように求められます。 |
| アプリリポジトリ | スコープ対象 | スキップされたレコードが生成され、カスタマイズが保持されます。 |
| アプリリポジトリ | グローバル |
アプリケーションの変更が適用され、スキップされたレコードは、上位の要求が見つかった場合にのみ生成されます。 詳細については、「関連リストを使用してスキップされたレコードをレビューする」を参照してください。 |
| ストア | スコープ対象 | スキップされたレコードが生成され、カスタマイズの変更が適用されました。 |
| ソースコントロール | カスタマイズ | スキップなし。カスタマイズはソースコントロールからロードされます。ローカル更新 xml が存在する場合は、それらの変更をスタッシュするように求められます。 |
| アプリリポジトリ | カスタマイズ | スキップされたレコードは生成されません。カスタマイズの変更が適用されました。 |
| ストア/アプリリポジトリ | スコープ対象およびカスタマイズ | カスタマイズによってベースアプリケーションレコードが更新されない限り、スキップされたレコードは生成されません。この場合、ベースアプリケーションのスキップされた更新のログエントリが作成されます。 |
作成者の選択的更新
author_elective_update フォルダーの目的を理解することが重要です。
リポジトリ用またはソースコントロールへのコミット用に ServiceNow がアプリケーションをパッケージ化する場合、(以前は無視されていた可能性がある) 追加の要素が author_elective_update フォルダーにアンロードされます。(これらの削除された要素は通常、単に「削除」と呼ばれます)。アプリケーションが自分専用のインスタンスにインストールされると、削除されたファイルは、author_elective_update フォルダーから自動的にロードされます。
たとえば、テーブルまたは列を削除してアプリケーションのスキーマを変更した場合、それらのファイルはフォルダー内で追跡されますが、デフォルトでは適用されません。設定可能なプロパティに基づいて、変更可能な作成者の選択的更新に適用される特定のルールがあります。このフォルダーには、適用または無視できるスキーマの変更や選択セットのアンロードなど、メタデータが削除されたファイルが含まれています。それらを適用するか無視するか、および対応するスキップされたレコードが生成されるかどうかは、次のプロパティと処理フローの状態によって異なります。
| プロパティ名 | 動作 | デフォルト | ソースコントロールで使用されます |
|---|---|---|---|
| com.glide.apps.include_only_sys_choice | 削除された要素のみをロードし、author_elective_update から sys_choice フィールドを更新します | False | なし |
| com.glide.apps.include_my_schema | 削除された要素のみを author_elective_update からスキーマファイルにロードします。お客様のアプリケーションのインストールに適用され、サードパーティアプリには適用されません。 | False | なし |
| com.glide.apps.force_skips | すべての author_elective_update のスキップされたレコードを作成します | False | なし |
| com.glide.apps.include_my_deletes | author_elective_update を処理します | False | あり |
| com.glide.apps.include_global_deletes | グローバルアプリケーションの author_elective_update を処理します | False | あり |
com.glide.apps.include_my_schema のプロパティがない場合は、デフォルトで False に設定されます。ただし、Orlando リリース以降、新しいインスタンスには True に設定するためのデフォルトのエントリがテーブル内にあります。
クレーム
要求は、グローバルアプリケーションとアプリケーションのカスタマイズに適用されます。グローバルアプリケーションで、同じファイルが複数のアプリケーションに含まれている場合は、要求を使用すると、システムがレコードを確定的に選択できます。上位の要求が見つかった場合は、競合する要求のステータスを特定するために、スキップされたレコードのアップグレード履歴ログが作成されます。詳細については、「関連リストを使用してスキップされたレコードをレビューする」を参照してください。