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.

How to split comma separated string into array and query correctly

MrBun256
Tera Contributor

I created an array (allQueues) which lists some companies from the core_company table. From there, I am obtaining each companies’ sub-queues (u_phone_queue) string field which is listed in a comma separated list. Afterwards, the sub-queues should be split up and populated into an array, where they are queried on another table to obtain stats like ‘Total Calls Daily’ for each queue.

Example:

allQueues u_phone_queue (COUNT) (Total Calls Daily)
Company A SubQueue 1,SubQueue 2

SubQueue 1 (5)

SubQueue 2 (8)

13
Company B SubQueue 3,SubQueue 4, SubQueue 5

SubQueue 3 (4)

SubQueue 4 (10)

SubQueue 5 (2)

16
Company C SubQueue 6,SubQueue 7,SubQueue 8,SubQueue 9

SubQueue 6 (5)

SubQueue 7 (10)

SubQueue 8 (12)

SubQueue 9 (7)

34
Company D SubQueue 10,SubQueue 11

SubQueue 10 (1)

SubQueue 11 (7)

8
var allQueues = ['Company A', 'Company B', 'Company C', 'Company D'];
var subStr;
var outputSplit;

for (i = 0; i < allQueues.length; i++) {

    // Obtain sub-queues
    var queueAgg = new GlideRecord('core_company');
        queueAgg.addQuery('name', allQueues[i]);
        queueAgg.query();

        while (queueAgg.next()) {
            subStr = queueAgg.getValue('u_phone_queues');
            outputSplit = subStr.split(' ');
        }

        // How to add outputSplit to subArr array?
        var subArr = [];
	
	// Total Calls Daily
    var totalCallsDaily = 0;
    var countDaily = new GlideAggregate('u_connect_contact_trace_records');
    countDaily.addQuery('u_queue_name', subArr[i]);
    countDaily.addQuery('sys_created_onONToday@javascript:gs.beginningOfToday()@javascript:gs.endOfToday()');
    countDaily.addQuery('u_agent_usernameISNOTEMPTY');
    countDaily.addAggregate('COUNT');
    countDaily.query();
    
    if (countDaily.next()) {
        totalCallsDaily = countDaily.getAggregate('COUNT');
    }
}​

 

1 REPLY 1

Tony Chatfield1
Kilo Patron

Hi, you should be able to assign subStr directly to your array using split
try something like

var subStr = '1 2 3 4 5 6';
var subArray = subStr.split(' ');
gs.info(subArray[2]);