var buf = ''; buf += '\n\nCleanup starts...'; // Section:1 Cleanup Import Transactions // Update all New, Processing and Waiting Import Transactions to Failed var trans = new GlideRecord('x_fls_flexera_fnms_import_transaction'); trans.addQuery('state', '!=', FNMSConsts.stateSucceeded); trans.addQuery('state', '!=', FNMSConsts.stateFailed); trans.orderBy('number'); trans.query(); buf += '\nFailing all hung Import Transaction records: ' + trans.getRowCount(); trans.setValue('state', FNMSConsts.stateFailed); trans.updateMultiple(); // Section:2 Cleanup Import Run // Update all New, Processing and Waiting Import Runs to Failed (there should just be one) // OPTIONALLY you can use a specific Import Run number or guid var importRun = new GlideRecord('x_fls_flexera_fnms_import_run'); importRun.addQuery('state', '!=', FNMSConsts.stateSucceeded); importRun.addQuery('state', '!=', FNMSConsts.stateFailed); importRun.orderBy('number'); importRun.query(); buf += '\nFailing all hung Import Run records: ' + importRun.getRowCount(); importRun.setValue('state', FNMSConsts.stateFailed); importRun.updateMultiple(); // Section:3 Cleanup FNMS Import Data Source records buf += '\nFree up the data source record'; var dataSourceRecordsSysIds = 'dummy'; var dataSourceRecord = new GlideRecord('sys_data_source'); dataSourceRecord.addQuery('name', 'FNMS Import Data Source'); dataSourceRecord.query(); // if(dataSourceRecord.next()) while(dataSourceRecord.next()) { buf += '\nFreeing up data source record'; dataSourceRecordsSysIds += ',' + dataSourceRecord.sys_id; dataSourceRecord.import_set_table_name = ''; dataSourceRecord.update(); } // Section:4 Cleanup Attachments // Delete the old attachments, if any var attachmentRec = new GlideRecord('sys_attachment'); attachmentRec.addQuery('file_name', 'import.xml'); attachmentRec.addQuery('table_name', 'sys_data_source'); attachmentRec.addQuery('table_sys_id', 'IN', dataSourceRecordsSysIds); buf += '\nLooking for existing attachment, import.xml...'; attachmentRec.query(); while(attachmentRec.next()) { buf += '\nFound myimport.xml, deleting...'; var attachment = new GlideSysAttachment(); attachment.deleteAttachment(attachmentRec.sys_id); } // Section:5 Cleanup FNMS Import Schedule record buf += '\nFree up the scheduled import record'; var scheduledImportRecord = new GlideRecord('scheduled_import_set'); scheduledImportRecord.addQuery('name', 'FNMS Import Schedule'); scheduledImportRecord.query(); // if(scheduledImportRecord.next()) while(scheduledImportRecord.next()) { buf += '\nFreeing up scheduled data import record'; scheduledImportRecord.data_source = ''; scheduledImportRecord.update(); } gs.info(buf);