Have to make field visible based on Variable value choice and RITM Value choice, looking for suggest

e__rajesh_badam
Mega Guru

Looking for help i.e., if item = lead manager App and Request type =API requests then make visible of 

Could this late request be fulfilled?
Please suggest.
 
confusion here is Item =  Lead manager App is part of RITM table and Request Type = API Requests variable is part of catalog form. Based on these two value choices want to make field (Could this late request be fulfilled? - Field is part of RITM table) visible,
 
Achieved Above Scenario with below :
 
Script Include:
 
var sendCaseVaribleInfo = Class.create();
sendCaseVaribleInfo.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {

sendInfo: function()
{
var CaseNumber = this.getParameter('sysparm_parentSysId');
var gr = new GlideRecord('sc_req_item');
gr.addQuery('sys_id',CaseNumber);
gr.query();
if(gr.next())
{
if(gr.variables.request_type == 'pre-show readiness') // Afte variables.addYourVariableBackEndName and built the logic
{
return "yes";
}
else
{
return "no";
}
}
},
type: 'sendCaseVaribleInfo'
});
 
On-change Client Script: onchange on State value
 
Did written two client script as per my requirement.
 
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
    if (isLoading || newValue === '') {
        //if (g_form.getValue('state') == '19')
        if ((g_form.getValue('state') == '19') ||((g_form.getValue('state') == '21'))){


            var ga = new GlideAjax('sendCaseVaribleInfo');
            ga.addParam('sysparm_name', 'sendInfo');
            ga.addParam('sysparm_parentSysId', g_form.getUniqueValue());
            ga.getXML(ResponseFunction);

            function ResponseFunction(response) {
                var answer = response.responseXML.documentElement.getAttribute("answer");
                //alert(answer);
                if (answer == 'yes') {
                    g_form.setVisible('u_could_this_late_request_be_fulfilled', true);
                    g_form.setMandatory('u_could_this_late_request_be_fulfilled', true);

                } else {
                    g_form.setVisible('u_could_this_late_request_be_fulfilled', false);
                    g_form.setMandatory('u_could_this_late_request_be_fulfilled', false);
                }
            }
        }
        else{
            g_form.setVisible('u_could_this_late_request_be_fulfilled', false);
                    g_form.setMandatory('u_could_this_late_request_be_fulfilled', false);
        }
    }


    //Type appropriate comment here, and begin script below
   // if (g_form.getValue('state') == '19')
    if ((g_form.getValue('state') == '19') ||((g_form.getValue('state') == '21'))){


        var ga = new GlideAjax('sendCaseVaribleInfo');
        ga.addParam('sysparm_name', 'sendInfo');
        ga.addParam('sysparm_parentSysId', g_form.getUniqueValue());
        ga.getXML(ResponseFunction);

        function ResponseFunction(response) {
            var answer = response.responseXML.documentElement.getAttribute("answer");
            //alert(answer);
            if (answer == 'yes') {
                g_form.setVisible('u_could_this_late_request_be_fulfilled', true);
                g_form.setMandatory('u_could_this_late_request_be_fulfilled', true);
            } else {
                g_form.setVisible('u_could_this_late_request_be_fulfilled', false);
                g_form.setMandatory('u_could_this_late_request_be_fulfilled', false);
            }
        }
    }
    else{
            g_form.setVisible('u_could_this_late_request_be_fulfilled', false);
                    g_form.setMandatory('u_could_this_late_request_be_fulfilled', false);
        }
}
 
On-Load Client Script:
 

 

function onLoad() {
   // if (g_form.getValue('state') == '19')
    if ((g_form.getValue('state') == '19') ||((g_form.getValue('state') == '21'))){


        var ga = new GlideAjax('sendCaseVaribleInfo');
        ga.addParam('sysparm_name', 'sendInfo');
        ga.addParam('sysparm_parentSysId', g_form.getUniqueValue());
        ga.getXML(ResponseFunction);

        function ResponseFunction(response) {
            var answer = response.responseXML.documentElement.getAttribute("answer");
          //  alert(answer);
            if (answer == 'yes') {
                g_form.setVisible('u_could_this_late_request_be_fulfilled', true);
                g_form.setMandatory('u_could_this_late_request_be_fulfilled', true);
            } else {
                g_form.setVisible('u_could_this_late_request_be_fulfilled', false);
                g_form.setMandatory('u_could_this_late_request_be_fulfilled', false);
            }
        }
    }
    else{
            g_form.setVisible('u_could_this_late_request_be_fulfilled', false);
                    g_form.setMandatory('u_could_this_late_request_be_fulfilled', false);
        }
}

 

7 REPLIES 7

One or more of the names or values is not satisfying the if condition.  Add an alert on each field and value to see which one doesn't agree

function onLoad() {
    alert ('Item = ' + g_form.getValue('cat_item') + ' State = ' + g_form.getValue('state') + ' Request Type = ' + g_form.getValue('request_type'));

    if ((g_form.getValue('cat_item') == 'f3fff70ddb2ac8107030ed384b9619dc') && (g_form.getValue('state') == '19') && (g_form.getValue('request_type') == 'pre-show readiness'))

    {
        g_form.setVisible('u_could_this_late_request_be_fulfilled', false);
     
    }
}

Note that the fields and variable have to be on the record being loaded. They don't have to be visible, but they need to be included in the form layout or variable formatter.

 

e__rajesh_badam
Mega Guru

Thanks  for helping out. @Brad Bowman  to achieve result.

You are welcome!