GlideImportSetTransformer adding multiple transform Map
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-30-2013 05:47 AM
I am trying to create a data source at run time. This data source have multiple transform maps. So I am creating a temporary data source and triggering a import set using below syntax
var loader = new GlideImportSetLoader();
var importSetGr = loader.getImportSetGr(tempDataSource);
var ranload = loader.loadImportSetTable(importSetGr, tempDataSource);
importSetGr.data_source = tempDataSource.sys_id;
importSetGr.state = 'loaded';
importSetGr.update();
Now I am creating a GlideImportSetTransformer object to set transform map and to start it
var t = new GlideImportSetTransformer();
but I want to add multiple transform maps to the import set loader which is the correct function to implement it?
Please suggest if there is any better to achieve this task?
- Labels:
-
Orchestration (ITOM)
-
Service Mapping

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎10-07-2013 07:15 AM
Instead of doing this, what you could do (that would be much easier) is to create and import set table and associated transform maps before this data load. Then, via script, you can simply insert data into the import set table and it will be transformed for you automatically.
Take a look at the ImportSetUtil script include as it is very handy for doing work like this.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎12-10-2013 10:36 PM
Like Jacob suggested, inserting records into any table that extended sys_import_set_row will kick off the creation of an import set and transform with all maps associated.
However, I also wanted to investigate how you can do it all yourself - below code worked for me 😉
//pass the import set table name
processDataSource("u_imp_user");
function processDataSource(source) {
var dataSource = new GlideRecord("sys_data_source");
if(dataSource.get("import_set_table_name", source)){
var loader = new GlideImportSetLoader();
var importSetGr = loader.getImportSetGr(dataSource);
loader.loadImportSetTable(importSetGr, dataSource);
doTransform(importSetGr);
}
}
function doTransform(set){
var importSetRun = new GlideImportSetRun(set.getUniqueValue());
var importLog = new GlideImportLog(importSetRun, set.data_source.name);
var ist = new GlideImportSetTransformer();
ist.setLogger(importLog);
ist.setImportSetRun(importSetRun);
ist.transformAllMaps(set);
}