- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-01-2023 02:03 AM
Hi All,
When I am trying to add attachment from sys_attachment table to sys_email record using GlideSysAttachment method in Business Rule, it is adding multiple attachments with same filename.
My requirement is to add only one latest attachment created.
(function executeRule(current, previous /*null when async*/) {
var s_Attach = new GlideRecord('sys_attachment');
s_Attach.addEncodedQuery('file_name=Servers_Information.csv^table_name=sys_attachment');
s_Attach.orderByDesc('sys_created_on');
s_Attach.setLimit(1);
s_Attach.query();
if(s_Attach.next()){
var sSysID = s_Attach.table_sys_id;
gs.info('the sSysID is for Attachment '+sSysID);
}
var sTable = 'sys_attachment';
var tTable = 'sys_email';
var tSysID = current.sys_id;
gs.info('the tSysID '+tSysID);
var copyAtt = new GlideSysAttachment();
copyAtt.copy(sTable,sSysID,tTable,tSysID); // Attaching the Attachment to the email
gs.info('the notifications sysID'+tSysID);
gs.info('the table name is '+tTable);
})(current, previous);
Please provide inputs to achieve it.
Regards,
Reshma.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-01-2023 03:07 AM
are you sure the file name you are comparing is exact?
similar script has worked for me earlier
My BR was After Insert on sys_email
try checking by not adding file name in query
(function executeRule(current, previous /*null when async*/) {
var s_Attach = new GlideRecord('sys_attachment');
s_Attach.addEncodedQuery('table_sys_id=' + current.instance);
s_Attach.orderByDesc('sys_created_on');
s_Attach.setLimit(1);
s_Attach.query();
if(s_Attach.next()){
var rec = new GlideRecord('sys_email_attachment');
rec.initialize();
rec.attachment = s_Attach.sys_id;
rec.file_name = s_Attach.file_name;
rec.source = 'notification';
rec.content_disposition = 'attachment';
rec.email = current.sys_id;
rec.insert();
}
})(current, previous);
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-01-2023 07:36 PM
why to store that file on sys_email record?
Your requirement must be to send the latest file via email notification right?
Glad to know that it worked.
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
03-02-2023 12:18 AM
My requirement is to add files to sys_email record.
We are not attaching file from email notication. We are attaching latest file to "sys_email" record by using "after business rule".
Regards,
Reshma.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-02-2023 02:00 AM
why to add to sys_email?
Who will visit sys_email and view the file?
End user is not supposed to visit that table
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-02-2023 02:54 AM
As per requirement for testing and development we need to add latest sys_attachment file to sys_email record.
Please provide inputs .
Regards,
Reshma
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-02-2023 03:06 AM
if you just want to test then anyhow testers can check email logs table and check if the email triggered has file or not
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader