Get sys_id of attachment in ui action

Rosy14
Tera Guru

Hi, I have a button on workbench.. I want to download the attachment of the record. it is not working. Button is on workspce.

Rosy14_0-1709804695773.png

function onClick(g_form) {

    var sysID = g_form.getUniqueValue();
    var gr = new GlideRecord("sys_attachment");
    gr.addQuery('table_sys_id', sysID);
    gr.query();
    while (gr.next()) {
        var attSysID = gr.sys_id;
    }
	alert(sysID);
    var URL = '/sys_attachment.do?sys_id='+attSysID;
    //window.open(URL, '_blank');
    //action.setRedirectURL(URL);
    //action.setReturnURL(current);
    top.window.open(URL, 'blank');
}
10 REPLIES 10

Rosy14
Tera Guru

Sys id is showing as undefined

Hi @Rosy14 can you try the below code and share the result of alert

function onClick(g_form) {
var attSysID;
var sysID = g_form.getUniqueValue();
alert("record sysid is "+sysID);
var gr = new GlideRecord("sys_attachment");
gr.addQuery('table_sys_id', sysID);
gr.query();
while (gr.next()) {
attSysID = gr.getValue('sys_id');
}
alert("attachment record sysid is "+attSysID);
var URL = '/sys_attachment.do?sys_id='+attSysID;
//window.open(URL, '_blank');
//action.setRedirectURL(URL);
//action.setReturnURL(current);
//top.window.open(URL, 'blank');
g_navigation.open(URL, '_blank');
}

Regards
Harish

1st alert showing correct but 2nd one is undefined.

Rosy14_0-1709805648942.png

 

Hi @Rosy14 I see the issue here, tested now works fine, You need to use script include and ajax in UI action as below

Script Include function below

 getAttachment: function()
 {
var sysID = this.getParameter('sysparm_id');
var gr = new GlideRecord("sys_attachment");
        gr.addQuery('table_sys_id', sysID);
        gr.query();
        while (gr.next()) {
            return gr.getValue('sys_id');
        }
 },
Ui Action :
function onClick(g_form) {
     
       var my_ga = new GlideAjax('scriptinclude name');
    my_ga.addParam('sysparm_name', 'getAttachment'); // pass function name used in script include
    my_ga.addParam('sysparm_id', g_form.getUniqueValue());
    my_ga.getXMLAnswer(function(response) {
        alert(response);
        if (response) {
           top.window.open("/sys_attachment.do?sys_id=" + response, '_blank');
        }
    });
}


       
Regards
Harish