- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-14-2019 10:14 AM
Hello team,
I'm currently working on a test case in Automated Test Framework in the Discovery area.
I have a "Record Query" test step that returns a specific record from the discovery_device_history table. In the following step I execute some validations in the fields successfully.
In the following step, I have a Run Server Side Script test step that I want to get the CMDB CI value of the discovery_device_history record and use it as an Output - so in the next steps I can open and validate the CI record.
Here is my script:
(function(outputs, steps, stepResult, assertEqual) {
var sysIDstep1 = 'fakkeekkeekk773006d50f9baae961987'; //Step 1 Sys ID
var recordIDStep1 = steps(sysIDstep1).record_id;
var record_id;
outputs.table = 'cmdb_ci_linux_server';
outputs.record_id = recordIDStep1.cmdb_ci;
stepResult.setOutputMessage("Output: "+ sysIDstep1 + recordIDStep1 + record_id);
})(outputs, steps, stepResult, assertEqual);
My output:
Output: fakkeekkeekk773006d50f9baae961987undefinedundefined
Any suggestion of what I am doing wrong and how I can fix the script? So the CI becomes my output?
Thank you in advance.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-10-2019 02:01 PM
Hi Elijah
Sorry for the late response. Yes, I figured a way to do it! 🙂
(function(outputs, steps, stepResult, assertEqual) {
// Returns the server sys_id, using Step that has Device History as output
var recordIDStep10 = steps('SYS ID OF THE STEP').first_record;
// Gets the zOS server data/record
var queryString = "sys_id=" + recordIDStep10;
var request = new GlideRecord('discovery_device_history');
request.addEncodedQuery(queryString);
request.query();
var theIDIwant = '';
if (request.next()) {
theIDIwant = request.cmdb_ci;
} else {
// Doesn't exists a server - Failure
}
var record_id;
outputs.record_id = theIDIwant;
stepResult.setOutputMessage("SYSID: " + recordIDStep10 + " SYS ID of CI: " + theIDIwant);
})(outputs, steps, stepResult, assertEqual);

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-17-2019 10:45 AM
I'm having the same problem, did you figure out any solutions?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-10-2019 02:01 PM
Hi Elijah
Sorry for the late response. Yes, I figured a way to do it! 🙂
(function(outputs, steps, stepResult, assertEqual) {
// Returns the server sys_id, using Step that has Device History as output
var recordIDStep10 = steps('SYS ID OF THE STEP').first_record;
// Gets the zOS server data/record
var queryString = "sys_id=" + recordIDStep10;
var request = new GlideRecord('discovery_device_history');
request.addEncodedQuery(queryString);
request.query();
var theIDIwant = '';
if (request.next()) {
theIDIwant = request.cmdb_ci;
} else {
// Doesn't exists a server - Failure
}
var record_id;
outputs.record_id = theIDIwant;
stepResult.setOutputMessage("SYSID: " + recordIDStep10 + " SYS ID of CI: " + theIDIwant);
})(outputs, steps, stepResult, assertEqual);