Disable CI in CMDB

samoliveira
Tera Contributor
I have a corrupted CI (Central Interaction). 
When I access its record, I get a "(Record not found)" message.
I've tried disabling it through the table, deleting it from the table, and even creating a script and running a deletion script in Fix Scripts, but the record remains active in the cmdb_ci table. Can anyone help me with this?
4 REPLIES 4

Tanushree Maiti
Kilo Patron

Hi @samoliveira 

 

Run this in System Definition > Scripts - Background (or Fix Scripts):
 
var ciSysId = 'YOUR_CORRUPTED_CI_SYS_ID';
var gr = new GlideRecord('cmdb_ci');
if (gr.get(ciSysId))
{ gr.deleteRecord();
gs.print('CI Deleted: ' + ciSysId); } else { gs.print('CI not found in cmdb_ci: ' + ciSysId); }
Please mark this response as Helpful & Accept it as solution if it assisted you with your question.
Regards
Tanushree Maiti
ServiceNow Technical Architect
Linkedin:

HI, 

I ran the script you sent me, and unfortunately, CI is still listed in cmdb_ci.

Do you have any other ideas on how to disable it?

How are you "seeing" it in cmdb_ci, via a list view or otherwise?

Vishal Jaswal
Giga Sage

Hello @samoliveira 

If you know the CI's class (let's say cmdn_ci_web_server) and the sys_id, then you can navigate to CMDB Workspace and delete it from there:

https://yourinstance.service-now.com/now/cmdb/record/cmdb_ci_web_server/5f8af237c0a8010e01a932999468...

VishalJaswal_0-1778177422128.png


You can always print the sys_class_name from a background script:

var grCI = new GlideRecord('cmdb_ci');
if(grCI.get('5f8af237c0a8010e01a932999468b83a')) { //sys_id of CI
gs.print('Name: ' + grCI.name + 'Class: ' + grCI.sys_class_name);
} 

VishalJaswal_1-1778177572373.png

 


Hope that helps!