Copy the attachment again if already exist in the target table
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-04-2024 11:22 PM
Hi every one,
I am copying attachment from work order task to work order but if already exist attach emnt in target record, it copying , i want to avoid it, please help me how to do it.
below is the script i have written after inser and update business rule on work order task table, please help in it.
if (current.operation() !== 'insert' && current.operation() !== 'update') { return; } var incidentGr = new GlideRecord('incident'); incidentGr.get(current.getValue('incident')); if (incidentGr.isValidRecord()) { // Check if there are attachments to copy GlideSysAttachment.copy('incident_task', current.sys_id, 'incident', incidentGr.sys_id); }
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-04-2024 11:28 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-04-2024 11:29 PM
the above is the script, please correct the above
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-05-2024 12:46 AM
var gr = new GlideRecord('wm_order');
gr.addQuery('sys_id', current.parent);
gr.query();
while (gr.next()) {
// Check if the attachment already exists on the destination record
if (!attachmentExists("wm_order", gr.sys_id, current.sys_id)) {
// If it doesn't exist, then copy the attachment
GlideSysAttachment.copy("wm_task", current.sys_id, "wm_order", gr.sys_id);
}
}
/**
* Check if an attachment already exists on the destination record.
*
* @Param {string} destTable - The destination table name.
* @Param {string} destRecordSysId - The sys_id of the destination record.
* @Param {string} sourceSysId - The sys_id of the source record.
* @returns {boolean} - True if the attachment already exists, false otherwise.
*/
function attachmentExists(destTable, destRecordSysId, sourceSysId) {
var attachment = new GlideRecord('sys_attachment');
attachment.addQuery('table_name', destTable);
attachment.addQuery('table_sys_id', destRecordSysId);
attachment.addQuery('file_name', current.name); // Assuming 'name' is the attachment file name field
attachment.query();
return attachment.hasNext();
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-05-2024 02:08 AM
Hello @Arjun Kumar Le1 ,
Created on insert BR for sys_attachment table. Add below script.
if (current.table_name == 'incident') { // Add your table Name
var incident = new GlideRecord('incident'); // Add your table Name
incident.addQuery('sys_id', current.table_sys_id);
incident.query();
if (incident.next()) {
var problem = new GlideRecord('problem'); // Add your child table Name
problem.addQuery('first_reported_by_task', current.table_sys_id);
problem.query();
while (problem.next()) {
var attachment = new GlideRecord('sys_attachment');
attachment.addQuery('table_sys_id', problem.getUniqueValue());
attachment.query();
if (!attachment.hasNext()) {
gs.info('In if');
GlideSysAttachment.copy('incident', incident.sys_id, "problem", problem.sys_id); // Change table names
}
problem.update();
}
}
}
Please Mark my Solution as Accept and Give me thumbs up, if you find it Helpful.
Regards,
Vaishnavi Shinde