- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-16-2024 12:22 PM
Hi ,
I need to Modify out of the box UI action (create_story). Need to copy attachments from demand to story while creating story from demand. Below is the existing code.
function openFormDialog(){
var sysId;
if (typeof rowSysId == 'undefined')
sysId = gel('sys_uniqueValue').value;
else
sysId = rowSysId;
var gModalForm = new GlideModalForm(getMessage('Create Story'), 'rm_story');
gModalForm.setPreference('sysparm_view', 'scrum');
gModalForm.setPreference('sysparm_query', 'short_description=' + g_form.getValue('short_description') +
'^description=' + g_form.getValue('description') +
'^assigned_to=' + g_form.getValue('assigned_to') +
'^cmdb_ci=' + g_form.getValue("cmdb_ci") +
'^classification=Defect' +
'^type=Development' +
'^defect=' + sysId);
gModalForm.render();
gModalForm.setCompletionCallback(function(actionVerb, storySysId){
var ga = new GlideAjax('AgileAjaxProcessor');
ga.addParam('sysparm_name', 'updateStoryDefect');
ga.addParam('sysparm_defect_sys_id', sysId);
ga.addParam('sysparm_story_sys_id', storySysId);
ga.getXML(function() {
if (typeof GlideList2 !== 'undefined' && GlideList2.get("rm_defect.rm_story.defect")) {
GlideList2.get("rm_defect.rm_story.defect").refresh();
}
});
});
}
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-18-2024 09:21 AM
Ops sorry..we have to write that logic in script include..for the same function..also put some logs for debugging purpose ..
So in function copyAtt() put alert for parameters then-> use GlideAjax and in script include put some logs there and let me know where is the exact issue
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-16-2024 09:28 PM - edited 09-16-2024 09:32 PM
ok create new script include and call it in same Ajax call
sendAtt: function() {
var source= this.getParameter('sysparm_defect_sys_id');
var gr= new GlideRecord('sys_attachment');
gr.addQuery('table_sys_id', source);
gr.addQuery('table_name', 'rm_demand');
gr.query();
while (gr.next()) {
var x= new GlideSysAttachment();
var y =x.getContent(gr.sys_id);
x.write(this.getParameter('sysparam_story_sys_id'), 'rm_story', y.name, y.data);
}
};
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-17-2024 11:17 AM
I have tried in the same script include but it is not working
var AgileAjaxProcessor = Class.create();
AgileAjaxProcessor.prototype = Object.extendsObject(AbstractAjaxProcessor, {
updateStoryDefect: function() {
var result = this.newItem("result");
var storySysId = this.getParameter('sysparm_story_sys_id');
var defectSysId = this.getParameter('sysparm_defect_sys_id');
var gr;
try {
if (!storySysId)
throw new Error('sysparm_story_sys_id is missing');
if (!defectSysId)
throw new Error('sysparm_defect_sys_id is missing');
gr = new GlideRecordSecure('rm_story');
if (gr.get(storySysId)) {
gr.defect = defectSysId;
if (gr.update()) {
result.setAttribute('status', 'success');
result.setAttribute('message', 'story.defect has been updated successfully');
} else {
throw new Error('unable to update story ' + storySysId);
}
} else
throw new Error('story record ' + storySysId + ' does not exist');
} catch (err) {
result.setAttribute('status', 'failed');
result.setAttribute('message', err.message);
}
},
sendAtt: function() {
var source= this.getParameter('sysparm_defect_sys_id');
var gr= new GlideRecord('sys_attachment');
gr.addQuery('table_sys_id', source);
gr.addQuery('table_name', 'rm_defect');
gr.query();
while (gr.next()) {
var x= new GlideSysAttachment();
var y =x.getContent(gr.sys_id);
x.write(this.getParameter('sysparam_story_sys_id'), 'rm_story', y.name, y.data);
}
},
type: 'AgileAjaxProcessor'
});
. Please see 2nd function
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-17-2024 10:14 PM - edited 09-17-2024 10:15 PM
@sinu2 is this ui action on which table ? i assumed it was on demand ,so suggested this logic
sendAtt: function() {
var source= this.getParameter('sysparm_defect_sys_id');
var gr= new GlideRecord('sys_attachment');
gr.addQuery('table_sys_id', source);
gr.addQuery('table_name', 'rm_demand');
gr.query();
while (gr.next()) {
var attachment = new GlideSysAttachment();
var copiedAttachments = attachment.copy('rm_demand', source, 'rm_story', this.getParameter('sysparm_story_sys_id'));
gs.log('Copied attachments: ' + copiedAttachments);
}
},
///refer doc related to : GlideSysAttachment - copy(String sourceTable, String sourceID, String targetTable, String targetID)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-18-2024 03:22 AM
Hi Mani,
I wanna modify UI action not to touch script include SO can you suggest. This ui action is on rm_defect table.
Goal::::::::::::::when ever defect converting in to story what ever attachments in defects should attach in story as well.
SO for that i have write some script in Ui action but not working. ANy suggestions would be appreciate.
function openFormDialog() {
var sysId;
if (typeof rowSysId == 'undefined')
sysId = gel('sys_uniqueValue').value;
else
sysId = rowSysId;
var gModalForm = new GlideModalForm(getMessage('Create Story'), 'rm_story');
gModalForm.setPreference('sysparm_view', 'scrum');
gModalForm.setPreference('sysparm_query', 'short_description=' + g_form.getValue('short_description') +
'^description=' + g_form.getValue('description') +
'^assigned_to=' + g_form.getValue('assigned_to') +
'^cmdb_ci=' + g_form.getValue("cmdb_ci") +
'^classification=Defect' +
'^type=Development' +
'^defect=' + sysId);
gModalForm.render();
gModalForm.setCompletionCallback(function(actionVerb, storySysId) {
var ga = new GlideAjax('AgileAjaxProcessor');
ga.addParam('sysparm_name', 'updateStoryDefect');
ga.addParam('sysparm_defect_sys_id', sysId);
ga.addParam('sysparm_story_sys_id', storySysId);
ga.getXML(function() {
if (typeof GlideList2 !== 'undefined' && GlideList2.get("rm_defect.rm_story.defect")) {
GlideList2.get("rm_defect.rm_story.defect").refresh();
}
});
});
copyAtt();
}
function copyAtt() {
var sysId;
if (typeof rowSysId == 'undefined')
sysId = gel('sys_uniqueValue').value;
else
sysId = rowSysId;
var grStory = new GlideRecord('rm_story');
grStory.addQuery('defect', sysId);
grStory.query();
if (grStory.next()) {
var grAtt = new GlideRecord('sys_attachment');
grAtt.addQuery('table_sys_id', sysId);
grAtt.addQuery('table_name', 'rm_defect');
grAtt.query();
while (grAtt.next()) {
GlideSysAttachment.copy('rm_defect', sysId, 'rm_story', grStory.sys_id);
}
}
}