How to create Copy Change button in Agent Workspace

Rekha Tiwari
Kilo Guru

Hi All,

I need to have Copy Change button on Agent Workspace same as we have on native view. We have OOB "Copy Change" UI action.

I have checked "Workspace form button" checkbox. I can see Copy Change button on Agent Workspace but not performing any action. Please help me with this.

 

Thanks,

1 ACCEPTED SOLUTION

@Rekha Tiwari 

it got created from script only

then just show some alert to user with the CHG number

Client Script:

function onClick(g_form) {
//alert('1');

// GlideAjax here send the current CHG sys_id so that you can copy the fields to new CHG
var srcSysId = g_form.getUniqueValue();
var ga = new GlideAjax('CustomChangeUtils');
ga.addParam('sysparm_name', 'getChangeDetails');
ga.addParam('sysparm_src_sysid', srcSysId);
ga.getXMLAnswer(function(answer) {

alert(answer);

});
}

Script Include:

var ChgSysID = this.getParameter("sysparm_src_sysid");

var gr = new GlideRecord("change_request");
gr.addQuery('sys_id', ChgSysID);
gr.query();
if(gr.next()){

var gr1 = new GlideRecord('change_request');
gr1.initialize();
gr1.category = gr.category;
gr1.business_service = gr.business_service;
gr1.cmdb_ci = gr.cmdb_ci;
gr1.insert();
return 'CHG created ' + gr1.number;
}

Regards
Ankur

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

View solution in original post

26 REPLIES 26

Hi,

You can have your custom logic there by using GlideAjax and create a copy of CHG

function onClick(g_form) {

    // GlideAjax here send the current CHG sys_id so that you can copy the fields to new CHG
    
}

Regards
Ankur

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

Hi @Ankur Bawiskar 

Can you please help me with the script?

 

@Rekha Tiwari 

something like this

function onClick(g_form) {

	// GlideAjax here send the current CHG sys_id so that you can copy the fields to new CHG
	var srcSysId = g_form.getUniqueValue();
	var ga = new GlideAjax('ChangeUtils');
	ga.addParam('sysparm_name', 'getChangeQueryParams');
	ga.addParam('sysparm_src_sysid', srcSysId);
	ga.getXMLAnswer(function (queryParam) {

	});

}

Regards
Ankur

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

Hi @Ankur Bawiskar 

 

I tried like below in Workspace Client Script-

 

function onClick(g_form) {

// GlideAjax here send the current CHG sys_id so that you can copy the fields to new CHG
var srcSysId = g_form.getUniqueValue();
var ga = new GlideAjax('ChangeUtils');
ga.addParam('sysparm_name', 'getChangeQueryParams');
ga.addParam('sysparm_src_sysid', srcSysId);
ga.getXMLAnswer(function (queryParam) {
if (queryParam) {
var gotoURL = new GlideURL('CopyChangeRelatedLists.do');
gotoURL.setEncode(false);
gotoURL.addToken();
gotoURL.addParam('srcSysID', srcSysId);
gotoURL.addParam('newSysID', '$sys_id');
gotoURL.addParam('sysparm_returned_action', '$action');

var form = cel('form', document.body);
hide(form);
form.method = "POST";
form.action = g_form.getTableName() + ".do";
if (typeof g_ck != 'undefined' && g_ck != "")
addParam(form, 'sysparm_ck', g_ck);
addParam(form, 'sys_id', '-1');
addParam(form, 'sysparm_query', queryParam);
addParam(form, 'sysparm_goto_url', gotoURL.getURL());
form.submit();
}

});
}

 

Still no luck.

Hi,

just use normal GlideAjax and create your custom script include

Don't use the OOB one

var ga = new GlideAjax('ChangeUtils');

Regards
Ankur

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader