Why is gr.update() duplicating the current record and not updating?

Ulrich Matthew
Tera Contributor

When i click on ok, the record I'm working with is being duplicated and not updated

 

 

function onCancel() {
    GlideDialogWindow.get().destroy();
    return false;
}

function onSubmit() {
    var reason = document.getElementById('termination_reason').value;
    var date = document.getElementById('termination_date').value;
    var sysId = g_form.getUniqueValue();
    /*g_form.setValue('u_reason', reason);
	g_form.setValue('u_termination', date);

	g_form.save();
*/

    var employees = new GlideRecord('u_itechag_employees');
    employees.addQuery('sys_id', sysId);
    employees.query();


    if (employees.next()) {
        employees.u_reason = reason;
        employees.u_termination = date;
        employees.update();
    }


    location.reload();

    return true;
}

1 ACCEPTED SOLUTION

var terminate_employee = Class.create();
terminate_employee.prototype = Object.extendsObject(AbstractAjaxProcessor, {
Terminate:function()
{ 
 var employees = new GlideRecord('u_itechag_employees');
    employees.addQuery('sys_id', this.getParameter('sysparm_id'));
    employees.query();


    if (employees.next()) {
        employees.u_reason = this.getParameter('sysparm_reason');
        employees.u_termination = this.getParameter('sysparm_date');
        employees.update();
    }
},
    type: 'terminate_employee'
});

Replace the script below and try 

please mark my answer correct if it helps you

View solution in original post

32 REPLIES 32

And also replace your glide ajax like below

var ga = new GlideAjax('terminate_employee');//this is the script include
ga.addParam("sysparm_name", "Terminate"); //this is the function within the script include
ga.addParam("sysparm_id", g_form.getUniqueValue());
ga.addParam('sysparm_reason',reason);
ga.addParam('sysparm_date',date);
ga.getXML(getResponse);

function getResponse(response) {
// do nothing
}

 

made both changes but the record was not updated yet 😞

Put these logs below there two lines and check if logs are coming in logs table

Terminate:function()
{ 

 

gs.info('Record sys_id'+this.getParameter('sysparm_id'));

gs.info('My record reason'+this.getParameter('sysparm_reason'));

gs.info('My record date'+this.getParameter('sysparm_date'));

find_real_file.pngthey are being captured 

great! now can you put log inside this if loop like gs.info('inside the if loop');

and check if it is finding the record with sys_id

if (employees.next()) {