Name
global.GetITService
Description
This script returns a JSON containing the CIs and relations in application service. this script will work on fully manual services only
Script
var GetITService = Class.create();
var msg = "";
GetITService.prototype = {
initialize: function() {
},
/*
* populagte the msg member and throw exception
*/
throwError : function (err) {
msg = err;
gs.log("msg = " + msg);
throw new sn_ws_err.BadRequestError(err);
},
/*
* process the input JSON. Create or udpate a service and populate it with CIs
*/
process : function(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
var bsId = request.pathParams.sys_id + '';
var errorId = "";
var responseObj = {};
responseObj['relations'] = [];
var manualEpBeforeChange;
var modeParam = request.queryParams["mode"];
var shallow = true;
if (modeParam && modeParam == 'full')
shallow = false;
response.setStatus(200);
response.setContentType('application/json');
try {
var bsGr = new GlideRecord('cmdb_ci_service_discovered');
if (!bsGr.get(bsId))
this.throwError(gs.getMessage("Business service {0} not found in the CMDB", bsId));
// Validate the service_type is manual or empty
if (bsGr.type == '2')
this.throwError(gs.getMessage("This API is allowed to operate only on empty or manual service. This service contains discovered elements"));
var responseString = '/api/now/table/cmdb_ci_service_discovered/' + bsId;
responseObj['url'] = responseString;
responseObj['name'] = bsGr.name;
response.setBody(responseObj);
var bsm = new SNC.BusinessServiceManager();
var serviceJson = bsm.getService(bsId, shallow);
if (bsm.error)
msg = bsm.error;
var writer = response.getStreamWriter();
writer.writeString(serviceJson);
}catch (e){
// Build the error message
if (!msg)
msg = gs.getMessage("Failed to get service content: {0}", e.message);
else
msg = gs.getMessage("Failed to get service content: {0}", msg);
}
if (msg !== "") {
response.setStatus= 400;
throw new sn_ws_err.BadRequestError(msg);
}
},
type: 'GetITService'
};
Sys ID
1d12cda1c39303003e76741e81d3ae41