We've updated the ServiceNow Community Code of Conduct, adding guidelines around AI usage, professionalism, and content violations. Read more

Transform Map issue

Debasis Pati
Kilo Sage

Hello All,
i have a excel sheet data with updatedgroupname and existinggroupname values.
i need to update the data existinggroupname is coelece so that it wont create updated fileds also i have created one on before script to do the name change.

gs.info("test123------"+source.u_updatedgroupname);
    target.name = source.u_updatedgroupname;
  
The issue is group name is not updating.
@Ankur Bawiskar any suggestions?

1 ACCEPTED SOLUTION

@Debasis Pati 

yes it won't work to give security_admin via script.

Not a good practice to give security_admin via script even if it's feasible

security_admin role should be given only by Security admins and it should be a manual activity.

I believe I answered your original and subsequent questions.

💡 If my response helped, please mark it as correct and close the thread 🔒— this helps future readers find the solution faster! 🙏

Regards,
Ankur
Certified Technical Architect  ||  10x ServiceNow MVP  ||  ServiceNow Community Leader

View solution in original post

17 REPLIES 17

Ankur Bawiskar
Tera Patron

@Debasis Pati 

updating a coalesce field is not a good practice because that's the primary identifier for the system to determine if insert/update happens.

-> Don't use any field map

-> in excel have 2 columns, existing group, new group

-> use onBefore transform script

(function runTransformScript(source, map, log, target /*undefined onStart*/ ) {

    // Add your code here
    var gr = new GlideRecord("sys_user_group");
    gr.addQuery("name", source.u_existing_name);
    gr.query();
    if (gr.next()) {
        gr.name = source.u_updated_name;
        gr.update();
    }
    ignore = true;

})(source, map, log, target);

💡 If my response helped, please mark it as correct and close the thread 🔒— this helps future readers find the solution faster! 🙏

Regards,
Ankur
Certified Technical Architect  ||  10x ServiceNow MVP  ||  ServiceNow Community Leader

Hello @Ankur Bawiskar ,
If the record is not present then i need to create a record in the group table with the new name also that's why i have used field map and also i have other fields too to map around 3-4 fields also i have roles record also to be created if not present in the sysgroup_has_role table.

@Debasis Pati 

I will still recommend not to use onBefore since you are trying to update coalesce field

in onBefore handle the insert logic along with other fields

(function runTransformScript(source, map, log, target /*undefined onStart*/ ) {

    // Add your code here
    var gr = new GlideRecord("sys_user_group");
    gr.addQuery("name", source.u_existing_name);
    gr.query();
    if (gr.next()) {
        gr.name = source.u_updated_name;
        gr.update();
    }
	else{
		// creation logic and role logic
	}
	ignore = true;
   
})(source, map, log, target);

💡 If my response helped, please mark it as correct and close the thread 🔒— this helps future readers find the solution faster! 🙏

Regards,
Ankur
Certified Technical Architect  ||  10x ServiceNow MVP  ||  ServiceNow Community Leader

okay so i will remove the filed mappings and coalesce and will update from there on before script itself my understanding is correct right?