Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Help with API response

Ankita9793
Tera Contributor

Hi All,

 

Can someone please help me with the below script, I want to push targetName in an array. 
From API response, I am only able to read count but not targetName or lenght. Please refer below screenshots. (alert('res' + response.count + response.targetName + response.lenght );) 

 

 

function onChange(control, oldValue, newValue, isLoading) {
    if (isLoading || newValue == '') {
        return;
    }

    var group = g_form.getValue('enter_xmatters_group');
    var admin = [];
    alert('group' + group);
    hsbcShowHideLoaderCatalog();

    var getMembers = new GlideAjax('XMattersAPIhelper');
    getMembers.addParam('sysparm_name', 'getSupervisor');
    getMembers.addParam('sysparm_grp', group);
    getMembers.getXMLAnswer(setans);

    function setans(answer) {
        hsbcShowHideLoaderCatalog('hide');
        var ans = JSON.stringify(answer);
        alert('getXMLAnswer' + JSON.stringify(answer) +ans);
       
        response = JSON.parse(answer);
        alert('res' + response.count + response.targetName + response.lenght );

        if (response.count != 0 && response.targetName != '') {
            for (var i = 0; i <= response.lenght; i++) {
                while (response.targetName.next())
                    admin.push(response.targetName);

                alert('Admin' + admin);

                g_form.setValue('list_group_admins', admin);


            }

        }
    }
}

SCRIPT INCLUDE :

var XMattersAPIhelper = Class.create();
XMattersAPIhelper.prototype = Object.extendsObject(AbstractAjaxProcessor, {

    /*_________________________________________________________________
    * Description: Returns group admin
    * Parameters: sysparm_grp [ string ] - group name
    * Returns: region
    ________________________________________________________________*/

    getSupervisor: function() {

        this.REST_MESSAGE = gs.getProperty('hsbc.domino.rest.message'); //Domino API - PreProd
        this.REST_METHOD = "Get supervisors";

        var r = new sn_ws.RESTMessageV2(this.REST_MESSAGE, this.REST_METHOD);
        var params = hsbcGlobalConstants.getApiConstant() || {};
        params.group_name = this.getParameter('sysparm_grp');

        gs.log('xmatters sup1' + JSON.stringify(params));

        for (var p in params) {
            r.setStringParameterNoEscape(p, params[p]);
        }
        //r.setStringParameterNoEscape('getSupervisor', this.getParameter('sysparm_grp'));
        var response = r.execute();

        gs.log('xmatters sup' + JSON.stringify(response));

        var responseObj = hsbcGlobalConstants.canParseJson(response.getBody());

        if (response.getStatusCode() != '200') return false;

        if (!responseObj) return false;

        //return responseObj();

        return response.getBody();

    },


    type: 'XMattersAPIhelper'
});
 
 
Ankita9793_0-1722945768147.pngAnkita9793_1-1722945814458.png

 

2 REPLIES 2

ShubhamGarg
Kilo Sage

Hello @Ankita9793 ,

 

To help you better, Can you also provide the code defined in function - getSupervisor ?

 

Regards,

Shubham

Hi @ShubhamGarg 


Sure, Please find below code.

 

 

var XMattersAPIhelper = Class.create();
XMattersAPIhelper.prototype = Object.extendsObject(AbstractAjaxProcessor, {

    /*_________________________________________________________________
    * Description: Returns group admin
    * Parameters: sysparm_grp [ string ] - group name
    * Returns: region
    ________________________________________________________________*/

    getSupervisor: function() {

        this.REST_MESSAGE = gs.getProperty('hsbc.domino.rest.message'); //Domino API - PreProd
        this.REST_METHOD = "Get supervisors";

        var r = new sn_ws.RESTMessageV2(this.REST_MESSAGE, this.REST_METHOD);
        var params = hsbcGlobalConstants.getApiConstant() || {};
        params.group_name = this.getParameter('sysparm_grp');

        gs.log('xmatters sup1' + JSON.stringify(params));

        for (var p in params) {
            r.setStringParameterNoEscape(p, params[p]);
        }
        //r.setStringParameterNoEscape('getSupervisor', this.getParameter('sysparm_grp'));
        var response = r.execute();

        gs.log('xmatters sup' + JSON.stringify(response));

        var responseObj = hsbcGlobalConstants.canParseJson(response.getBody());

        if (response.getStatusCode() != '200') return false;

        if (!responseObj) return false;

        //return responseObj();

        return response.getBody();

    },


    type: 'XMattersAPIhelper'
});