リストフィルターから Broken Reference を持つレコードを見つける方法Issue <!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } 参照フィールドは別テーブル内のレコードへのポインターであり、その値はそのレコードの sys_id です。その sys_id を持つレコードが実際には参照先テーブルに存在しない場合、それを Broken Reference と呼びます。この参照をクリックすると、"Record not found" エラーが表示されます。 以下は、Broken Reference を持つレコードをリストビューのフィルターから検索し、それらを修正する方法です。 1. 調査対象のテーブルのリストを開きます。 2. 条件ビルダーに次のフィルターを追加します。(ここでは対象のフィールドを <reference field> と呼びます。) <reference field> IS NOT EMPTY AND <reference field>.'Sys ID' IS EMPTY 2 番目の条件は、参照先テーブル内のレコードの sys_id フィールドへドットウォークしています。まず参照フィールドを展開し、その後 Sys ID を選択してください。 3. フィルターを実行します。 リストに表示されるすべてのレコードは、そのフィールド内に Broken Reference を持っています。sys_id の値が表示される場合もあれば、フィールドが空に見えても実際には空ではない場合もあります。リストビューから編集して値を修正できます。 例 CMDB Relationships テーブル [cmdb_rel_ci] は、レコードに Broken Reference が存在する場合、Relationship Editor などの CMDB 関連機能で問題の原因となることがよくあります。 このテーブルの主な参照フィールド: Parent - cmdb_ci を参照Child - cmdb_ci を参照Type - cmdb_rel_type を参照(上記手順を使用する以下の例で使用されるフィールド) Release<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Resolution<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Related Links<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } この方法では、オプションの Data Archiving プラグインによって元のテーブルから移動されたアーカイブ済みレコードを参照しているレコードも検索できます。 参照先レコードをクリックすることで確認できます。フォームが表示され、URL 内のテーブル名が "ar_..." で始まっている場合、そのレコードはアーカイブ済みです。 ライブレコードがアーカイブ済みレコードを参照していると、パフォーマンス上の問題を引き起こすことがあるため、アーカイブルールを再検討することを推奨します。