- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-27-2025 09:55 PM
Hello,
I want to create a new field called Attachment and type is True/False on Case table. If a case has an attachment, it should mark the field as true and if not, it should remain false.
Below is my field
Business Rule:
(function executeRule(current, previous /*null when async*/) {
if (current.table_name !== 'sn_customerservice_case') {
return;
}
var caseId = current.table_sys_id;
var attachmentGR = new GlideRecord('sys_attachment');
attachmentGR.addQuery('table_name', 'sn_customerservice_case');
attachmentGR.addQuery('table_sys_id', caseId);
attachmentGR.query();
var hasAttachments = attachmentGR.hasNext();
var caseGR = new GlideRecord('sn_customerservice_case');
if (caseGR.get(caseId)) {
if (caseGR.u_attachment !== hasAttachments) {
caseGR.u_attachment = hasAttachments;
caseGR.update();
}
}
})();
I have written after insert delete BR, above is my code, I have attached a attachment in one of the case record in case table.
I have added that field in list view, always it is showing as false
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-27-2025 11:56 PM
try to exclude the current sysId in query
(function executeRule(current, previous /*null when async*/ ) {
var caseId = current.table_sys_id;
var attachmentRec = new GlideRecord('sys_attachment');
attachmentRec.addQuery('table_sys_id', caseId);
attachmentRec.addQuery('sys_id', '!=', current.sys_id); // exclude the current one
attachmentRec.setLimit(1);
if (!attachmentRec.hasNext()) {
var caseGR = new GlideRecord('sn_customerservice_case');
if (caseGR.get(caseId)) {
caseGR.u_attachment = false;
caseGR.update();
}
}
})();
If my response helped please mark it correct and close the thread so that it benefits future readers.
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-27-2025 11:33 PM
When we are adding multiple attachments every time it will show as true,
However if one of the case record is having 4 attachments, Now if we remove 1 attachment, then also it needs to show as true, because we have added 4 attachments this is not happening rightnow
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-27-2025 11:42 PM
then you need to check before making it false if there are other attachments or not
(function executeRule(current, previous /*null when async*/ ) {
var caseId = current.table_sys_id;
var attachmentRec = new GlideRecord('sys_attachment');
attachmentRec.addQuery('table_sys_id', caseId);
attachmentRec.setLimit(1);
if (!attachmentRec.hasNext()) {
var caseGR = new GlideRecord('sn_customerservice_case');
if (caseGR.get(caseId)) {
caseGR.u_attachment = false;
caseGR.update();
}
}
})();
If my response helped please mark it correct and close the thread so that it benefits future readers.
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-27-2025 11:50 PM
@Ankur Bawiskar I have added same script, still after removing one attachment, it is changing to false,
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-27-2025 11:56 PM
try to exclude the current sysId in query
(function executeRule(current, previous /*null when async*/ ) {
var caseId = current.table_sys_id;
var attachmentRec = new GlideRecord('sys_attachment');
attachmentRec.addQuery('table_sys_id', caseId);
attachmentRec.addQuery('sys_id', '!=', current.sys_id); // exclude the current one
attachmentRec.setLimit(1);
if (!attachmentRec.hasNext()) {
var caseGR = new GlideRecord('sn_customerservice_case');
if (caseGR.get(caseId)) {
caseGR.u_attachment = false;
caseGR.update();
}
}
})();
If my response helped please mark it correct and close the thread so that it benefits future readers.
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader