- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-02-2020 10:07 PM
Hi All,
I am still quite new to using POSTMAN and also learning javascript so any assistance would be greatly appreciated.
OBJECTIVE:
I have an environment array named CI_IDs which contains multiple CI values that I need to convert to host names using the cmdb_ci table in the ServiceNow REST API.
Example: When converted through the table query "1ssfy247rh9" = server1
URL example for single CI: https://X.service-now.com/api/now/table/cmdb_ci/106c5c13c61122750194a1e96cfde951
I have to figure out how to code and get POSTMAN to query each of these values in the array until it runs out.
Below is my current code:
Pre-request Script:
var cis_id = pm.environment.get("CI_IDs"); // variable "cis_id" = environment variable of "CI_IDs"
var current_ci_id = cis_id.shift(); // Take the first value within cis_id and pass it on to variable current_ci_id
pm.environment.set("EVcurrent_ci_id", current_ci_id); // pass current_ci_id value to an environment variable called "EVcurrent_ci_id".
We then use environment variable EVcurrent_ci_id for the first URL request:
https://X.service-now.com/api/now/table/cmdb_ci/{{EVcurrent_ci_id}}
// This one returned back a response body successfully for that single CI.
Now after the first request has ran it will move to the "Tests" tab for post script (Trying to get POSTMAN to run another request here):
var cis_id = pm.environment.get("CI_IDs"); // variable "cis_id" = environment variable of "CI_IDs"
// For the below, if cis_id length is higher than 0 run another request with the specified URL (I don't know what to put for the URL)
if (cis_id && cis_id.length > 0) {
postman.setNextRequest("https://X.service-now.com/api/now/table/cmdb_ci/") // How should I put the request url in this line to make it look into the values within the array???
} else { // If else, cis_id is null, set URL request to null.
postman.setNextRequest(null);
}
Will this return multiple response bodies?
Thank you for viewing.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-02-2020 11:38 PM
Hi,
So you have list of CI sys-ids in an array and get the host name
You can use the combine array in the query
Once you get the response you can iterate over the json object one by one
https://X.service-now.com/api/now/table/cmdb_ci?sysparm_query=sys_idINCI_IDs
Regards
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-02-2020 10:53 PM
Hi,
Are you saying in response you will get multiple values and want to iterate over that again using the API?
Regards
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-02-2020 10:59 PM
Hi Ankur,
Thanks for your response.
So I already have multiple ci_name values in the array called CI_IDs that I need to convert to host name using the cmdb table.
I just need POSTMAN to run GET requests for all of these values within the array. At this stage i guess I just want all the response to appear in the response body. I have tried using the above code.
Is this possible?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-02-2020 11:38 PM
Hi,
So you have list of CI sys-ids in an array and get the host name
You can use the combine array in the query
Once you get the response you can iterate over the json object one by one
https://X.service-now.com/api/now/table/cmdb_ci?sysparm_query=sys_idINCI_IDs
Regards
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-03-2020 12:36 AM
Hi Ankur,
Thank you for your help once again. It succeeded. I'm not sure why i didn't think of using
https://X.service-now.com/api/now/table/cmdb_ci?sysparm_query=sys_idINCI_IDs
probably because I thought it wasn't possible at first.
Well it worked and I was able to pass all these hostnames into an environment array.
Thank you once again, you're the best!!!