How to access a variable on a catalog task?

PranavSuj96
Mega Expert

Hello all,

I am writing an onSubmit script which will not allow the user to close the task if a variable from the catalog item that I display on the catalog task (I display it by selecting it in the workflow using the slushbucket). I tried using g_form.getValue('variables.variable_name'). This seems to not work...

 

Any ideas why? I'll post the script below. Also the onsubmit script is also preventing saving/updating..

Script:

function onSubmit() {

 if(g_form.getActionName('close_task') && g_form.getValue('short_description') == 'Precheck for Server Snapshot' && (g_form.getValue('variables.mc_storage')!='false' || g_form.getValue('variables.mc_storage')!='true')) {
  var val = g_form.getValue('variables.mc_storage');
  alert(val.getDisplayValue());
  return false;
 }
 return true;
}

1 ACCEPTED SOLUTION

ccajohnson
Kilo Sage

Based upon what you describe, I am guessing that you want to have specific variables become mandatory only on a particular task, and only when the record becomes closed. If this is true, we can use a UI Policy on the Catalog Task table (not a Catalog UI Policy) to achieve this. I have done this before, so if this is the case and you want more information, let me know.

View solution in original post

34 REPLIES 34

Bharath40
Giga Guru

Try this script

function onSubmit() {

if(g_form.getValue('short_description') != 'Precheck for Server Snapshot'){

return;
}

if(g_form.getActionName() == 'close_task' && g_form.getValue('mc_storage') =='false') {

alert(g_form.getValue('mc_storage');
return false;
}
return true;
}

 

the g_form.getValue('mc_storage') is blank.  guess you can't directly access from task?

Xavier Cordero
Kilo Sage

Hello Pranav,

If the goal is for individuals to not be able to close out a task until a variable has been populated, I would recommend a simple business rule with an abort action and a gs.addErrorMessage. The can simply set the condition to the state changing to closed complete within the task, and set the BR to only trigger for the specific catalog item. I did this with an example in which I was dealing with a text variable. within the SC Task record (make sure to also make the BR before update, so that it can cancel the submission, you could also make it fancier if need be, where it will proceed with the save but leave the state as Work in Progress and show your desired error message on re-load).

find_real_file.png

find_real_file.png

ccajohnson
Kilo Sage

Based upon what you describe, I am guessing that you want to have specific variables become mandatory only on a particular task, and only when the record becomes closed. If this is true, we can use a UI Policy on the Catalog Task table (not a Catalog UI Policy) to achieve this. I have done this before, so if this is the case and you want more information, let me know.

NarenNow
Tera Contributor

If it is at the form level we can make use of
g_form.getValue('field name here');

If it is at workflow or at server side we can make use of
current.getValue() or current.getDisplayValue() or
we can dot walk up to 2 references.

for example: current.assigned_to.email;