Scripting Pro Tips
The following Pro Tips will help you remember how to make the most of the ServiceNow/Glide APIs, as well as avoid scripting pitfalls. We'll learn what the pros wished they knew, as well as the reasons behind some of the more arcane pieces of the ServiceNow development puzzle.
Avoiding Nested Loops
Nested loops have their place in development, but if you aren't careful, they can lead to serious performance degradation due to the fact that the inner loop will run a certain number of times, multiplied by the number of times the outer loop runs.
It is often possible to avoid having to run a nested loop, in favor of running two separate loops (which means that each loop would only run a set number of times).
Consider the following code:
var innerGR; var results = []; var outerGR = new GlideRecord('table_name'); outerGR.query(); while (outerGR.next()) { innerGR = new GlideRecord('other_table_name'); innerGR.addQuery('field', outerGR.getValue('something_to_compare...