- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-21-2014 06:13 AM
Hi All
If I'd like to I omit watermark from scheduled report emails, how can I do that? Unlike in email notifications, there is no omit watermark option in scheduled report emails.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-21-2014 09:19 AM
While Chandan's reply was excellent, I don't think it will help in this situation. Scheduled Reports don't go through the Notifications table, and there is no "Omit Watermark" field on the sysauto_report table.
I think the best solution in this case would be to create a "before insert" business rule on the sys_email table, that looks for part of the expected subject line of the scheduled report emails, and then looks for the watermark and removes it.
This would look something like:
Condition: current.type == 'send-ready' && current.subject.toString().indexOf("Scheduled Execution of") >= 0
Script:
current.body = String(current.body).replace(/Ref\:MSG(?:[0-9]*)/i, "");
current.body_text = String(current.body_text).replace(/Ref\:MSG(?:[0-9]*)/i, "");
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-11-2016 07:40 AM
Would that business rule apply to all existing scheduled reports?
If not, how could I make the watermark disappear from all existing scheduled reports?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-24-2016 12:12 AM
Hi
I have created my inbound action on data source table . when i am trying to import the file from mail it telling no watermark matched on schedule report table. since i have removed the watermark still the error is coming. Do we have any way to get rid of this issue.
Regards
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-16-2022 06:32 AM
To somebody looking for a little more current, extended solution to stop the system from matching a reply to the originating Scheduled Report record, you might try this script. In a Before update Business Rule on [sys_email].
Condition:
current.type == 'send-ready' && current.target_table == 'sysauto_report'
Script:
// Watermark is automatically added at end of body and body text. Cannnot be skipped because there's no Omit Watermark checkbox like Notifications have
// Remove watermark from 'Ref:MSG' until the first '<' encountered. This can be </div> or </body_text>
// To prevent replies ending up in void of the Scheduled Report record, and instead have them picked up by Email Inbound Actions like our 'Process Inbound Email (Reply)'
// Example Body
// before "<div style="display:inline">Ref:MSG4821783_H4q4i3dfn4Ksit80b8vH</div></body></html>"
// after "<div style="display:inline"></div></body></html>"
current.body = String(current.body).replace(/Ref\:MSG(?:[^<]+)/i, "");
// Example Body Text
// before "Best regards, xxx Ref:MSG4821783_H4q4i3dfn4Ksit80b8vH</body_text>"
// after "Best regards, xxx </body_text>"
current.body_text = String(current.body_text).replace(/Ref\:MSG(?:[^<]+)/i, "");
// Clear the Target field
// so it can't find Scheduled Report record by matching "In-Reply-To" to "Message-ID" from sent Email and setting the same Target
// only correct way to clear a field: https://docs.servicenow.com/en-US/bundle/tokyo-application-development/page/script/server-scripting/reference/r_SettingAGlideRecordVariableToNull.html
current.instance = 'NULL';
// Clear Source Record and Source Table in table [sys_watermark]
// so it can't find Source Record (Target) by matching "In-Reply-To" to "Message-ID" from sent Email and getting it from [sys_watermark]
// and matching "Source Table" to Email Inbound Actions's "Target Table" doesn't fail, since there's no Inbound Action for [sysauto_report]
// [sys_watermark] record is created just before the [sys_email] one so we can already fetch and update it at this point
var grWM = new GlideRecord('sys_watermark');
if(grWM.get('email', current.getUniqueValue())){
grWM.source_id = 'NULL';
grWM.source_table = 'NULL';
grWM.update();
}