UI action redirection to previous page issue

KaMmILa__
Tera Expert

we have a UI action Cancel Task on workorder table when clicked it should make the reason for cancellation field mandatory and visible and if entered then it should set the state to cancel, but when I click on the UI action it is redirecting to the previously worked (used page) , not sure how to debug this and it is also not updating the record. 

Below is the UI policy to hide the field 

find_real_file.png

 

 

UI action : 

find_real_file.png

Script:

function checkReason() {
    g_form.setDisplay("u_cancel_reason", true);
    if (g_form.getValue('u_cancel_reason') == '') {
        g_form.setMandatory("u_cancel_reason", true);
        gs.addErrorMessage("a change task must be added before submitting the change");
        //alert('Please enter the reason before cancellation');
        return false;
    }

    gsftSubmit(null, g_form.getFormElement(), 'cancel'); // give the action name of your UI Action

}

if (typeof window == 'undefined')
    serverResolve();

function serverResolve() {
    new global.StateFlow().processFlow(current, 'ffc7a360d7230100fceaa6859e6103ae', 'manual');
    //Moving redirect from state flow to UI action
    action.setRedirectURL(current);
}

 

When clicked on the UI action , cancel reason will be mandatory and if selected , there is a OOB in UI action which will enforce worknotes mandatory ,

This is the OOB code 

new global.StateFlow().processFlow(current, 'ffc7a360d7230100fceaa6859e6103ae', 'manual');
//Moving redirect from state flow to UI action
action.setRedirectURL(current);

find_real_file.png

34 REPLIES 34

do you want me to use this code in UI action ? in server side ?

I just commented on the server side , when I click on the cancel it is still redirecting and not updating the record 

 

function serverResolve() {
alert(2);
    new global.StateFlow().processFlow(current, 'ffc7a360d7230100fceaa6859e6103ae', 'manual');
    //Moving redirect from state flow to UI action
    action.setRedirectURL(current);
}

Hi,

alert() won't work in server side

use this and check the results; try updating some field. I have used short_description

function serverResolve() {
    //new global.StateFlow().processFlow(current, 'ffc7a360d7230100fceaa6859e6103ae', 'manual');
    //Moving redirect from state flow to UI action
    current.short_description = 'testing';
    current.update();
    action.setRedirectURL(current);
}

Regards
Ankur

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

I did that still redirecting back to previous page which I worked on and it is not updating the record 

 

This is the OOB UI action , will that matter ?

No.

Did you check record got updated with that field which you gave

Regards
Ankur

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