- Post History
- Subscribe to RSS Feed
- Mark as New
- Mark as Read
- Bookmark
- Subscribe
- Printer Friendly Page
- Report Inappropriate Content
on 08-12-2020 07:45 PM
/*Script to get the parent CI from CMDB rel CI and create impacted service/CI records*/
var sDebug = '';
var allowedClasses = 'cmdb_ci_linux_server,cmdb_ci_win_server'; // Make a system property to store the list of CI classes in scope
var changeSysId = 'xxxxxxxxxxxxxxxxx'; // This should be current.sys_id if you are using in workflow or BR.
var encodedQuery = 'task=' + changeSysId;
var grTaskCi = new GlideRecord('task_ci');
grTaskCi.addEncodedQuery(encodedQuery);
grTaskCi.query();
while(grTaskCi.next()) {
sDebug += "\nAffected CIClasses" + grTaskCi.ci_item.sys_class_name;
if(allowedClasses.indexOf(grTaskCi.ci_item.sys_class_name) >-1) {
sDebug +="TaskCI=grTaskCi.ci_item.sys_id";
if(!JSUtil.nil(grTaskCi.ci_item.sys_id) && !(grTaskCi.ci_item.sys_id === undefined)) {
getParentCi(grTaskCi.ci_item.sys_id, changeSysId);
}
}
}
function getParentCi(ciSysId, changeSysId) {
var relType = '60bc4e22c0a8010e01f074cbe6bd73c3'; // Make a system property to store this value
var encodedQuery = 'child.sys_class_nameINSTANCEOFcmdb_ci_server^parent.sys_class_name=cmdb_ci_apache_web_server^ORparent.sys_class_name=cmdb_ci_app_server_jboss^type=' + relType +'^child=' + ciSysId; // can be updated to include additional classes
sDebug +="\n relQuery=" + encodedQuery;
var grRel = new GlideRecord('cmdb_rel_ci');
grRel.addEncodedQuery(encodedQuery);
grRel.query();
while(grRel.next()) {
sDebug += "\n Impacted CI SysIds" + grRel.parent.name;
insertImpactedCI(grRel.parent.sys_id,changeSysId);
}
}
function insertImpactedCI(ciSysId,changeSysId) {
sDebug +="\n taskId=" + changeSysId + " CIId=" + ciSysId;
var grImpact = new GlideRecord('task_cmdb_ci_service');
grImpact.initialize();
grImpact.cmdb_ci_service = ciSysId;
grImpact.task = changeSysId;
grImpact.insert();
}
gs.print(sDebug); // Can be commented once you are comfortable that it is working.