
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-12-2019 12:19 PM
Hey SN Comm,
I have a couple of things that I want to see if they can be enhanced. For my first one, we have a UI Action that grabs the attachments from the HR Case, and posts them to the HR Task: (this is in production)
GlideSysAttachment.copy(current.parent.sys_class_name, current.parent, current.getTableName(), current.sys_id);
current.update();
action.setRedirectURL(current);
gs.addInfoMessage("Attachments have been added!");
gsftSubmit(null, g_form.getFormElement(), 'sysverb_update_and_stay');
Then, I have a Business Rule to do the following (which is NOT in production yet): This BR automatically allows the case worker, to have the attachments added to the email (from email client) from the Case/Task (depending on which table I give as the target).
(function executeRule(current, previous /*null when async*/) {
//gs.log('M in loop');
// Add your code here
var lookatt=new GlideRecord('sys_attachment');
lookatt.addQuery('table_sys_id',current.instance);
lookatt.query();
while(lookatt.next())
{
// gs.log('M in loop again');
GlideSysAttachment.copy('sn_hr_core_case_operations', current.instance, 'sys_email', current.sys_id);
}
})(current, previous);
I really want to see if there is a way, at least for the UI Action,'Grab Attachments', to make my options selectable. I think it would be really beneficial to be able to do that with these features.
Anyone able to see/or know if this is possible at all?
Thanks in advance!
-Rob
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-26-2019 06:19 AM
Hi Rob,
Yeah I was able to replicate the issue in my Personal Development instance as well. Took me a while and have updated the Business Rule. Just update your Business Rule as per the script mentioned below.
(function executeRule(current, previous /*null when async*/) {
// Add your code here
var tic_num = '';
var sub = current.subject;
var number = sub.replace(/[^\d.]/g,'');//current.subject.toString().substr(0,10);
var num = number.substr(0,7);
var num2 =sub.indexOf(num);
if(num2 > 3)
tic_num = sub.substr(num2-3,num.length + 3);
else
tic_num = sub.substr(0,num.length + num2);
var ticket_number = tic_num.replace(/\s/g,'');
// The first 14 characters of the subject are the ticket number.
// We need to subtract this number to get the sys_id of the task record.
var gr = new GlideRecord('incident'); //Replace with your Table Name from which you want to copy to Email Client
gr.addQuery('number',ticket_number);
gr.query();
gr.next();
var arrayAttachment = GlideSysAttachment.copy(gr.sys_class_name, gr.sys_id ,'sys_email', current.sys_id);
for (var i = 0; i< arrayAttachment.size(); i++) {
var attachmentSidsPiece = String(arrayAttachment.get(i)).split(',');
var sourceAttachmentSysid = attachmentSidsPiece[0];
var targetAttachmentSysid = attachmentSidsPiece[1];
var sourceRec = new GlideRecord('sys_attachment');
var targetRec = new GlideRecord('sys_attachment');
if (sourceRec.get('sys_id',sourceAttachmentSysid) &&
targetRec.get('sys_id',targetAttachmentSysid)) {
if (sourceRec.u_send_to_email_client==false) {
//delete all other attachments that are not marked to send via the email client
targetRec.deleteRecord();
} else { //reset the flag
sourceRec.u_send_to_email_client= false;
//as soon as the email record is created, reset the flag to false again
sourceRec.update();
}
}
}
})(current, previous);
Rest of the code remains the same. Hopefully this time it should work:)
Please let me know if still there is an issue and we can check further.
Hope this help. Please mark the answer as helpful/correct based on impact.
Regards,
Shloke
Regards,
Shloke
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-03-2021 01:15 AM
I think Im missing something in my Client script:
When I press the OK button before the email client is going to open, nothing is happening..
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-03-2021 01:16 AM

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-26-2019 05:39 AM
And this is how I have my BR (I saw your comment that says to "change the table name accordingly and query as well based on table selected"). So, I did so in effort to make sure it is hitting the Core HR Case Table. Let me know if you see what I changed is wrong, and possible giving my my issue.
(function executeRule(current, previous /*null when async*/) {
// Add your code here
var case_number = current.instance.number.toString();
var gr = new GlideRecord('sn_hr_core_case'); //Change the Table Name accordingly and query as well based on table selected
gr.addQuery('number',case_number);
gr.query();
gr.next();
var arrayAttachment = GlideSysAttachment.copy(gr.sys_class_name, gr.sys_id ,'sys_email', current.sys_id);
for (var i = 0; i< arrayAttachment.size(); i++) {
var attachmentSidsPiece = String(arrayAttachment.get(i)).split(',');
var sourceAttachmentSysid = attachmentSidsPiece[0];
var targetAttachmentSysid = attachmentSidsPiece[1];
var sourceRec = new GlideRecord('sys_attachment');
var targetRec = new GlideRecord('sys_attachment');
if (sourceRec.get('sys_id',sourceAttachmentSysid) &&
targetRec.get('sys_id',targetAttachmentSysid)) {
if (sourceRec.u_send_via_email_client==false) {
//delete all other attachments that are not marked to send via the email client
targetRec.deleteRecord();
} else { //reset the flag
sourceRec.u_send_to_email_client= false;
//as soon as the email record is created, reset the flag to false again
sourceRec.update();
}
}
}
})(current, previous);
Could any of the issue be at how the core hr case table extends to all other hr case tables?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎10-22-2020 08:40 AM
Hi Shloke,
Thanks for your very helpful replies here.
I've tried using this updated BR but all the attachments are still adding to the email client.
Have you any ideas?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-03-2021 02:33 AM
Hi,
I can't get the email client to open. I have checked that the email client. = true in dictionary also 😕
Can you please help me with this