Import set table

newbiedeveloper
Giga Contributor

Hi All,

We have a datasource set up which runs and create new ISET num on daily basis in import set table.

Is there a way I can query the import set table to get the latest one created by my datasource and then transform the data to a existing SNOW table?

Can someone please help with how to script this may b using an UI Action?

Thanks

Subhara

1 ACCEPTED SOLUTION

Please re-review my Consumerize data load blog entry.   My code includes updating the import set rows with the task number after processing the data source and before running the transform:



// Process excel file  


var loader = new GlideImportSetLoader();  


var importSetRec = loader.getImportSetGr(current);  


var ranload = loader.loadImportSetTable(importSetRec, current);  


importSetRec.state = "loaded";  


importSetRec.update();  


 


// Update processed rows with task sys_id  


var importSetRow = new GlideRecord(importSetTableName);  


importSetRow.addQuery("sys_import_set", importSetRec.sys_id);  


importSetRow.query();  


while (importSetRow.next()) {  


      importSetRow[importSetTaskIDFieldName] = producer.task_number;  


      importSetRow.update();  


}  


 


// Transform import set  


var transformWorker = new GlideImportSetTransformerWorker(importSetRec.sys_id, transformMapID);  


transformWorker.setBackground(true);  


transformWorker.start();  


View solution in original post

9 REPLIES 9

newbiedeveloper
Giga Contributor

Hi michael.ritchie


I did go though your blog "



"Consumerize" Data Imports to Non-ServiceNow Administrators


I want a similar functioanlity where we wil pick up data from importsets and then transform it. I took guidance from your script and wrote this Ui Action. The data that it fetch for final transform is fine and the transform is also running just that it inserts blank records in task_ci table for CI and Task fields. Can you please give a little guidance where I could have one wrong?



This is the UI Action I wrote. The trasform map isnt running.



var datasource = new GlideRecord('sys_data_source');


datasource.addQuery('name','cmdb_ci (7)');


datasource.query();


while(datasource.next())


{


gs.addInfoMessage("This" +datasource.name);


var importset = new GlideRecord('sys_import_set');


importset.addQuery('data_source',datasource.sys_id);


importset.orderByDesc('sys_created_on');


importset.query();


if(importset.next())


{


      gs.addInfoMessage(datasource.name);


      var importset_num = importset.number;


      gs.addInfoMessage(importset_num);



      var t = new GlideImportSetTransformerWorker(importset_num.sys_id,'d77ae7234f022200658b22d18110c71f' );//transformMap.sys_id);


           


          t.setBackground(true);


          t.start();


   


}


}



Thanks


Subhara


Change the line "   var t = new GlideImportSetTransformerWorker(importset_num.sys_id,'d77ae7234f022200658b22d18110c71f' );//transformMap.sys_id);" tp


"   var t = new GlideImportSetTransformerWorker(importset.sys_id,'d77ae7234f022200658b22d18110c71f' );//transformMap.sys_id);"


Hi Abhinay,



My transform map was wrong so it was inserting blank rows. I correced it and now it inserts the CI in task_ci table but task field is blank becuase my transform map dont have any value for that.


Can i capture the value somewhere and store it in Task field???



Please help me .. where i am going wrong


Please re-review my Consumerize data load blog entry.   My code includes updating the import set rows with the task number after processing the data source and before running the transform:



// Process excel file  


var loader = new GlideImportSetLoader();  


var importSetRec = loader.getImportSetGr(current);  


var ranload = loader.loadImportSetTable(importSetRec, current);  


importSetRec.state = "loaded";  


importSetRec.update();  


 


// Update processed rows with task sys_id  


var importSetRow = new GlideRecord(importSetTableName);  


importSetRow.addQuery("sys_import_set", importSetRec.sys_id);  


importSetRow.query();  


while (importSetRow.next()) {  


      importSetRow[importSetTaskIDFieldName] = producer.task_number;  


      importSetRow.update();  


}  


 


// Transform import set  


var transformWorker = new GlideImportSetTransformerWorker(importSetRec.sys_id, transformMapID);  


transformWorker.setBackground(true);  


transformWorker.start();