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.

Variable condition on catalog task

munwala
Kilo Contributor

Hi All,

I have a variable which is displayed only on the catalog task form and I want to make it mandatory only when the State of the catalog task is updated to 'Closed Complete'.

In order to accomplish this I have a UI policy created which displays it only on the catalog task form and hides it elsewhere. Now the trouble I am having is how should I set up the condition where it should be mandatory only when the catalog task State changes to 'Closed Complete'?

Can it be done in the same UI policy or will I need a client script?

Any help would be appreciated.

Thanks!

1 ACCEPTED SOLUTION

Inactive_Us1976
Giga Expert

I used a UI Policy to do this.   I set the state to Closed complete and used this script



function onCondition() {


g_form.setMandatory('variables.preorder',true);}



And then the false version of this for the "reverse if condition is false".



I also had to add something to the "Close Task" button to ensure the UI Policy was checked before closing out the task utilizing that button.   I believe I utilized this thread to accomplish that: https://community.servicenow.com/thread/183633


View solution in original post

13 REPLIES 13

Hi Pradeep,


Yes I will have to use onchange client script. Can you provide me with the code for the same please?



Thanks,


munwala
Kilo Contributor

And also as I mentioned I want to make it mandatory when the catalog task state changes to 'Closed complete'.


Here you go.


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


  if (isLoading || newValue == '') {


  return;


  }


  alert(newValue);


  var st = g_form.getValue('state');


  if(oldValue != newValue && st == 3)


  {


  g_form.setMandatory('short_description', true);


  }


  else


  {


  g_form.setMandatory('short_description', false);


  }


  //Type appropriate comment here, and begin script below



}


Hi Pradeep,


What should I select under the 'Variable name' within the onchange client script.


I tried your above code but its not working.


I replaced short description with my custom variable which I have on the catalog item which I want to make it mandatory and force the fulfiller to fill it before they can closed complete the task. It's a reference type variable.



Am I missing something in my code which is why it is not working?


You might be making this a lot harder than it should be.   Using a catalog UI Policy is going to be a lot easier than trying to script it, plus it's easier to manipulate if you ever need to make a change.