- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-11-2018 10:48 PM
Hi,
I have created an server-side script in ATF to find approvers from approver table
(function(outputs, steps, stepResult, assertEqual) {
// add test script here
var newOrderId = "";
var Record_Number="";
var sysIdforStep6 = 'f64cc4ebdb212300b148bd5139961927';
gs.print('Sys id for request generated in previous step: '+ steps(sysIdforStep6).request_id);
describe("A Run Server Side Script test", function() {
it("has access to previous step's outputs via steps()", function() {
var request_Id = steps(sysIdforStep6).request_id;
//get other deatils from table using new record sys id
var gr = new GlideRecord("sc_request");
gr.addQuery("sys_id",request_Id);
gr.query();
while(gr.next()){
gs.print("New Request number created:: "+ gr.number);
if(gr.number){
Record_Number = gr.number;
}
}
var grApprover = new GlideRecord("sysapproval_approver");
grApprover.addQuery('sysapproval.number',Record_Number);
grApprover.query();
while(grApprover.next()){
gs.print("sysapproval number: "+ grApprover.document_id.number);
gs.print("approver name: "+ grApprover.approver.name);
//gs.print(grApprover.approver.name);
outputs.record_id = grApprover.approver.name;
outputs.table = 'sysapproval_approver';
//outputs.value = grApprover.approver.name;
gs.print("value set to output table: "+outputs.table);
gs.print("value set to outpur variable: "+outputs.record_id);
//gs.print("outputs.value: "+outputs.value);
}
});
});
})(outputs, steps, stepResult, assertEqual);
// uncomment the next line to execute this script as a jasmine test
jasmine.getEnv().execute();
The next step in ATF i have is an 'impersonation' step, where i nee dto impersonate as the user (who is output of server script). However even if after giving "Run Server Side Script.Record", it is not able to fetch the output of server script eventhough the script output shows correct values in logs. please suggest
Solved! Go to Solution.
- Labels:
-
Automated Test Framework

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-12-2018 03:34 AM
Hi
You need to set the output variable as the sysId of the user to be impersonated, i.e.
outputs.record_id = grApprover.approver.sys_id;
--
Best regards
Ankush
P.S. Please mark helpful/correct as appropriate to help fellow Community user in identifying useful answers.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-13-2018 07:25 PM
The solution worked for us ...Thanks a lot
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-17-2021 06:19 AM
I am also stuck in the same scenario... but I am looking for approval in requested item. Could you please tell me what needs to be added in the script if doing for requested item.
Also, please note that requested item(sc_req_item) is fetched from sc_request. So, I have added a record query that finds requested item with requested field as the ordered catalog. Now when I am adding the step sys_id for record query in server script it is giving me huge data of error.
please let me know the exact code.
{
var newOrderId = "";
var Record_Number="";
var reqitem = 'cad9bc4c2fc3201068a1a85df699b61a';
gs.print('Sys id for request generated in previous step: '+ steps(reqitem).request_id);
describe("A Run Server Side Script test", function() {
it("has access to previous step's outputs via steps()", function() {
var request_Id = steps(reqitem).request_id;
//get other deatils from table using new record sys id
var gr = new GlideRecord("sc_req_item");
gr.addQuery("sys_id",request_Id);
gr.query();
while(gr.next()){
gs.print("New Request number created:: "+ gr.number);
if(gr.number){
Record_Number = gr.number;
}
}
var grApprover = new GlideRecord("sysapproval_approver");
grApprover.addQuery('sysapproval.number',Record_Number);
grApprover.query();
while(grApprover.next()){
gs.print("sysapproval number: "+ grApprover.document_id.number);
gs.print("approver name: "+ grApprover.approver.name);
//gs.print(grApprover.approver.name);
outputs.record_id = grApprover.approver.sys_id;
outputs.table = 'sysapproval_approver';
//outputs.value = grApprover.approver.name;
gs.print("value set to output table: "+outputs.table);
gs.print("value set to outpur variable: "+outputs.record_id);
//gs.print("outputs.value: "+outputs.value);
}
});
});
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-17-2021 08:11 AM
Hi, I have the similar query... Could you please look into that. Its really urgent and not able to get the solution. Please find the link below