Hi Approvals not copying
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-08-2023 12:33 AM
Hi Team,
I am using the below code to copy the approval records to child change when we click "Copy Change" UI action. But approval records are not copying from main change. Please correct or let me know where is the mistake in my code.
=============
function OnCopyChangeClick() {
function addParam(form, name, val) {
var inp = cel('textarea', form);
inp.name = name;
inp.value = val;
}
var srcSysId = g_form.getUniqueValue();
var ga = new GlideAjax('ChangeUtils');
ga.addParam('sysparm_name', 'getChangeQueryParams');
ga.addParam('sysparm_src_sysid', srcSysId);
ga.setWantSessionMessages(true);
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();
}
});
}
gsftSubmit(null, g_form.getFormElement(), 'copy_change_request');
if (typeof window == "undefined") {
copyApproval();
}
// Function to copy approval records
function copyApproval() {
if (current.parent) {
// Get the parent change record (main change)
var parentChange = new GlideRecord('change_request');
if (parentChange.get(current.parent)) {
// Copy approvals from the main change to the child change (current)
var approverGR = new GlideRecord('sysapproval_approver');
approverGR.addQuery('source_table', 'change_request');
approverGR.addQuery('source', parentChange.sys_id);
approverGR.query();
while (approverGR.next()) {
var newApprover = new GlideRecord('sysapproval_approver');
newApprover.initialize();
newApprover.source_table = 'change_request';
newApprover.source = current.sys_id;
newApprover.approver = approverGR.approver;
newApprover.state = approverGR.state;
newApprover.insert();
}
}
}
}
=========================
Note: But parent field from main change record is empty.
0 REPLIES 0