How to trigger a Transform Map from a Script Include in Scheduled Job?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-01-2025 09:29 AM
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!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-01-2025 09:38 AM
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-01-2025 11:22 AM
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