here the server side code is running first and then the client side how can i call the code

Community Alums
Not applicable

function test() {

    window.open(redirectURL, '_blank');

    gsftSubmit(null, g_form.getFormElement(), 'creat_chang');

}

 

var resultAsObject = true;

    var demandUtil = new AjaxCreateRelatedEntityFromDemand();

    var changeObj = demandUtil.createChange(current.sys_id, resultAsObject);

    var changeId = changeObj.sys_id;

    var number = changeObj.number;

    var displayLabel = changeObj.label;

    var change;

    var message;

    var link;

 

    if (changeId) {

        change = new GlideRecord('change_request');

        change.addQuery("sys_id", changeId);

        change.query();

 

        if (change.next()) {

            link = ' <a href ="/change_request.do?sysparm_query=number%3D' + number + '">' + number + '</a>';

            gs.addInfoMessage('sumanthhhhhhhhhhh' + link);

            message = gs.getMessage("{0} {1} has been created");

            message = message.replace("{0}", displayLabel);

            message = message.replace("{1}", link);

            gs.addInfoMessage(message);

        }

    } else {

        message = gs.getMessage("Error creating {0}");

        message = message.replace("{0}", displayLabel);

        gs.addErrorMessage(message);

    }

 

here the server side code is running first and then the client side 

how can i call the code so that client side should run first

3 REPLIES 3

Aniket Chavan
Tera Sage
Tera Sage

Hello @Utsav JAISWAL ,

To ensure that the client-side code runs before the server-side code, you can use a client script with the "onLoad" type.
Here's an adjusted version of your script:

function onLoad() {
    // Your client-side code here
    window.open(redirectURL, '_blank');
    gsftSubmit(null, g_form.getFormElement(), 'creat_chang');

    // Continue with the rest of your code
    var resultAsObject = true;
    var demandUtil = new AjaxCreateRelatedEntityFromDemand();
    var changeObj = demandUtil.createChange(current.sys_id, resultAsObject);
    var changeId = changeObj.sys_id;
    var number = changeObj.number;
    var displayLabel = changeObj.label;
    var change;
    var message;
    var link;

    if (changeId) {
        change = new GlideRecord('change_request');
        change.addQuery("sys_id", changeId);
        change.query();

        if (change.next()) {
            link = ' <a href ="/change_request.do?sysparm_query=number%3D' + number + '">' + number + '</a>';
            gs.addInfoMessage('sumanthhhhhhhhhhh' + link);
            message = gs.getMessage("{0} {1} has been created");
            message = message.replace("{0}", displayLabel);
            message = message.replace("{1}", link);
            gs.addInfoMessage(message);
        }
    } else {
        message = gs.getMessage("Error creating {0}");
        message = message.replace("{0}", displayLabel);
        gs.addErrorMessage(message);
    }
}

 

Let me know your views on this and Mark Correct if this solves your query and also mark 👍Helpful if you find my response worthy based on the impact.

 

Thanks,
Aniket

Community Alums
Not applicable

my code is written in UI action as above
how can we use it in UI action

Amit Verma
Kilo Patron
Kilo Patron

Hi @Community Alums 

 

Please check the checkbox "Client" on UI Action as shown in snip below. Refer below post for reference :

https://www.servicenow.com/community/itsm-articles/client-side-and-server-side-code-in-one-ui-action-using/ta-p/2306403#:~:text=Check%20the%20%22Client%22%20checkbox.,code%20in%20the%20script%20block.

 

AmitVerma_0-1705305432723.png

 

Thanks & Regards

Amit Verma


Please mark this response as correct and helpful if it assisted you with your question.