- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-14-2019 05:16 AM
in ATF usually we need to select a member of assignment group to impersonate and now we got a requirement to make it dynamic like select any one from assignment group to be impersonated.
for example : if Group A is having 6 users then system has to impersonate to anyone of 6 users (randomly)
here is the piece of code i am using but not worked 'Run Server Side Script' before the impersonation step
(function(outputs, steps, stepResult, assertEqual) {
var group ;
var chg = new GlideRecord('change_request');
chg.get(steps('795486dbdb51f7000eb3ec51ca9619ee').record_id); //substitute the sys_id from the previous test step that references your change request
chg.query();
while(chg.next()){
group = chg.assignment_group;
}
var grMember = new GlideRecord('sys_user_grmember');
grMember.addQuery('group', group); //call group with sys_id
grMember.query();
if (grMember.next()) { //this will get the first group member record that is returned
outputs.table = 'sys_user';
outputs.record_id = grMember.user;
if (outputs.record_id) {
stepResult.setOutputMessage("Successfully collected user sys_id");
return true;
} else {
stepResult.setOutputMessage("Failed to collect user sys_id"); //This likely means that the group member record is bad
return false;
}
} else {
stepResult.setOutputMessage("Failed to find group members"); //This likely means that there are no group members
return false;
}
})(outputs, steps, stepResult, assertEqual);
Solved! Go to Solution.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-14-2019 07:05 AM
Hi
I try this on Incident record, which is created by step: Open New Form and after step: Submit a Form and use this record sys_id in step: Run Server Side Script.
Please go through the below code.
Hopefully, it will helpful for you.
Regards,
Vaibhav Chaudhari
(function(outputs, steps, stepResult, assertEqual) {
describe('making jasmine wiggle when poked', function (){
var STEP_3_SYS_ID= '31dc97d3371533008020036973990eb8'; // Incident Submit form step sys_id
it('any RITM exist from STEP_3', function(){
var step_3_output = steps(STEP_3_SYS_ID);
gs.warn(JSON.stringify(step_3_output));
gs.warn("record_id = " + step_3_output.record_id);
gs.warn("------------------------------------------------------");
var INC = new GlideRecord('incident');
INC.addQuery('sys_id',step_3_output.record_id);
INC.query();
INC.next();
gs.log("Found Group : " + INC.assignment_group);
gs.log("Found INC : " + INC.number);
gs.log("Found Caller : " + INC.caller_id);
var grMember = new GlideRecord('sys_user_grmember');
grMember.addQuery('group',INC.assignment_group); //call group with sys_id
grMember.query();
if(grMember.next()) { //this will get the first group member record that is returned
expect(grMember.next());
outputs.table = 'sys_user_grmember';
outputs.record_id = grMember.user.sys_id;
gs.log("Found User : " + grMember.user.sys_id);
stepResult.setOutputMessage("Successfully collected user sys_id");
var sys_id = outputs.record_id;
}
});
});
})(outputs, steps, stepResult, assertEqual);
jasmine.getEnv().execute();
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-16-2019 02:42 AM
Vaibhav, can you help us on this requirement
we are configuring ATF on change request and required to impersonate to user(randomly from approval group) who is awaiting for approvals for the change.