Record producer creating duplicate records in servicenow
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-29-2024 09:50 PM
Hi Everyone,
I have an issue in record producer that in record producer creating duplicate records in servicenow.
I was used class less script include to insert record in servicenow to map the producer variables to back record values.
May i know the issue why the record producer creating duplicate values.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-30-2024 12:45 AM - edited 01-30-2024 12:46 AM
Hi Vishal,
please check the code : iam calling this classless script include in script part record producer.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-30-2024 01:00 AM
Hello @msc
Can you let us know on which table record producer has mapped....??
ServiceNow Developer
I know one thing, and that is that I know nothing.
- Socrates
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-30-2024 09:53 AM
its a custom table called it as service entitlement table
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-30-2024 01:58 PM - edited 01-30-2024 10:07 PM
Hello @msc
I see you have also written script on same table to update or create a record.
You can drop the logic of creating record from your script like below. & Try ot...
function submitentitlement() {
if (producer.action == "Create New") {
var gr = new GlideRecord("service_entitlement");
gr.addEncodedQuery("u_category=Vendor Contracted Service^entitlement_name=3rd Party Support^active=true");
gr.addQuery("u_reference_number", producer.reference_number);
gr.addQuery("u_value", producer.vendor);
gr.addQuery("asset", producer.asset);
gr.query();
if(gr.next()) {
gs.addErrorMessage("Entitlement Record not created");
current.setAbortAction(true);
}
} else if (producer.action == "Update") {
var variableValue = producer.entitlement_fields;
var parser = JSON.parse(variableValue);
var gr1 = new GlideRecord('service_entitlement');
gr1.addEncodedQuery("u_category=Vendor Contracted Service^entitlement_name=3rd Party Support^active=true");
gr1.query();
while (gr1.next()) {
for (var i = 0; i < parser.length; i++) {
var gr2 = new GlideRecord('service_entitlement');
gr2.addQuery("u_reference_number", parser[i].reference_number_set);
gr2.query();
if (gr2.next()) {
gr2.u_value = parser[i].vendor_set;
//gr2.u_reference_number = parser[i].reference_number_set;
gr2.start_date = parser[i].start_date_set;
gr2.end_date = parser[i].end_date_set;
gr2.sys_updated_by = producer.requested_by;
gr2.update();
current.setAbortAction(true) //abort the insert of new record
}
}
}
gs.addInfoMessage("Entitlement records are updated");
}
}
**Note : Not a best practice to use `current.setAbortAction()`
ServiceNow Developer
I know one thing, and that is that I know nothing.
- Socrates

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-30-2024 01:08 AM
Hi,
Can you please share your script and also share from where this is being called?
Thanks
Anil Lande