Date/Time Stamping a Scheduled Report's Attachment(s)

Jim Coyne
Kilo Patron

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

1 ACCEPTED SOLUTION

Jim Coyne
Kilo Patron

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.

View solution in original post

26 REPLIES 26

nyancer3
Tera Expert

Great solution, Jim! Thanks for posting this. I just implemented it with some slight tweaks and it's awesome.


I recommend adding an info message on the Schedule Report form to give users a hint on what to put in the subject to get the date stamp added.


Definitely a good idea!


mautry
Kilo Contributor

Sorry I'm not very versed in scripting but I'm trying to set up the business rule you have here.   I am getting an error "missing function declaration for onBefore".   I've set the When to run to Before and the syntax in the script checks out ok.   Can you tell me what I might be missing?


Can you add a screenshot of the script?


mautry
Kilo Contributor

Nevermind.   I figured it out.   Thanks!