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

Mohith Devatte
Tera Sage
Tera Sage

Hello,

I am assuming that this should be a UI page client controller code .

In client controller we are not supposed to do glide record instead of that please try using setvalue as g_form is accessible in client script and at last you can use g_form.save() to save the form

OR

Best way is to call a glide Ajax and use a script include pass the above two values and the sysid of the current record that you are trying to set values for and update it there in script include  using same glide record by querying with received current record sys id. This will work for sure

Please mark my answer correct if it helped you

thanks for the answear , i was using g_form but I was unable to make it work , gr.update () duplicates the record but at least does something hahaha  maybe I did it incorrectly , how would i implement g_form here please

okay can you confirm whether this UI page is being called while click of a UI action on a form?

yes a pop up is called and it asks for the 2 fields to be filled , after clicking "ok" , the page redirects to the UI page and a duplicated record is shown