Pro-Tips Blog

Deep dives, tutorials, and practical guides for ServiceNow developers and admins.

GlideRecord & GlideAjax: Client-Side Vs. Server-Side

It is easy to shoot yourself in the foot when it comes to performance, using client side scripts. For this reason, it is generally good practice to move any complex processing, large requests (more than a hundred or so records), and multi-level dot-walking to server-side scripts such as busi

Tim Woodruff ·

Make Your Log Entries Easier to Find

Like most developers, I write a lot of code. Like all developers, sometimes my code doesn't work. When that happens (server-side), I rely on gs.log() to spit out some information to tell me when, where, and maybe even how the error happened. gs.log() is an extremely useful little functio

Tim Woodruff ·

A Better, One-Click Approval

The way approvals work in ServiceNow by default is that an email goes out, and the user can click a link in the email to approve or reject. That link is generated in the default approval notification template using ${mailto:mailto.approval}. Clicking the link that is generated in the approval

Tim Woodruff ·

Quickly Move Changes Between Update Sets

We've all been there. -- You've been wired in, hammering away on code, making great progress on several fronts, when all of a sudden you're gripped with dread. You check the sprocket menu at the top-right, cautiously hopeful... but as it loads, and recognition sets in, the reality of the situation c

Tim Woodruff ·

Customize the Reference Icon Pop-up

As most ServiceNow users know, when you hover over the icon next to a reference field on a given form, you can see some details about the record that's being referenced. Well, what if you want to customize what fields are shown in that pop-up reference view? When a requirement came through to do

Tim Woodruff ·

ServiceNow: Geneva & UI16 - What's new

Brace yourself. Geneva is coming. Personally, I'm excited - I like new things. I've always been the early adopter. But I know that not everyone is as gung-ho for the future as I am, so I thought I'd share some tips and tricks on ServiceNow's "Geneva", and the new, drastically overhauled "UI 16" th

Tim Woodruff ·

Detect/Prevent Update Set Conflicts Before They Happen

Do you have multiple developers working in the same instance? If so, there's a good chance that on at least several occasions, one of them has "stolen" an update/record from another. I'll explain what I mean by way of an example: - Developer A is working on a project that involves changing a scri

Tim Woodruff ·

SN101: Boolean logic and ServiceNow's Condition Builder

This article is part one of a multi-part series called "SN101", in which we'll explore some of the basic functionality of ServiceNow in beautiful detail. While the "SN101" articles are aimed toward newcomers to the ServiceNow platform, or new JavaScript developers, there is very likely to be somet

Tim Woodruff ·

Locate any record in any table, by sys_id in ServiceNow

Dozens of times, I've seen hard-coded sys\ids in scripts or system properties, and wanted to know what record they correspond to. Unfortunately, there isn't really a good way to do this without knowing what table the sys\id is in! The global search box only supports searching by sys\_id on table

Tim Woodruff ·

Detecting Duplicate Records with GlideAggregate

Let's say you're working for a company who has just acquired another company, and you've just imported all of the users from the acquired company's User (sys\_user) table. Unfortunately, you realize just a second too late, that their user database contains some of the same people as are already in

Tim Woodruff ·

Array.indexOf() not working in ServiceNow - Solution!

I'm baffled that this little issue has never cropped up for me until now, but I recently discovered a little annoyance in ServiceNow while iterating through an array. This issue had me going round in circles for hours, so hopefully by sharing my findings with our readers, I can spare some folks the

Tim Woodruff ·

Search