- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-27-2025 02:56 AM
I need to update CMDB_ci record manufacturer name and the same time need to i need to update cmdb_ci_aix_server table record approval group name but both the record have similar ci name eg : in cmdb_ci table have "TEST" name with two records one is belongs to cmdb_ci and another record is related to cmdb_ci_aix_server , so here manufacturer need to chang for cmdb record and approval group need to change for server record via catalog item how to archive this .
could you check and below code and confirm this for Action.
(function execute(inputs, outputs) {
var ciName = inputs.ci_name;
var newManufacturer = inputs.new_manufacturer;
var newApprovalGroup = inputs.new_approval_group;
// Update manufacturer on base cmdb_ci
var baseCI = new GlideRecord('cmdb_ci');
baseCI.addQuery('name', ciName);
baseCI.addQuery('sys_class_name', 'cmdb_ci'); // Ensures it's only base
baseCI.query();
if (baseCI.next()) {
baseCI.manufacturer = newManufacturer;
baseCI.update();
}
// Update approval group on cmdb_ci_aix_server
var aixCI = new GlideRecord('cmdb_ci_aix_server');
aixCI.addQuery('name', ciName);
aixCI.query();
if (aixCI.next()) {
aixCI.u_approval_group = newApprovalGroup; // Use the actual field name
aixCI.update();
}
})(inputs, outputs);
Solved! Go to Solution.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-28-2025 04:08 PM
sys_class_name
filter might not behave as expected
try to debug
(function execute(inputs, outputs) {
var ciName = inputs.ci_name;
var newManufacturer = inputs.new_manufacturer;
var newApprovalGroup = inputs.new_approval_group;
// Update manufacturer on base cmdb_ci
var baseCI = new GlideRecord('cmdb_ci');
baseCI.addQuery('name', ciName);
baseCI.query();
while (baseCI.next()) {
if (baseCI.getTableName() === 'cmdb_ci') {
baseCI.manufacturer = newManufacturer;
baseCI.update();
gs.info('Updated manufacturer for base CI: ' + ciName);
}
}
// Update approval group on cmdb_ci_aix_server
var aixCI = new GlideRecord('cmdb_ci_aix_server');
aixCI.addQuery('name', ciName);
aixCI.query();
while (aixCI.next()) {
aixCI.u_approval_group = newApprovalGroup;
aixCI.update();
gs.info('Updated approval group for AIX server CI: ' + ciName);
}
})(inputs, outputs);

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-28-2025 04:08 PM
sys_class_name
filter might not behave as expected
try to debug
(function execute(inputs, outputs) {
var ciName = inputs.ci_name;
var newManufacturer = inputs.new_manufacturer;
var newApprovalGroup = inputs.new_approval_group;
// Update manufacturer on base cmdb_ci
var baseCI = new GlideRecord('cmdb_ci');
baseCI.addQuery('name', ciName);
baseCI.query();
while (baseCI.next()) {
if (baseCI.getTableName() === 'cmdb_ci') {
baseCI.manufacturer = newManufacturer;
baseCI.update();
gs.info('Updated manufacturer for base CI: ' + ciName);
}
}
// Update approval group on cmdb_ci_aix_server
var aixCI = new GlideRecord('cmdb_ci_aix_server');
aixCI.addQuery('name', ciName);
aixCI.query();
while (aixCI.next()) {
aixCI.u_approval_group = newApprovalGroup;
aixCI.update();
gs.info('Updated approval group for AIX server CI: ' + ciName);
}
})(inputs, outputs);