- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-04-2015 12:44 AM
I am running into an issue where I can't seem to get the formatted comments to output when I use it a mail script.
Example:
I have a "comment added" type notification set up to go out whenever a comment is added and send to the caller. Our comments are done using HTML code, so to preserver that, I can just put the following in the mail body:
${comments}
And it will put out the last few most recent comments with all the formatting from service-now preserved. My problem comes when I try to edit any of this output. As far as I'm aware this needs to be done through a mail script. So let's say I create a mail script, and now instead of ${comments} I have the script name ${mail_script:HTML_Comment_Script} (and of course have to create a script of this name in the mail scripts section).
var suggComm = current.comments;
template.print("\n" + suggComm);
Shouldn't this be the same as ${comments}? What is different about the mail scripts in how I can access the same field information? Currently what happens is just nothing comes back.
My end goal is I have to figure out a way to do two things:
a.) Modify the img src tags to decode the %20 back to space characters because when it goes out in an email, if any file has a space in the name the encoded %20 is treated as literal set of characters and the image won't show in the received email.
b.) Only grab the latest comment. I know there is a global parameter to change how many get sent out, but changing that is not an option for me due to other workflows. If anyone knows how to change this on a per-call basis I'd love to know how, seems like it would be a handy feature to just pass some sort of a parameter in that changes how many "deep" the comments go and disregards the global parameter. However, either way I should be able to handle it with some regex scripting if i can just get the comment to actually output, which currently I can't do so I'm sort of dead in the water.
Best regards,
Brian Cronrath
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-05-2015 02:51 PM
Hello ntylenda,
I did come up with a solution, I'm not sure if it is the greatest but it was the best I could come up with. I am basically stripping back out the [code] tags, and manually adding in the border format to mimic what Service Now does with the comment output. Here is my mail script:
var suggComm = current.comments.getJournalEntry(1);
suggComm = suggComm.replace("[code]","");
suggComm = suggComm.replace("[/code]","");
suggComm = "<div><table cellpadding=\"0\" cellspacing=\"0\" style=\"table-layout:fixed\" width=\"100%\"><tbody><tr><td colspan=\"2\"><hr /></td></tr><tr style=\"\"><td class=\"tdwrap\"><strong>" + suggComm;
suggComm = suggComm.replace("(Journaled comments)","</strong>");
suggComm = suggComm + "</span></span></p></td></tr></tbody></table></div>";
template.print("\n" + suggComm);
Hope this helps!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-04-2015 12:53 AM
Also just to clarify - I need to keep the formatting.
I can get the plain text data to display if I use current.comments.getJournalEntry(1) for example, however I need the actual formatting included so this is not really an option for me (unless someone knows how to preserve formatting w/ this method)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-04-2015 01:06 AM
we used current.comments.getJournalEntry(-1) to get all comments
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-29-2015 06:06 AM
Hi Brian,
Did you ever find a solution for this? I am having the same problem with the formatting.
Thanks
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-05-2015 02:51 PM
Hello ntylenda,
I did come up with a solution, I'm not sure if it is the greatest but it was the best I could come up with. I am basically stripping back out the [code] tags, and manually adding in the border format to mimic what Service Now does with the comment output. Here is my mail script:
var suggComm = current.comments.getJournalEntry(1);
suggComm = suggComm.replace("[code]","");
suggComm = suggComm.replace("[/code]","");
suggComm = "<div><table cellpadding=\"0\" cellspacing=\"0\" style=\"table-layout:fixed\" width=\"100%\"><tbody><tr><td colspan=\"2\"><hr /></td></tr><tr style=\"\"><td class=\"tdwrap\"><strong>" + suggComm;
suggComm = suggComm.replace("(Journaled comments)","</strong>");
suggComm = suggComm + "</span></span></p></td></tr></tbody></table></div>";
template.print("\n" + suggComm);
Hope this helps!

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-05-2015 05:37 PM
Plonk that into a Mail Script for re-usability!
ServiceNow Nerd
ServiceNow Developer MVP 2020-2022
ServiceNow Community MVP 2019-2022