We're reclaiming inactive PDIs to keep them available for active builders. Learn what's changing, who's affected, and how to protect your work. Read More

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
Mega 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
Mega 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();
    }
}