Skip to main content

Service Catalog: get display value of reference catalog variable

alert(g_form.getDisplayBox('<variable_name>').value);

note: this doesn't work in Service Portal, and not sure if it's officially supported since it doesn't appear in the GlideForm documentation!

for serviceportal, some experimentation below...

---

was having a play with GlideRecord in Service Portal view...


function onSubmit() {
    var urlString=top.location.toString();
    var res=true;
    var bPortal=false; //--loaded from Service Portal?
    if(urlString.indexOf('id=sc_cat_item')>-1){
        bPortal=true;
    }
    var itemID='';
    try{
        if (bPortal){
            itemID= g_form.getSysId(); //--service portal friendly
        }else{
            //--standard servicenow form
            itemID= gel('sysparm_id').value;
        }
    }catch (ex){
        //--
        alert('An error has occurred in the form load ' + ex.toString());
    }
   
    if (g_form.getValue('retail_owned_by')=='' || g_form.getValue('retail_assigned_to')==''){
        alert('owned by / assigned to not populated for the item selected');
        return false;
       
    }else{
        var bLaptop=false;
       
        alert(itemID);
        var displayTxt='';
        if (!bPortal){
        displayTxt=g_form.getDisplayBox('retail_kit').value.toLowerCase();
            bLaptop=(displayTxt.indexOf('lenovo')>-1);
            if (bLaptop){
                res=confirm('proceed?');
            }
            alert('return...' + res);
            return res;
           
        }else{
           
            //--SERVICE PORTAL LOGIC:
           
            var field_sysid=g_form.getValue('retail_kit');
            //--service portal view
            //--reluctantly, a gliderecord. Cant use synchronous AJAX calls and need to be able to prevent form submission
            //--https://docs.servicenow.com/bundle/istanbul-servicenow-platform/page/build/service-portal/concept/unsupported_client_scripts.html
            var grRL=new GlideRecord('u_mab_retail_sc_lookup');
            grRL.addQuery('sys_id', field_sysid);
            /*grRL.query();
            if (grRL.next()){
                alert('getKitDisplay:: test gl');
                //alert('getKitDisplay:: u_name:' + grRL.getValue('u_name'));
                //alert('getKitDisplay:: sys_id:' + grRL.getValue('sys_id'));
                //alert('getKitDisplay:: getTableName: ' + grRL.getTableName());
                //displayTxt=grRL.getValue(u_name);
            }*/
            grRL.query(function(grRL) {
                if (grRL.next()){
                    alert('in func');
                    alert('getKitDisplay:: u_name:' + grRL.getValue('u_name'));
                    displayTxt=    grRL.getValue('u_name').toLowerCase();
                    bLaptop=(displayTxt.indexOf('lenovo')>-1);
                   
                    if (bLaptop){
                        res=confirm('proceed?');
                    }
                    alert('return...' + res);
                    return res;
                }
            });
           
        }
        /*alert('test---' + displayTxt);
        alert(bLaptop);
       
        if (itemID=='4c08fea3379d97803bef532e53990e03'){ //--additional equipment
            if (g_form.getValue('retail_additional_flag')=='true'){
                alert(g_form.getValue('hidden_addtl_sections'));
            totalCounter=parseInt(g_form.getValue('hidden_addtl_sections'));
                for (iC=1;iC<totalCounter;iC++){
                    //alert(iC);
                }
            }
        }*/
       
       
       
       
        //return true;
    }
   
}





Comments

Popular posts from this blog

Get URL Parameter - server side script (portal or classic UI)

Classic UI : var sURL_editparam = gs . action . getGlideURI (). getMap (). get ( ' sysparm_aparameter ' ); if ( sURL_editparam == 'true' ) { gs . addInfoMessage ( 'parameter passed ); } Portal : var sURL_editparam = $sp . getParameter ( " sysparm_aparameter " ); if ( sURL_editparam == 'true' ) { gs . addInfoMessage ( 'parameter passed ); }

ServiceNow - script include: build up the results as a JSON object (array) - example 2

function call var sCurrentGroupMembers = new <script_include> (). getGroupMembers ( group_sysid ); gs . print ( 'sCurrentGroupMembers:' + sCurrentGroupMembers ); var oGroupMembers = JSON . parse ( sCurrentGroupMembers ); gs . print ( JSON . stringify ( oGroupMembers . users )); oNewGroupMember = JSON . parse ( group_members ); var oGroupConfig = getGroupDeltas ( oGroupMembers . users , oNewGroupMember ); gs . print ( JSON . stringify ( oGroupConfig . remove )); gs . print ( JSON . stringify ( oGroupConfig . add )) output : *** Script: sCurrentGroupMembers: {"manager":"3b2649efdb0f8c10cc0652f3f39xxxxx", "email":"", "type":"33a2226edb99c340edfc7cbdae96xxxx", "description":"Created for xyz", "users":[{"user":"3b2649efdb0f8c10cc0652f3f396xxxx"},{"user":"856a8f71db3d73041b4ffc45ae96196a"},{"user":"3752771