- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-28-2017 10:58 PM
Hello,
I had a table u_master, if i entered 'u_name' in u_master table,
Assignment group in another table named u_ticket should be updated based on the department of user(u_name) in u_master table.
If user belongs to IT department then the assignment group be changes to Software in U-ticket table.
my code is
(function executeRule(current, previous /*null when async*/) {
// Add your code here
var gr= new GlideRecord('u_ticket');
gr.initialize();
gr.category=current.u_category;
gr.u_short_description=current.u_short_description;
//gr.u_caller_name=current.u_name;
gr.u_caller_id=current.u_name.toString();
var target = new GlideRecord('sys_user');
target.addQuery('department',current.u_bavk);
target.query();
if(target.next())
{
//gs.info('found user '+target.sys_id);
if(target.name.department == '8e7458c7db2132004dba5c00cf9619b2'){ // pass the sys_id of the Axis Department
gr.u_assignment_group='2605925bdba532004dba5c00cf9619eb'; //Please pass the sys_id of the Axis rectify Group.
gr.setReadOnly('u_assignment_group','true');
}
//gr.u_assignment_group = target.sys_id;
}
gr.insert();
Can any one help me out??
Thanks.
Nitesh
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-29-2017 10:11 AM
Hi Nitesh,
The best way to implement this is via Business Rules. Please create an after Insert Business rule in u_master table with the below script. Please inactive all the existing Client Scripts which were created for this requirement and give it a try.
(function executeRule(current, previous /*null when async*/) {
var name;
var group;
var user_name = current.u_name;
var user = new GlideRecord('sys_user');
user.addQuery('name', user);
user.query();
if(user.next()){
name = user.sys_id;
if(user.department == '8e7458c7db2132004dba5c00cf9619b2'){ //Sys_id of Axis Department
group = '2605925bdba532004dba5c00cf9619eb'; //Sys_id of Axis Group
}
var ticket = new GlideRecord('u_ticket');
ticket.initialize();
ticket.category = current.u_category;
ticket.u_short_description = current.u_short_description;
ticket.u_caller_id = name;
ticket.u_assignment_group = group;
ticket.insert();
gs.addInfoMessage('New Ticket is created');
}
else{
gs.addInfoMessage('New Ticket can not be created. Please provide valid User name');
}
})(current, previous);
I hope this helps.Please mark correct/helpful based on impact

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-28-2017 11:17 PM
Hey Nitesh,
Use ASSIGNMENT RULES for your requirement.
Refer this -
Defining Assignment Rules - ServiceNow Wiki
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-28-2017 11:21 PM
Hi Nitesh,
If you want to do this configuration done in the Client Script please find the below snapshot. Please create a new onChange Clent script on change of the field 'u_name'.
Although, as per Best Practice, I would suggest to do all the server side queries and all in the Script include and call it in the Client Side using GlideAJAX. But I have just modified your code in the client side itself.
I hope this helps.Please mark correct/helpful based on impact
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-28-2017 11:59 PM
thanks for response amlan,
i need to update u_ticket table(create a record) when i click on submit in u_master table.
I am agree with you that Script include and call it in the Client Side using GlideAJAX. But as i am not so much familiar with Script Include, i am using Business rule.
I tried using client script Onchange, but u_ticket table not updating as when clicked submit in i_master table. All fields are changing when i opens the record manually.
Can you please provide me Script Include code.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-29-2017 03:24 AM
Hi Nitesh,
Yes, I can provide you the necessary codes. But to do so, I need to clarify couple of things from your side.
1. onSubmit of a New Record in 'u_maste'r table a record should get created in 'u_ticket' table. Correct?
2. Is the field 'u_name' in the 'u_master' table is a reference field referring 'sys_user' table? Also 'u_caller_id' in the 'u_ticket' table is a reference field referring 'sys_user' table?
3. Is 'u_assignment_group' in 'u_ticket' table refers 'sys_user_group'?
4. If the person selected in 'u_name' field in 'u_master' table belongs from 'Axis Department' (bifurcated by sys_id) then the corresponding newly created record in 'u_ticket' should have 'Axis Group' (bifurcated by sys_id) in it's 'u_assignment_group' field. Correct?