How to properly call a script include from the record producer script field?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-19-2022 07:42 AM
Dear Community, can someone please help me with my code?
I am creating a record producer, and in it's script field I am supposed to call a newly created script include, that will search for the user's assignment group and if that one is not available, then it shall use the fallback group saved in a sys property.
Can someone please tell me how I shall continue here...? As the code does not work...
From the record producer, I need to get the current.u_affected_user.company.u_service_desk_group. If that affected user does not have a service desk group, then a fallback group shall be used (saved in the given sys property)
I have read through various articles here, but am not able to put the code together properly...
Record producer's script field:
var callScriptInclude = new RecordProducerUtils().getAssignmentGroup(producer);
My script include:
var RecordProducerUtils = Class.create();
RecordProducerUtils .prototype = {
getAssignmentGroup: function(producer) {
if (producer.u_affected_user.company.u_service_desk_group != '') {
producer.assignment_group = producer.u_affected_user.company.u_service_desk_group;
} else {
producer.assignment_group = gs.getProperty("record.producer.fallback.group");
}
},
type: 'RecordProducerUtils '
};
Thank you in advance for any help...

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-19-2022 07:49 AM
Hi there,
If you have a reference variable on sys_user to capture the 'u_affected_user' value then you may not need a script include at all to get the data you're looking for.
In the record producer script itself, you should be able to dot-walk on the reference variable's value like below:
var group = producer.u_affected_user.company.u_service_desk_group.toString();
if (group) {
current.assignment_group = group;
} else {
current.assignment_group = gs.getProperty('record.producer.fallback.group');
}
If this answer is helpful please mark correct and helpful!
Regards,
Christopher Perry
Regards,
Chris Perry
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-19-2022 08:36 AM
Hello
it works like a charm! However, this time the client really wants it to be set through a script include, could you maybe direct me on that, please?

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-19-2022 09:04 AM
Sure, it seems like an over-complication but regardless here is how you could accomplish that:
1. Update your script include to below code:
var RecordProducerUtils = Class.create();
RecordProducerUtils.prototype = {
getAssignmentGroup: function(user) {
var uGr = new GlideRecord('sys_user');
if (uGr.get(user)) {
var group = uGr.company.u_service_desk_group.toString();
return group ? group : gs.getProperty('record.producer.fallback.group');
}
},
type: 'RecordProducerUtils '
};
2. Update your record producer script to set Assignment group as below:
current.assignment_group = new RecordProducerUtils().getAssignmentGroup(producer.u_affected_user);
If this answer is helpful please mark correct and helpful!
Regards,
Christopher Perry
Regards,
Chris Perry