We've updated the ServiceNow Community Code of Conduct, adding guidelines around AI usage, professionalism, and content violations. Read more

response to be converted into integer type

Vijay Baokar
Kilo Sage

Hi Team,

I am getting response in floating but i need to have data type as integer in postman response. 

How can i change the data type into integer ?

retrieveUsers: function(pageNumber, pageLength) {
        try {
            var users = [];

            // Default pagination values
            pageNumber = parseInt(pageNumber, 10) || 1;
            pageLength = parseInt(pageLength, 10) || 10;

            // if (isNaN(pageNumber) || pageNumber < 1) pageNumber = 1;
            // if (isNaN(pageLength) || pageLength < 1) pageLength = 10;

            var offset = (pageNumber - 1) * pageLength;

            // Count total users with 'hp.com' email.
            var countGR = new GlideAggregate('sys_user');
            countGR.addEncodedQuery('active=true^emailLIKEhp.com');
            countGR.addAggregate('COUNT');
            countGR.query();

            var totalCount = 0;
            if (countGR.next()) {
                totalCount = parseInt(countGR.getAggregate('COUNT'), 10);
            }

            var totalPages = Math.ceil(totalCount / pageLength);
            if (pageNumber > totalPages && totalPages > 0) {
                return this._errorResponse(400, "Invalid page number. Requested pageNumber: " + pageNumber + " exceeds total available pages: " + totalPages);
            }

            // Fetch paginated users
            var gr_user = new GlideRecord('sys_user');
            gr_user.addEncodedQuery('active=true^emailLIKEhp.com');
            gr_user.orderBy('name');
            gr_user.chooseWindow(offset, offset + pageLength);
            gr_user.query();

            while (gr_user.next()) {

                var vamCountryName = this.getCountryName(gr_user.u_country_vam_countries);
                var bcmCountryName = this.getCountryName(gr_user.u_country_bcm_countries);
                var somCountryName = this.getCountryName(gr_user.u_country_som_countries);
                var market = this.getCountryName(gr_user.u_supported_market_for_market_vam_role);

                users.push({
                    user_id: gr_user.getValue('user_name'),
                    user_email_address: gr_user.getValue('email'),
                    employee_id: gr_user.getValue('employee_number'),
                    status: gr_user.getDisplayValue('active') === 'true' ? 'Active' : 'Inactive',
                    created_date: gr_user.getValue('sys_created_on'),
                    created_by: gr_user.getValue('sys_created_by'),
                    updated_by: gr_user.getValue('sys_updated_by'),
                    updated_date: gr_user.getValue('sys_updated_on'),
                    country_vam_countries: vamCountryName,
                    country_bcm_countries: bcmCountryName,
                    country_som_countries: somCountryName,
                    market_markets: market

                });
            }

            var result = {
                pageNumber: pageNumber,
                pageLength: pageLength,
                totalRecords: totalCount,
                totalPages: totalPages,
                "Status Code": 200,
                "Message": users.length > 0 ? "Users retrieved successfully." : "No users with active status and 'hp.com' email domain were found.",
                users: users
            };
 
Postman response i am getting:
 
"result": {
        "pageNumber": 1.0,
        "pageLength": 10,
        "totalRecords": 88.0,
        "totalPages": 9.0,
        "Status Code": 200,
 
it has to be in integer type and should not be like 1.0 or 88.0
8 REPLIES 8

Nilesh Pol
Kilo Sage

@Vijay Baokar you can explicitly convert them to integers using parseInt() or by ensuring they are calculated as integers.

var result = {
pageNumber: parseInt(pageNumber, 10),
pageLength: parseInt(pageLength, 10), 
totalRecords: parseInt(totalCount, 10), 
totalPages: parseInt(totalPages, 10), 
"Status Code": 200,
"Message": users.length > 0 ? "Users retrieved successfully." : "No users with active status and 'hp.com' email domain were found.",
users: users
};

@Nilesh Pol its still giving me the same result.

Ankur Bawiskar
Tera Patron

@Vijay Baokar 

either use parseInt() while setting result

OR

handle it in previous line of codes

💡 If my response helped, please mark it as correct and close the thread 🔒— this helps future readers find the solution faster! 🙏

Regards,
Ankur
Certified Technical Architect  ||  10x ServiceNow MVP  ||  ServiceNow Community Leader

Hi @Ankur Bawiskar I am calling "retrieveUsers" function mentioned in the problem statement from a scripted rest API as below:

 

(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
   
    var utils = new SupIGAutils();
    var pageNumber = request.queryParams.pageNumber;
    var pageLength = request.queryParams.pageLength;

    var result = utils.retrieveUsers(pageNumber, pageLength);
    response.setStatus(result["Status Code"] || 200);
    response.setBody(result);
})(request, response);
 
where are you suggesting me to use parseInt() ?