- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎10-16-2023 11:23 PM
(function executeRule(current, previous) {
try {
gs.info("-------------------------111111111111111111");
var attachment = new GlideSysAttachment();
var attachmentContent;
gs.info("---------------------222222");
var agr = new GlideRecord('sys_attachment');
agr.addQuery('table_name','incident');
agr.addQuery('table_sys_id',current.sys_id);
agr.query();
gs.info("-----------------333");
while (agr.next()) {
gs.info('Attachment sys_id:' + agr.getValue('sys_id'));
gs.info('-------' + agr.getValue('file_name')); //print file name of attachment
attachmentContent = attachment.getContent(agr);
gs.info('------Attachment content: ' + attachmentContent); //print attachment content
}
}catch(e){gs.info('------------error in xml attachment '+e);}
})(current, previous);
Hi, i am having an issue with my business rule. in my business rule on sys_attachment table on condition filename is anything . when i add and save any attachment in the incident form ,i want to see the details of the attachment table sys id in system log
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎10-17-2023 04:01 AM
You can use the below code to get attachment details in system log whenever any new attachment is attached to any table:-
var attachment = new GlideSysAttachment();
var agr = attachment.getAttachments(current.table_name, current.table_sys_id);
while (agr.next()) {
gs.info(agr.getValue('file_name')); //print file name of attachment
var attachmentContent = attachment.getContent(agr);
gs.info('Attachment content: ' + attachmentContent); //print attachment content
gs.info('Attachment content type' + agr.getValue('content_type'));
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎10-16-2023 11:41 PM
Hi @sanjeet1245 ,
Are you running BR on sys_attachment Table
If yes
You will need to run it on incident table as sys_attachment record have field table sys_id which will store the sys id of incident and running on sys_attachment table will not give right sysid
Hope this helps you
Please mark this comment as Correct Answer/Helpful if it helped you.
Regards,
Uday
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎10-17-2023 01:34 AM
can you explain more about this ? what changes i have to do on target table incident or attachment ?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎10-17-2023 02:09 AM
Can you tell me a bit more about your requirement?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎10-17-2023 03:03 AM
my business rule is on sys_attachment table . my gs.log(-----------3) is getting printed on system log but after the while (agr.next()) loop part in not getting printed in system log .
my requirement is while loop part printed in the system log which i want to print but instead of printing output its show undefined or not print any message.
(function executeRule(current, previous /*null when async*/ ) {
try {
gs.info("-------------------------111111111111111111");
var attachment = new GlideSysAttachment();
var attachmentContent;
gs.info("------------22222222222222222222222");
var agr = attachment.getAttachments('incident', current.sys_id); //create attachment GlideRecord
gs.info("---333333333333333333333333333333333333333333");
while (agr.next()) { //for each attachment on the incident record
gs.info('------------44444');
gs.info(agr.getValue('file_name')); //print file name of attachment
var attachmentContent = attachment.getContent(agr);
gs.info('Attachment content: ' + attachmentContent); //print attachment content
}
}catch(e){gs.info('------------error in xml attachment '+e);}
})(current, previous);