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.

uable to update field with dynamic value as it is Choice field.

srinidhi
Tera Guru

Hello Team,

 

How to update choice field dynamically, when i try to use below syntax it is creating duplicate record.

 current.setValue(FieldName, displayName);

please suggest me here Thanks.

 

 

1 ACCEPTED SOLUTION

swathisarang98
Giga Sage

Hi @srinidhi ,

 

You can not directly do this through set value, try to get values from Payload if that is not at all possible then as a workaround what you can do is store the state choice label inprogress or fetch that value in a variable and query sys_choice table and add table name in query and then set the state value .

 

example;

for testing i have a randon=m string field where i set value as In Progress and in before update business rule i gliderecord to sys_ choice table and got the value for label In progress and set the state value in incident,

 

BR:

swathisarang98_0-1711451282608.png

 

(function executeRule(current, previous /*null when async*/ ) {

   

    var choiceLabel = current.u_string_1;

	//gs.info('label: ' + choiceLabel);
    var gchoice = new GlideRecord('sys_choice');
    gchoice.addEncodedQuery('nameSTARTSWITHINCIDENT^element=state');
    gchoice.addQuery('label', choiceLabel); // here i have added dummy value stored in a string to check but what you can do is get the pay load value store it in a variable and use that to query
    gchoice.query();
    if (gchoice.next()) {
		//gs.info('value '+ gchoice.getValue('value'));
        current.setValue('state', gchoice.getValue('value'));
    }


})(current, previous);

 

 

Please mark this comment as Correct Answer/Helpful if it helped you.

Regards,

Swathi Sarang

View solution in original post

15 REPLIES 15

Hello @swathisarang98,

Thanks its working fine!!