Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Need to populate table name based on Type field

suuriya
Tera Contributor

HI

 

I have a requirement,

 

In a flashes form (name of the table flashes), there is choice field called type. choices: user, location and account.

and there another field called table name its data type is table name so this field will display all tables present in the instances.

Now, if i select user from type the user table (sys_user) table need to be default in table name field

IF I select location from type field then location table (cmn_location) need to be default in table name field...similarly for account means account table.

suuriya_0-1695373580045.png

 

 

Is it possible to do so?

If it is achievable, If so, please do let me know how we can achieve this.

4 REPLIES 4

anshul_goyal
Kilo Sage

Hi @suuriya,

Yes, it is possible to do. Please use the below code for your reference:

Client Script:
Type: onChange
Field: Type
Script: 

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading || newValue === '') {
g_form.clearValue("u_table_name");
return;
}

//Type appropriate comment here, and begin script below
if (newValue == "User") {
g_form.setValue("u_table_name", "sys_user");
} else if (newValue == "Location") {
g_form.setValue("u_table_name", "cmn_location");
} else if (newValue == "Account") {
g_form.setValue("u_table_name", "customer_account");
}

}

I hope this will help you solve your problem. Please mark it as Accepted and Helpful.

Thanks and Regards,
Anshul

Ankur Bawiskar
Tera Patron
Tera Patron

@suuriya 

did you try adding ref qualifiers?

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

Deep Raj 1
Tera Contributor

Hello @suuriya ,

This is possible. You can configure "onChange" client script on your current table.
I have written a demo script for you.

DeepRaj1_0-1695377139596.png

u_reference will be your "Table type" and you can set "sys_id" of respective tables there.

Vishal Birajdar
Giga Sage

Hi @suuriya 

 

We can write onChange client script on "Type" field.

 

//Use your fields backend name

 

function onChange(control, oldValue, newValue, isLoading, isTemplate) {

    if (isLoading) {
        return;
    }

    var getType = g_form.getValue('u_type');

    if (getType == 'user') {
        g_form.setValue('u_table', 'sys_user'); //put backend name of tables
    } else if (getType == 'location') {
        g_form.setValue('u_table', 'cmn_location'); //put backend name of tables
    } else if (getType == ''){
        g_form.clearValue('u_table');
    }
}

 

If possible make "Table name" field as readonly.

 

 

Vishal Birajdar
ServiceNow Developer

I know one thing, and that is that I know nothing.
- Socrates