How do I create two custom Save & Submit buttons that bypass the global UI Actions?

ChuanYanF
Tera Guru
Dear experts,
For my risk event form, I want to create a custom save button when clicked it will erase the assigned_to field in the risk event form, where the submit button will proceed with the risk event form submission that will prompt to the defined user in the assigned_to field. Currently, the submit button will only appear in the first submission of the form, so if we submit for the first time even though there is no assigned_to defined, when we log back in to the risk event record, the submit button is gone and it will be replaced with the update button. To make sure the submit button is always present before the assigned_to is defined, how do we make it happen? So my requirement now is to have two buttons at the first creation of the risk event record, Save and Submit buttons. I have created an onLoad script, where when user creates a new risk event form, the system will autopopulate the assigned_to field. Both of this state of the risk event will still remain as "New". So after I save and I go back to the record, the risk event form should still has the two save and submit button still and their function still the same as mentioned above until it is submitted to the defined user in the assigned_to field. Currently, the submit and update buttons are using the global one that is in the screenshots below, if I create new ui actions will it bypass the Global Ui Action or should I add in my conditions in the global ui actions script or what can I do in this case? Please advise, thank you.
ChuanYanF_0-1744181480279.png

 


 

1 ACCEPTED SOLUTION

Hi Shivalika, thanks for the reply but I managed to solve the issue using my approach as below:

So I have created two new button one is Save as Draft and one is Submit to Assigned and also a new flag field in the risk event form called u_submitted.
Save as Draft code and condition:
Condition:

current.state == 1 && !current.u_submitted

Script:

current.assigned_to = '';
current.update(); // Use update so record isn't considered "submitted"
action.setRedirectURL(current); // Stay on the same record after save

 

Submit to Assigned:
Condition:

(current.assigned_to != null || !gs.nil(current.assigned_to)) && current.state == 1 && !current.u_submitted

Script:

 
current.u_submitted = true;

if (current.isNewRecord()) {
    current.insert();
} else {
    current.update();
}

action.setRedirectURL(current);

 

And for the global Ui action I did not delete or remove but added in one condition which is to exclude the sn_risk_advanced_event table only which is this condition:

current.getTableName() != 'sn_risk_advanced_event'

View solution in original post

13 REPLIES 13

So after assigning to a user or a owner for the risk event, then the two buttons which are the save as draft button and the submit button will dissapear and replace with the Update button which is in the global ui action.

@ChuanYanF 

I don't think it's a valid business requirement to just have 1 button to clear the Assigned to field and save the form.

Please discuss this with your customer

If my response helped please mark it correct and close the thread so that it benefits future readers.

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

Hello @ChuanYanF 

 

I just tried this refer below screenshots, but I don;t think we will be able to keep the "UNSAVED RECORD" I mean "where shall we redirect after clicking on - //save as draft// - this question is stumping me even when I am implementing it. 

 

Refer below screenshots-

 

1)SAve as Draft appearing only in new records - - this is ok

 

Shivalika_0-1744184596646.png

 

Not in existing records - 

 

Shivalika_1-1744184654724.png

 

 

2)UI Action 

 

Shivalika_2-1744184723136.png

 

 

Shivalika_3-1744184737320.png

 

 

But after I click on the button it has no exact record to redirect to because nothing is saved. This is the technical stump. This is not feasible, hence. You may open a servicenow case to verify this. 

 

Kindly accept this as solution if it helped you in anyway, so that my efforts can be recognized and also future readers with same query would no why its not possible. 

 

Regards,

 

Shivalika 

 

My LinkedIn - https://www.linkedin.com/in/shivalika-gupta-540346194

 

My youtube - https://youtube.com/playlist?list=PLsHuNzTdkE5Cn4PyS7HdV0Vg8JsfdgQlA&si=0WynLcOwNeEISQCY

 

 

Hi Shivalika, thanks for the reply but I managed to solve the issue using my approach as below:

So I have created two new button one is Save as Draft and one is Submit to Assigned and also a new flag field in the risk event form called u_submitted.
Save as Draft code and condition:
Condition:

current.state == 1 && !current.u_submitted

Script:

current.assigned_to = '';
current.update(); // Use update so record isn't considered "submitted"
action.setRedirectURL(current); // Stay on the same record after save

 

Submit to Assigned:
Condition:

(current.assigned_to != null || !gs.nil(current.assigned_to)) && current.state == 1 && !current.u_submitted

Script:

 
current.u_submitted = true;

if (current.isNewRecord()) {
    current.insert();
} else {
    current.update();
}

action.setRedirectURL(current);

 

And for the global Ui action I did not delete or remove but added in one condition which is to exclude the sn_risk_advanced_event table only which is this condition:

current.getTableName() != 'sn_risk_advanced_event'

Yesss @ChuanYanF Niceeee!!  getTableName was the condition I also applied. But what is happening in redirect ? You didn't want to save right ? 

 

Then when there is no saved record where is it going after redirect ? 

 

 

Kindly mark my answer as helpful and accept solution if it helped you in anyway. This will help me be recognized for the efforts and also move this questions from unsolved to solved bucket. 

 

Regards,

 

Shivalika 

 

My LinkedIn - https://www.linkedin.com/in/shivalika-gupta-540346194

 

My youtube - https://youtube.com/playlist?list=PLsHuNzTdkE5Cn4PyS7HdV0Vg8JsfdgQlA&si=0WynLcOwNeEISQCY