Custom action to load import set records and complete the transform
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
Hi,
We have created a custom action to load the data and complete the transform map. We would like to return number of rows processed, inserted and updated but the script is not working as expected. Can someone point me where iam going wrong? I even tried GlideRecord of sys_import_set_run_list but still its not working.
(function execute(inputs, outputs) {
// 1. Load the Data Source record
var ds = new GlideRecord('sys_data_source');
if (!ds.get(inputs.dataSourceSysId)) {
outputs.status = 'ERROR: Data Source not found';
return;
}
// 2. Initialize the loader and get/import-set record
var loader = new GlideImportSetLoader();
var impSetGR = loader.getImportSetGr(ds);
if (!impSetGR || !impSetGR.sys_id) {
outputs.status = 'ERROR: Could not initialize Import Set';
return;
}
// 3. Load file into import-set table
// Signature: loadImportSetTable(GlideRecord importSetRec, GlideRecord dataSourceRec)
loader.loadImportSetTable(impSetGR, ds);
impSetGR.state = 'loaded';
impSetGR.update();
// 4. Run all transform maps on this import-set
var transformer = new GlideImportSetTransformer();
transformer.transformAllMaps(impSetGR);
// 5. Grab the Import Set Run and summarize results
var run = transformer.getImportSetRun();
if (!run) {
outputs.status = 'ERROR: Transform did not execute';
return;
}
outputs.status = 'SUCCESS';
outputs.import_set_id =impSetGR.number;
//impSetGR.getUniqueValue();
outputs.rows_processed =run.getRowCount();
outputs.rows_inserted = run.getInsertCount();
outputs.rows_updated = run.getUpdateCount();
outputs.rows_errors = run.getErrorCount();
})(inputs, outputs);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
hey @MercBuilding
try this :
(function execute(inputs, outputs) {
// 1. Validate Data Source
var ds = new GlideRecord('sys_data_source');
if (!ds.get(inputs.dataSourceSysId)) {
outputs.status = 'ERROR: Data Source not found';
return;
}
try {
// 2. Initialize Import Set Loader
var loader = new GlideImportSetLoader();
var importSetGR = loader.getImportSetGr(ds);
if (!importSetGR || !importSetGR.sys_id) {
outputs.status = 'ERROR: Could not initialize Import Set';
return;
}
// 3. Load data into Import Set table
loader.loadImportSetTable(importSetGR, ds);
importSetGR.state = 'loaded';
importSetGR.update();
// 4. Run Transform Maps
var transformer = new GlideImportSetTransformer();
transformer.transformAllMaps(importSetGR);
// 5. Query latest Import Set Run record
var runGR = new GlideRecord('sys_import_set_run');
runGR.addQuery('import_set', importSetGR.sys_id);
runGR.orderByDesc('sys_created_on');
runGR.setLimit(1);
runGR.query();
if (!runGR.next()) {
outputs.status = 'ERROR: Transform did not execute';
return;
}
// 6. Return results
outputs.status = 'SUCCESS';
outputs.import_set_id = importSetGR.getValue('number');
outputs.import_set_sysid = importSetGR.getUniqueValue();
outputs.rows_processed = runGR.getValue('rows_processed');
outputs.rows_inserted = runGR.getValue('rows_inserted');
outputs.rows_updated = runGR.getValue('rows_updated');
outputs.rows_ignored = runGR.getValue('rows_ignored');
outputs.rows_errors = runGR.getValue('rows_errors');
} catch (ex) {
outputs.status = 'ERROR: ' + ex.message;
}
})(inputs, outputs);
*************************************************************************************************************
If this response helps, please mark it as Accept as Solution and Helpful.
Doing so helps others in the community and encourages me to keep contributing.
Regards
Vaishali Singh
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
hey @MercBuilding
Hope you are doing well.
Did my previous reply answer your question?
If it was helpful, please mark it as correct ✓ and close the thread 🔒. This will help other readers find the solution more easily.
Regards,
Vaishali Singh
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
Hi @vaishali231 ,
Thanks for replying, but its not working. I have tried the same logic yesterday but didnt work.

