Why are uploaded files lost after order guide are sent?
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎12-29-2023 08:19 PM - edited ‎01-01-2024 06:43 PM
I created the "Demo multi Row 001"multirow variable which has a field to reference the "sys_attachment".
When user upload file by the "Demo Attachment" attachment field. I cloned it. And I added it into "Demo Multi Row 001". But when the order guide is sumitted, the files in the something is deleted. What's the happend?
I used the on_change event for the "Demo Attachment" attachment field:
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
var attachmentAjax = new GlideAjax("DemoAttachmentUtil");
attachmentAjax.addParam('sysparm_name', 'cloneAttachmentByAjax');
attachmentAjax.addParam('sysparm_attachmentId', newValue);
attachmentAjax.getXMLAnswer(function(response) {
var newAttachmentId = "";
if (response) {
var resultData = JSON.parse(response);
newAttachmentId = resultData.attachmentId;
var jsonData = g_form.getValue('demo_multi_row_001');
var lstFiles = [];
if (jsonData) {
lstFiles = JSON.parse(jsonData);
}
lstFiles.push({
file_attachment: newAttachmentId
});
g_form.setValue('demo_multi_row_001', JSON.stringify(lstFiles));
}
});
}
, and script include "DemoAttachmentUtil":
var DemoAttachmentUtil = Class.create();
DemoAttachmentUtil.prototype = Object.extendsObject(AbstractAjaxProcessor, {
cloneAttachmentByAjax: function() {
var result = {
status: 0,
attachmentId: ''
};
try {
var paramAttachmentId = this.getParameter('sysparm_attachmentId');
result.attachmentId = this.copySingleAttachment(paramAttachmentId);
result.status = 1;
} catch(ex) {
gs.info("TEST :" + ex);
result.attachmentId = '';
}
return JSON.stringify(result);
},
copySingleAttachment: function(attachmentFileId) {
var attRec;
var orgAttachment = new GlideRecord('sys_attachment');
orgAttachment.addQuery('sys_id', attachmentFileId);
orgAttachment.query();
if (orgAttachment.next()) {
var cloneAttachment = new GlideRecord('sys_attachment');
cloneAttachment.initialize();
cloneAttachment.file_name = orgAttachment.file_name;
cloneAttachment.content_type = orgAttachment.content_type;
cloneAttachment.compressed = orgAttachment.compressed;
cloneAttachment.table_name = orgAttachment.table_name;
cloneAttachment.size_bytes = orgAttachment.size_bytes;
cloneAttachment.size_compressed = orgAttachment.size_compressed;
cloneAttachment.table_sys_id = orgAttachment.table_sys_id;
attRec = cloneAttachment.insert();
}
var attDoc = new GlideRecord('sys_attachment_doc');
attDoc.addQuery('sys_attachment', orgAttachment.sys_id);
attDoc.query();
while (attDoc.next()) {
var attDocCopy = new GlideRecord('sys_attachment_doc');
attDocCopy.initialize();
attDocCopy.sys_attachment = attRec;
attDocCopy.position = attDoc.position;
attDocCopy.length = attDoc.length;
attDocCopy.data = attDoc.data;
attDocCopy.insert();
}
return attRec;
},
isPublish: function() {
return true;
},
type: 'DemoAttachmentUtil'
});
0 REPLIES 0