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 for loop

Abhijit Das7
Tera Expert

Hi Everyone,

 

I am trying to update multiple system properties using for loop. But it only updates one system property 

var propertiesArray = ["propertyName1", "propertyName2", "propertyName3", "propertyName4", "propertyName5", "propertyName6" ]

var sysProp = new GlideRecord("sys_properties");
            for (var b = 0; b < propertiesArray.length; b++) {
                sysProp.addQuery("name", propertiesArray[b]);
                sysProp.query();
                if (sysProp.next()) {
                    gs.info("Property name = " + propertiesArray[b]);
                    if (propertiesArray[b] == 'propertyName1') {
                        sysProp.value = "X1";
                    }
                    if (propertiesArray[b] == 'propertyName2') {
                        sysProp.value = "X2";
                    }
                    if (propertiesArray[b] == 'propertyName3') {
                        sysProp.value = "X3";
                    }
                    if (propertiesArray[b] == 'propertyName4') {
                        sysProp.value = "X4";
                    }
                    if (propertiesArray[b] == 'propertyName5') {
                        sysProp.value = "X5";
                    }
                    if (propertiesArray[b] == 'propertyName4') {
                        sysProp.value = "X6";
                    }
					sysProp.update();
                }
            }

 

Can anyone point out where I am committing mistake in code.

 

Thanks in advance 

1 ACCEPTED SOLUTION

Brad Bowman
Kilo Patron
Kilo Patron

You have to instantiate the GlideRecord within the for loop

var propertiesArray = ["propertyName1", "propertyName2", "propertyName3", "propertyName4", "propertyName5", "propertyName6" ]

for (var b = 0; b < propertiesArray.length; b++) {
    var sysProp = new GlideRecord("sys_properties");
    sysProp.addQuery("name", propertiesArray[b]);
    sysProp.query();
    if (sysProp.next()) {
            gs.info("Property name = " + propertiesArray[b]);
            if (propertiesArray[b] == 'propertyName1') {
                sysProp.value = "X1";
            }
            if (propertiesArray[b] == 'propertyName2') {
                sysProp.value = "X2";
            }
            if (propertiesArray[b] == 'propertyName3') {
                sysProp.value = "X3";
            }
            if (propertiesArray[b] == 'propertyName4') {
                sysProp.value = "X4";
            }
            if (propertiesArray[b] == 'propertyName5') {
                sysProp.value = "X5";
            }
            if (propertiesArray[b] == 'propertyName4') {
                sysProp.value = "X6";
            }
	        sysProp.update();
    }
}

View solution in original post

1 REPLY 1

Brad Bowman
Kilo Patron
Kilo Patron

You have to instantiate the GlideRecord within the for loop

var propertiesArray = ["propertyName1", "propertyName2", "propertyName3", "propertyName4", "propertyName5", "propertyName6" ]

for (var b = 0; b < propertiesArray.length; b++) {
    var sysProp = new GlideRecord("sys_properties");
    sysProp.addQuery("name", propertiesArray[b]);
    sysProp.query();
    if (sysProp.next()) {
            gs.info("Property name = " + propertiesArray[b]);
            if (propertiesArray[b] == 'propertyName1') {
                sysProp.value = "X1";
            }
            if (propertiesArray[b] == 'propertyName2') {
                sysProp.value = "X2";
            }
            if (propertiesArray[b] == 'propertyName3') {
                sysProp.value = "X3";
            }
            if (propertiesArray[b] == 'propertyName4') {
                sysProp.value = "X4";
            }
            if (propertiesArray[b] == 'propertyName5') {
                sysProp.value = "X5";
            }
            if (propertiesArray[b] == 'propertyName4') {
                sysProp.value = "X6";
            }
	        sysProp.update();
    }
}