Book Image

Learning ServiceNow

By : Sylvain Hauser
Book Image

Learning ServiceNow

By: Sylvain Hauser

Overview of this book

This book shows you how to put important ServiceNow features to work in the real world. We will introduce key concepts and examples on managing and automating IT services, and help you build a solid foundation towards this new approach. We’ll demonstrate how to effectively implement various system configurations within ServiceNow. We’ll show you how to configure and administer your instance, and then move on to building strong user interfaces and creating powerful workflows. We also cover other key elements of ServiceNow, such as alerts and notifications, security, reporting, and custom development. You will learn how to improve your business’ workflow, processes, and operational efficiency. By the end of this book, you will be able to successfully configure and manage ServiceNow within your organization.
Table of Contents (21 chapters)
Learning ServiceNow
Credits
About the Author
About the Reviewer
www.packtpub.com
Customer Feedback
Preface

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...