- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-14-2014 10:55 AM
I've seen a couple requests to add a date/time stamp to the attachment of a Scheduled Report. Capa JC shows us how to add this to the email's subject in this post (When configuring a Scheduled), but doing it on an attachment is still not possible. Until now.
A nice little workaround with a Business Rule on the Email table is all you need. When you configure your Scheduled Report, add "~!~rename_attachment~!~" as a prefix to the Subject to act as a trigger for the Business Rule (e.g. "~!~rename_attachment~!~Active Change Requests").
Next, add the following Business Rule:
Name: Custom - Rename Scheduled Report Attachments Table: Email [sys_email] When: before Insert: checked Condition: current.subject.indexOf("~!~rename_attachment~!~") > -1 && current.hasAttachments() Script: (function(){ var splitter = "~x~y~z"; current.subject = current.subject.replace("~!~rename_attachment~!~", ""); var gr = new GlideRecord("sys_attachment"); gr.addQuery("table_name", "sys_email"); gr.addQuery("table_sys_id", current.getValue("sys_id")); gr.query(); while (gr.next()) { var fileName = gr.getValue("file_name"); var parts = fileName.split("."); var dateCreated = splitter + gr.getValue("sys_created_on"); parts.splice(-1, 0, dateCreated); fileName = parts.join(".").replace("." + splitter, "-"); gr.file_name = fileName; gr.update(); } })();
The Business Rule queries the attachments, grabs each file name, splits it apart, inserts the created date, joins it back together and then finally updates the record with the new file name.
Simple
Solved! Go to Solution.
- 11,296 Views
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-20-2018 06:08 AM
Just setting this answer as correct as the actual thread was not meant as a question and it cannot be changed because it came from the original Community site.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-25-2023 08:45 PM
Hi All,
The above business rule helped but it didnt work for 00:00:00 to 00:59:00 ,during this time duration it takes yesterday's date instead of today's date.
could someone let me know the solution for it.
this is my code:-
(function(){
var splitter = "~x~y~z";
var finaldate = "";
current.subject = current.subject.replace("~!~rename_attachment2~!~ ", "");
var gr = new GlideRecord("sys_attachment");
gr.addQuery("table_name", "sys_email");
gr.addQuery("table_sys_id", current.getValue("sys_id"));
gr.query();
while (gr.next()) {
var fileName = gr.getValue("file_name");
var parts = fileName.split(".");
var gDateTime = new GlideDateTime(gr.getValue('sys_created_on'));
var gDate = gDateTime.getDate();
var longDateTime = gDate.getByFormat('dd-MM-yyyy');
var dateCreated = splitter + longDateTime;
parts.splice(-1, 0, dateCreated);
fileName = parts.join(".").replace("." + splitter, " ");
gr.file_name = fileName;
gr.update();
}
})();
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-19-2023 11:16 PM
Thank you, Jim Coyne. It worked for me.