jasonbutz.info

ServiceNow Record Producer Caveats

ServiceNow

I recently ran into a problem when using Record Producers. In the script for the Record Producer I am using the applyTemplate function on the current GlideRecord. The template used varies, which is why I can’t use the template field on the Record Producer. I kept ending up with duplicate task records with the exact same value in the number field.

After some tinkering I came to the conclusion that the applyTemplate method causes an insert, and that the Record Producer also does an insert after running the Record Producer script. After a lot of frustration I was looking through the Sandbox instance of ServiceNow when I noticed that the New LDAP Server inserted the current GlideRecord and they used the setAbortAction method. So I decided to give that a try.

Here is what I ended up with at the end of my Record Producer:

current.update();
current.setAbortAction(true);

This works because the insert done by the Record Producer is aborted, and thus stops the duplicates.