How to trigger a Transform Map from a Script Include in Scheduled Job?

HaridasP
Tera Contributor

Hi Community,

I'm trying to trigger a Transform Map from a Script Include, which will be called via a Scheduled Job to fulfill a business need.

Here's the code I'm using:

var gr = new GlideRecordSecure("isr_incident_table");
gr.addQuery("state", "pending");
gr.query();

var tm = new GlideTransformMap();
var transformMapSysId = transform_map_id;

if (transformMapSysId) {
    while (gr.next()) {
        tm.transformRecord(gr, transformMapSysId);
    }
} else {
    gs.error("Transform Map not found.");
}

 However, I get this error:

Java constructor for "com.glide.db.impex.transformer.GlideTransformMap" with arguments "" not found.

Can someone please guide me on the correct way to run a Transform Map from script?

Thanks!

 

2 REPLIES 2

mohdarbaz
Kilo Guru

Hi @HaridasP ,

You're encountering error because GlideTransformMap is not intended to be instantiated directly via new GlideTransformMap() in server-side scripts like Script Includes or Scheduled Jobs. Instead, use GlideImportSetTransformer() for programmatically triggering a transform map.

 

Use GlideImportSetTransformer() instead of GlideTransformMap(). 

For more details refer below articles:

GlideImportSetTransformer - Scoped, Global | ServiceNow Developers

GlideImportSetTransformer - Scoped, Global

 

If my response has helped you hit helpful button and if your concern is solved do mark my response as correct.

 

Regards,

Mohd Arbaz.

 

 

Nitish Saini
Mega Guru

Hi @HaridasP 

Please use GlideImportSetRun instead  of GlideTransformMap()
Please try below code :-

(function executeTransform() {
var isrGR = new GlideRecord("isr_incident_table");
isrGR.addQuery("state", "pending");
isrGR.query();

while (isrGR.next()) {
var importRec = new GlideRecord("your_import_set_table"); 
importRec.initialize();
importRec.u_field1 = isrGR.field1;
importRec.u_field2 = isrGR.field2;
// ... map all necessary fields
importRec.insert();
}
var importSetRun = new GlideImportSetRun();
importSetRun.setImportSetTableName("your_import_set_table");
importSetRun.setTransformMap("your_transform_map_sys_id"); 
importSetRun.setRunType("file"); 
var result = importSetRun.runImportSet();

gs.info("Transform complete: " + result);
})();

Please accept my answer and mark as helpful/correct if it resolves your query.

Regards, 
Nitish