Welcome to Community Week 2025! Join us to learn, connect, and be recognized as we celebrate the spirit of Community and the power of AI. Get the details  

Create system property for mapping and use it for dynamic value

Priyanka Chaud1
Tera Contributor

I want to use a mapping kind of thing 

and store this in system property and use it  in my script include to make tablename,parentfield and column name dynamic how can i achieve this @suvro 

 

1 ACCEPTED SOLUTION

suvro
Mega Sage

Just create a property with below values

{ "task" :{"refField": "parent", "qField" : "number" }, "incident" :{"refField": "parent_incident", "qField" : "number" }, "sys_user" :{"refField": "manager", "qField" : "name" }, "problem" :{"refField": "duplicate_of", "qField" : "number" }}

 

call that property

var tableName = gs.getProperty('property name'); //another property which stores tablename

var propV = gs.getProperty('property_name');

var propObj = JSON.parse(propV);

Now you can use it : 

propObj[tableName ].refField and propObj[tableName ].qField

View solution in original post

15 REPLIES 15

Ok @suvro will do that i wanted to ask u that we can't define system property in client script so what i did i created one function in same script include and retruned value of table in client script function as answer and than i wrote this in my client script function to make query for tables so how can we make this dynamic in client side 


function getAndRunFilteredQuery(response){
    var selValue = gel("filterBy").value;
    var defaultQuery=getfilteredQuery();
 var ajax = new GlideAjax('TreeUtil');
    ajax.addParam('sysparm_name', 'getProVa');
    ajax.getXMLWait();
    var answer = ajax.getAnswer();
    alert('value' +answer);
    var strQuery;
 if(answer=='incident'){ strQuery=defaultQuery+'^numberSAMEASparent_incident.number^ORparent_incidentISEMPTY';}
        if(answer=='sys_user'){ strQuery=defaultQuery+'^user_nameSAMEASmanager.user_name^ORmanagerISEMPTY';}
        if(answer=='problem'){ strQuery=defaultQuery+'^numberSAMEASduplicate_of.number^ORduplicate_ofISEMPTY';}
        if(answer=='task')
         strQuery=defaultQuery+'^numberSAMEASparent.number^ORparentISEMPTY';

This looks good. Request you to share the complete client side script. So that I can check where to make modifications to make that dynamic

Client script is around 800 lines of code should i share it? @suvro or should i give u functions that work on run filter?

@suvro  this is the client script on run button Runfilter is called in that we have getandrunfilteredquery function so u can check accordingly

CS:-

var childNodes=[];
var gform=new GlideForm();
var treeID;
var chart;
var rootElmentSelected;
var noValue='';
var count;
var PageNum;
var pagePerUser=parseInt(jq('#UsersPerPage').text());
var displayPhoto=jq('#photodisplay').text();
jq('#Treepagination').on("page", function(event, num){
    PageNum=num;
    var showRecordCount=(((num-1)* pagePerUser)+1) +' to '+ (num*pagePerUser) +' of '+count;
    if((num*pagePerUser) > count){
        showRecordCount=  (((num-1)* pagePerUser)+1) +' to '+count +' of '+count;
    }
    jq("#content").html(showRecordCount); 
    var prevCount=(num-1)*pagePerUser;
    var nextCount=num*pagePerUser;
    if(!pageClick){
        NextClick(getAndRunFilteredQuery(),prevCount,nextCount);
    }
    pageClick=false;
});

/*Reset Filter*/
function Reset(){
    gform.clearMessages();
    gel('securityConstraint').style.display="none";
    document.getElementById('sys_display.filterbyLoc').value="";
    document.getElementById('sys_display.MyUsers').value="";
    document.getElementById('filterbyLoc').value="";
    document.getElementById('MyUsers').value="";
    document.getElementById('filteruserBy').value='alluser';
    document.getElementById('filterBy').value='all';
    document.getElementById('root').style.display ='none';
    document.getElementById('pageCount').style.display='none';
    document.getElementById("mycheckbox").checked=true;
    document.getElementById('lookup.filterbyLoc').setAttribute("disabled","true");
    document.getElementById('sys_display.MyUsers').setAttribute("disabled","true");         document.getElementById('sys_display.filterbyLoc').setAttribute("disabled","true");
    document.getElementById('lookup.MyUsers').setAttribute("disabled","true");
    document.getElementById('MyUsersLINKreplace').style.display= "none";
    showUI();
    resetRef();
}
/*Set disabled or enabled filter*/

function getHorizontalView(){
    gel('securityConstraint').style.display="none";
    gform.clearMessages();
    
    /*Check for data to showcase horizontal View*/
    var securityContraintMessage=gel('securityMsg').textContent;
    if($j('#TreeFrame').find('[aria-selected=true] span')[0]){
    if(    $j('#TreeFrame').find('[aria-selected=true] span')[0].textContent.indexOf(securityContraintMessage)>=0){
        gform.addErrorMessage('Please select the appropriate user');
        document.getElementById("mycheckbox").checked = true;
        jslog("first error message");
        return false;
    }
    }
parentSelected={};
    if(!jq('#TreeFrame').find('[aria-selected=true]')[0] && !gel("MyUsers").value ){
        gform.addErrorMessage('Please select the user from list or filter dropdown to view in tree'); 
        document.getElementById("mycheckbox").checked = true;
        jslog("second error message");
        return false;
    }
    document.getElementById('root').style.display ='none';
    document.getElementById('pageCount').style.display='none';
    var addclassvar = jq("#TreeFrame").addClass("chart");
    
    var config = {
        container: "#TreeFrame",
        callback:{
            onAfterPositionNode:function(){
                if(displayPhoto)
                ChangeImage();
            }
        },
        connectors: {
            type: 'step'
        },
        node: {
            HTMLclass: 'nodeExample1',
            collapsable: true,
            id:'test',
            stackChildren: true,
        },
    };

    function getUserData(dataArr){
        console.log('getUserData invoked.....');
        var Userdata =
 { // create the actual node with the element information
            text: { name:     {
                                val:dataArr.name,
                                href:'/incident.do?sys_id='+dataArr.htmlid,
                                target:'_blank'
                            },
                            
                   title: dataArr.title,
                   contact:dataArr.contact,
                   desc:dataArr.desc
                   
                  },
            image: dataArr.hasPhoto ? 'Tree_Loading.gif':  dataArr.userImage ,
            hasPhoto:dataArr.hasPhoto,
            userImage:dataArr.userImage, 
            //each name in the json array you received
            HTMLid: dataArr.htmlid, 
            collapsed: dataArr.haschild,
            collapsable: false,
            stackChildren: true // assigns an id used to for connecting the nodes

        };    
        return Userdata;
    }

    /*get Root Element */
    var ga = new GlideAjax('x_cyso_org_hierarc.HorizontalTreeUtil');
    ga.addParam('sysparm_name', 'getRootUserDetails'); 
    ga.addParam('sysparm_parent_1',gel("MyUsers").value);
    if(jq('#TreeFrame').find('[aria-selected=true]')[0] && !gel("MyUsers").value){
        var selectedID=jq('#TreeFrame').find('[aria-selected=true]')[0].id;
        ga.addParam('sysparm_parent',selectedID);
        gel("MyUsers").value=selectedID;
        if(!jq('#TreeFrame').find('#'+selectedID+'_anchor')[0].textContent.split('|')[0].replace(/[0-9]/g, '')){
            document.getElementById('sys_display.MyUsers').setAttribute("placeholder",noValue);
        }
        gel("sys_display.MyUsers").value=jq('#TreeFrame').find('#'+selectedID+'_anchor')[0].textContent.split('|')[0].replace(/[0-9]/g, '');
        document.getElementById('MyUsersLINKreplace').style.visibility= 'visible';
        document.getElementById("MyUsersLINKreplace").style.display='';
        /*Remove diabled attribute*/
        document.getElementById('sys_display.MyUsers').removeAttribute("disabled");
        document.getElementById('lookup.MyUsers').removeAttribute("disabled");
        gel("filteruserBy").value='user';
    }

    ga.getXML(userRootTree);
    function userRootTree(response){
        var answer = response.responseXML.documentElement.getAttribute("answer");
        console.log('golbal answer = ' + answer);
        answer = JSON.parse(answer);
        
        if(!answer[0]){
            notAccessible();
            return false;
        }
        var answeLen = answer.length;

        for (var i = 0; i < answeLen; i++) {
            
            var ceo=  getUserData(answer[i]);
            console.log('ceo = ' + JSON.stringify(ceo));
            chart_config = [
                config,
                ceo,
            ];    
        }
        if(chart && treeID){
            chart.destroy(treeID);
        }

        if(answeLen>0){
            chart  =  new Treant(chart_config, function(){
                if(ceo.hasPhoto)
                    jq("#"+answer[0].htmlid+" img").attr('src',ceo.userImage);
            });
            treeID=chart.tree.id;
            if(answer[0].chideCount !=0){
                jq("<span class='badge' style='background-color:#1f8476'>"+answer[0].chideCount+"</span>").appendTo("#"+answer[0].htmlid+" .collapse-switch" );
                
            }
            // Check for parent record
            if(answer[0].hasParent){
                var jqbtn = jq("<button>", {id: "parentBtn", "class": "btn btn-primary btn-xs"});
                var jqspn = jq("<span>", {id: "span1", "class": "glyphicon glyphicon-triangle-top"});
                jq(jqbtn).append(jqspn);
                jq("#" + answer[0].htmlid).append(jqbtn);
                jqbtn.click(function(){
                    //////////////////////// code for parent node
                    var parentElementid = jq(this).closest('div').attr('id');
                    console.log('parentElementid = ' + parentElementid);
                    chart.destroy();
                    var glideCall = new GlideAjax('x_cyso_org_hierarc.TopHierarcy_HierarcyUtil');
                    glideCall.addParam('sysparm_name','AddTopHierarcy');
                    //glideCall.addParam('sysparm_parent','5137153cc611227c000bbd1bd8cd2007');
                    glideCall.addParam('sysparm_parent', parentElementid);

                    glideCall.getXML(callBackFunction);

                    function callBackFunction(response){
                        jslog('callBackFunction invoked........');
                        var answer = response.responseXML.documentElement.getAttribute("answer");
                        console.log('dybanic data = ' + answer);
                        answer = JSON.parse(answer);
                        
                        
                        chart_config = [
                                            config,
                                            ceo,
                                        ];
                        
                         simple_chart_config = {
                            chart: {
                                container: "#TreeFrame"
                            },
                            
                            nodeStructure: {"text":{"name":{"val":"Bud Richman","href":"/sys_user.do?sys_id=46c6f9efa9fe198101ddf5eed9adf6e7","target":"_blank"},"title":"bud.richman@example.com","contact":"","desc":"Male"},"image":"Male_Horizontal.png","hasPhoto":false,"userImage":"Male_Horizontal.png","HTMLid":"46c6f9efa9fe198101ddf5eed9adf6e7","collapsed":false,"collapsable":false,"stackChildren":true,
                                 children:[{"text":{"name":{"val":"David Loo","href":"/sys_user.do?sys_id=5137153cc611227c000bbd1bd8cd2007","target":"_blank"},"title":"david.loo@example.com","contact":"US/Pacific","desc":"Male"},"image":"Male_Horizontal.png","hasPhoto":false,"userImage":"Male_Horizontal.png","HTMLid":"5137153cc611227c000bbd1bd8cd2007","collapsed":false,"collapsable":false,"stackChildren":true,
                                 children:[{"text":{"name":{"val":"Bartie Hachey","href":"/sys_user.do?sys_id=e2d063c353101200ed11da86a11c0880","target":"_blank"},"title":"","contact":"","desc":""},"image":"Not_Specified_Horizontal.png","hasPhoto":false,"userImage":"Not_Specified_Horizontal.png","HTMLid":"e2d063c353101200ed11da86a11c0880","collapsed":false,"collapsable":false,"stackChildren":true}]}]} 
                                } 

                        var my_chart = new Treant(simple_chart_config);
                                                
                        }
                    jq("#46c6f9efa9fe198101ddf5eed9adf6e7").css('background-color','red');
                    
                     
                    /////////////////////////////////////
                    });
                    
            }
            
            setToolTip(); //over functionality for Root*/
        }
        
    }


    /*add childeNode*/
    var $oNodes = jq('.Treant .node');
    console.log($oNodes);
    jq('body').on('click', '.Treant .node', function() {
        var $oNode = jq(this);
        console.log($oNode);
        //$oNodes.removeClass( 'selected' );
        //$oNode.addClass( 'selected' );
        var node = $oNode[0].data.treenode;
        var node_info = node;
        var ga = new GlideAjax('x_cyso_org_hierarc.HorizontalTreeUtil');
        ga.addParam('sysparm_name', 'addChidrentoTree');
        ga.addParam('sysparm_parent_node',node.nodeHTMLid );
        response = ga.getXML(function(response){
            var answer = response.responseXML.documentElement.getAttribute("answer");
            console.log("child data = "+  answer);
            answer = JSON.parse(answer);
            
            if(displayPhoto){
            childNodes=answer;
            }
            var answeLen = answer.length;

            for (var i = 0; i < answeLen; i++) {
                var detail = { // create the actual node with the element information
                    text: { name: {
                            val:answer[i].name,
                            href:'/incident.do?sys_id='+answer[i].htmlid,
                            target:'_blank'
                        
                        },
                           title: answer[i].title,
                           contact:answer[i].contact,
                           desc:answer[i].desc
                           
                          },
                    image: answer[i].hasPhoto ? 'Tree_Loading.gif': answer[i].userImage,
                    //each name in the json array you received
                    HTMLid: answer[i].htmlid, 
                    collapsed:answer[i].haschild, // assigns an id used to for connecting the nodes
                    stackChildren:true
                };    

                if(parentSelected['h-'+node.nodeHTMLid]!=1)
                {
                    var newNode= chart.tree.addNode(node_info, detail);
                }

                if(jq("#"+answer[i].htmlid+" .collapse-switch span").length ==0){
                    if(answer[i].chideCount != 0)
                        jq("<span class='badge' style='background-color:#1f8476'>"+answer[i].chideCount+"</span>").appendTo("#"+answer[i].htmlid+" .collapse-switch" );
                        
                } 
            }
            
            parentSelected['h-'+node.nodeHTMLid]=1;
            setToolTip(); //over functionality for children
        });
    }); //end of onclick functionality on Node

} //end of getHorizontal function
function ChangeImage(){
    for (var i = 0; i < childNodes.length; i++) {
        if(childNodes[i].hasPhoto)
            jq("#"+childNodes[i].htmlid+" img").attr('src',childNodes[i].userImage);
    }
    childNodes=[];
}
function setToolTip(){
    /*onload of tree tootltip addition*/
    jq(".node-contact").hover(function (e) {
        var title = e.target.innerText;
        jq('<div class="node-tip"></div>').html(title).appendTo('body').fadeIn('slow')
    },function(){
        jq('.node-tip').remove();
    }).mousemove(function (e) {
        var mousex = e.pageX + 20;
        var mousey = e.pageY + 10;
        jq('.node-tip')
            .css({
            top: mousey,
            left: mousex
        });
    });

    jq(".node-desc").hover(function (e) {
        var title = e.target.innerText;
        jq('<div class="node-tip"></div>').html(title).appendTo('body').fadeIn('slow')
    },function(){
        jq('.node-tip').remove();
    }).mousemove(function (e) {
        var mousex = e.pageX + 20;
        var mousey = e.pageY + 10;
        jq('.node-tip')
            .css({
            top: mousey,
            left: mousex
        });
    });
    jq(".node-title").hover(function (e) {
        var title = e.target.innerText;
        jq('<div class="node-tip"></div>').html(title).appendTo('body').fadeIn('slow')
    },function(){
        jq('.node-tip').remove();
    }).mousemove(function (e) {
        var mousex = e.pageX + 20;
        var mousey = e.pageY + 10;
        jq('.node-tip')
            .css({
            top: mousey,
            left: mousex
        });
    });

    /*Node over functionality*/
    jq(".node-name").hover(function (e) {
        var title = e.target.innerText;
        jq('<div class="node-tip"></div>').html(title).appendTo('body').fadeIn('slow')

    },function(){
        jq('.node-tip').remove();
    }).mousemove(function (e) {
        var mousex = e.pageX + 20;
        var mousey = e.pageY + 10;
        jq('.node-tip')
            .css({
            top: mousey,
            left: mousex
        });
    });
}

function showUI(){
    document.getElementById('lookup.filterbyLoc').value= '';
    document.getElementById('filterbyLoc').value =  '';
    document.getElementById('sys_display.filterbyLoc').value= '';
    var selValue = gel("filterBy").value;
    if(selValue=='all')
    {
        gel('sys_display.filterbyLoc').disabled=true;
        document.getElementById('lookup.filterbyLoc').setAttribute("disabled","true");
        document.getElementById('filterbyLocLINKreplace').style.display= "none";
    }

    else {
        
        document.getElementById('sys_display.filterbyLoc').disabled=false;
        document.getElementById('lookup.filterbyLoc').removeAttribute("disabled");
        document.getElementById('filterbyLocLINKreplace').style.display= "none";
    }
    var userQuery=getfilteredQuery();
    var sysUserAllLookup=gel('lookup.MyUsers');
    sysUserAllLookup.setAttribute('onclick',"mousePositionSave(event); reflistOpen('MyUsers', 'is', 'incident', '', 'false','QUERY:','"+userQuery+"')");

    if(selValue=='all'){
        document.getElementById('sys_display.filterbyLoc').setAttribute("placeholder",noValue);
    }
    
    

    /*filter the users*/
    var filterLookUp = gel('lookup.filterbyLoc');
    if(selValue=='department')
    {        
        filterLookUp.setAttribute('onclick',"mousePositionSave(event); reflistOpen( 'filterbyLoc', 'is', 'cmn_department', '', 'false','QUERY:active=true', '')");
        deptPlaceholder();
    }
    if(selValue=='location'){
        filterLookUp.setAttribute('onclick',"mousePositionSave(event); reflistOpen( 'filterbyLoc', 'is', 'cmn_location', '', 'false','QUERY:active=true', '')");    
        locationPlaceholder();
    }
    if(selValue=='company')
    {        
        filterLookUp.setAttribute('onclick',"mousePositionSave(event); reflistOpen( 'filterbyLoc', 'is', 'core_company', '', 'false','QUERY:active=true', '')");
        compnyPlaceholder();
    }
    if(selValue=='cost_center')
    {        
        filterLookUp.setAttribute('onclick',"mousePositionSave(event); reflistOpen( 'filterbyLoc', 'is', 'cmn_cost_center', '', 'false','QUERY:active=true', '')");
        costCntrPlaceholder();
    }
    gel('MyUsers').value="";
    gel('sys_display.MyUsers').value="";
    document.getElementById('MyUsersLINKreplace').style.display= "none";
    if(gel('filteruserBy').value=='user'){
        selectUserPlaceHolder();
    }

}
function userDeptLoc(){
    var selValue = gel("filterBy").value;
    var sysUserLookup=gel('lookup.MyUsers');

    var defaultquery=getfilteredQuery();
    var  strQuery=defaultquery;
    if(selValue=='department'){
        if(gel("filterbyLoc").value){
            strQuery="department="+gel("filterbyLoc").value+"^"+defaultquery;
        }

    }
    if(selValue=='location'){
        if(gel("filterbyLoc").value){
            strQuery="^location="+gel("filterbyLoc").value+"^"+defaultquery;
        }

    }
    if(selValue=='company'){
        if(gel("filterbyLoc").value){
            strQuery="company="+gel("filterbyLoc").value+"^"+defaultquery;
        }
    }
    if(selValue=='cost_center'){
        if(gel("filterbyLoc").value){
            strQuery="cost_center="+gel("filterbyLoc").value+"^"+defaultquery;
        }
    }
    gel('MyUsers').value="";
    gel('sys_display.MyUsers').value="";
    sysUserLookup.setAttribute('onclick',"mousePositionSave(event); reflistOpen('MyUsers', 'is', '${gs.getProperty('x_cyso_org_hierarc.dropdown_value')}', '', 'false','QUERY:','"+strQuery+"')");
    if(gel("filteruserBy").value=='user'){
        
    }
}
function showUser(){
    gel('sys_display.MyUsers').value="";
    gel('MyUsers').value="";
    var getSelectValue = gel("filteruserBy").value;
    if(getSelectValue =='alluser'){
        document.getElementById('sys_display.MyUsers').setAttribute("placeholder",noValue);
        document.getElementById('sys_display.MyUsers').setAttribute("disabled","true");
        document.getElementById('lookup.MyUsers').setAttribute("disabled","true");
        document.getElementById('MyUsersLINKreplace').style.display= "none";
        $j('#selectedUser').css('disabled',true);
        alert('qusai'); 
//             if(gel("filteruserBy").value=='alluser' && $[tableGr.name]=='incident'){
//         strQuery=defaultQuery+'^numberSAMEASparent_incident...^ORparent_incidentISEMPTY^incident='+gel("MyUsers").value;
//     }
    }
    else{
     selectUserPlaceHolder();
    document.getElementById('sys_display.MyUsers').removeAttribute("disabled");
    document.getElementById('lookup.MyUsers').removeAttribute("disabled");
    }
}
function showUserDetail(){
    if(!document.getElementById('sys_display.MyUsers').value){
        document.getElementById('sys_display.MyUsers').setAttribute("placeholder",noValue);
    }
}
function RunFilter(){
    
    $j('#treeFrame').css('border: 2px solid black');
    var sysUserLookup=gel('lookup.MyUsers');
    if(!gel("filterbyLoc").value && !sysUserLookup){
        OnloadIframe();
    }
    if(!gel("MyUsers").value){
        var query= getAndRunFilteredQuery();
        getVerticaleUI(query);
        //alert('qusai1');
    }

    if(gel("MyUsers").value){
        getHorizontalView();
        alert('dwjif');
        document.getElementById("mycheckbox").checked = false;
    } else {
        document.getElementById("mycheckbox").checked = true;
    } 

}
function getVerticaleUIforUser(){    
    count=0;
    var specuserquery= getAndRunFilteredQuery();
    getVerticaleUI(specuserquery);

}
//var propertyvalue=gs.getProperty('x_cyso_org_hierarc.dropdown_value');

function getAndRunFilteredQuery(response){
    var selValue = gel("filterBy").value;
    var defaultQuery=getfilteredQuery();
 var ajax = new GlideAjax('TreeUtil');
    ajax.addParam('sysparm_name', 'getProVa');
    ajax.getXMLWait();
    var answer = ajax.getAnswer();
    alert('value' +answer);
    var strQuery;
 if(answer=='incident'){ strQuery=defaultQuery+'^numberSAMEASparent_incident.number^ORparent_incidentISEMPTY';}
        if(answer=='sys_user'){ strQuery=defaultQuery+'^user_nameSAMEASmanager.user_name^ORmanagerISEMPTY';}
        if(answer=='problem'){ strQuery=defaultQuery+'^numberSAMEASduplicate_of.number^ORduplicate_ofISEMPTY';}
        if(answer=='task')
         strQuery=defaultQuery+'^numberSAMEASparent.number^ORparentISEMPTY';
    
 

 

    
    
    
    if(selValue=='department' && !((gel("MyUsers").value))){
        if(gel("filterbyLoc").value){
            strQuery= defaultQuery+'^user_nameSAMEASmanager.user_name^ORmanagerISEMPTY^department='+gel("filterbyLoc").value;
        }
    }
    if(selValue=='location' && !(gel("MyUsers").value)){
        if(gel("filterbyLoc").value){
            strQuery=defaultQuery+'^user_nameSAMEASmanager.user_name^ORmanagerISEMPTY^location='+gel("filterbyLoc").value;
        }
    }
    if(selValue=='company' && !(gel("MyUsers").value)){
        if(gel("filterbyLoc").value){
            strQuery=defaultQuery+'^user_nameSAMEASmanager.user_name^ORmanagerISEMPTY^company='+gel("filterbyLoc").value;
        }
    }
    if(selValue=='cost_center' && !(gel("MyUsers").value)){
        if(gel("filterbyLoc").value){
            strQuery=defaultQuery+'^user_nameSAMEASmanager.user_name^ORmanagerISEMPTY^cost_center='+gel("filterbyLoc").value;
        }
    }
//         if(selValue=='all' && gel("filteruserBy").value=='alluser'){
//             if($[tableGr.name]=='incident'){
//         strQuery=defaultQuery+'^numberSAMEASparent_incident...^ORparent_incidentISEMPTY^incident='+gel("MyUsers").value;
//     }
//         }
    if(gel("MyUsers").value){
        strQuery= defaultQuery+'^sys_id='+gel("MyUsers").value;        
        document.getElementById('pageCount').style.display='none';
        gel('securityConstraint').style.display="none";
    }
    return strQuery;

}
function getUserCount(query){
    var gCount = new GlideAjax('x_cyso_org_hierarc.TreeUtil');
    gCount.addParam('sysparm_name', 'getUserCount');
    gCount.addParam('sysparm_tree_query', query);
    gCount.getXML(checkForPagination);
}

function checkForPagination(response){
    gform.clearMessages();
    var answer=response.responseXML.documentElement.getAttribute("answer");
    count = parseInt(answer);
    if(count > pagePerUser){
        var pages=Math.ceil(count/pagePerUser);
        jq('#Treepagination').bootpag({
            total: pages,
            page: 1,            
            maxVisible: pages<10?pages:10   ,
            leaps: true,
            activeClass: 'active',
        });
        jq('#Treepagination ul').addClass('pagination');
    }else{
        document.getElementById('pageCount').style.display='none';
        gel('securityConstraint').style.display="none";
    }

}

function getVerticaleUI(query){
    count=0;
    $j(this).find('#VerticleBtn').toggleClass('btn-default');
    /*Find Count of users after filter*/
    count=getUserCount(query);
    pageClick=true;
    NextClick(query,0,pagePerUser);
}

function NextClick(strQuery,prevCount,nextCount,strQueryy){
    parentSelected={};
    var ga = new GlideAjax('x_cyso_org_hierarc.TreeUtil');
    ga.addParam('sysparm_name', 'getAllUserListView');
    ga.addParam('sysparm_tree_query', strQuery);
    ga.addParam('sysparm_tree_prev_count', prevCount);
    ga.addParam('sysparm_next_count', nextCount);
    ga.getXML(selectUserTree);
}

//Create JSTree
function selectUserTree(response){
    var answer=response.responseXML.documentElement.getAttribute("answer");
    console.log('answer' +answer);
    answer = JSON.parse(answer);
    if(!answer){
        document.getElementById('root').style.display ='none';
        notAccessible();
        return false;
    }
    if(count==0){
        document.getElementById('root').style.display ='none';
        noUserDisplay();
        return false;
    }
    else{
        if(count>pagePerUser){
            if(answer.length==pagePerUser){
                gform.addInfoMessage('Too many records found. You can use filters to narrow down the results');
            }
            document.getElementById('pageCount').style.display='block';
            if(pagePerUser!=answer.length){
                gel('securityConstraint').style.display="block";
                gel('securityConstraint').innerHTML= "Number of users removed from list view by Security constraint : "+(pagePerUser-answer.length);
            }else{
                gel('securityConstraint').style.display="none";
            }
            if((PageNum*pagePerUser)>count){
                var remainingCount=count- ((PageNum-1)*pagePerUser );
                if(remainingCount != answer.length){
                    gel('securityConstraint').style.display="block";
                    gel('securityConstraint').innerHTML= "Number of users removed from list view  by Security constraint : "+(remainingCount-answer.length);
                }
                else{
                    gel('securityConstraint').style.display="none";
                }
            }
        }
            else{
                if(count>0  && answer.length  < count){
            gel('securityConstraint').style.display="block";
            gel('securityConstraint').innerHTML= "Number of users removed from list view by Security constraint : "+(count-answer.length);
            document.getElementById('TreeFrame').innerHTML="";
        }
                else{
                
        if(count > 0 && answer.length==0 && (count < pagePerUser)){
            document.getElementById('root').style.display ='none';
            gel('securityConstraint').style.display="block";
            gel('securityConstraint').innerHTML= "Number of users removed from list view by Security constraint : "+count;
            document.getElementById('TreeFrame').innerHTML="";
            return false;
        }
        }
            }
    
        jq("#TreeFrame").jstree('destroy').empty();
        document.getElementById('root').style.display ='none';
        if(answer.length>0){
            document.getElementById('root').style.display="block";
            jq('#TreeFrame').jstree({
                core:{
                    "check_callback": true,
                    'data': answer,
                }
            });

            jq('#TreeFrame').on("changed.jstree", function(e, data) {
                addChildeNode(data);
            });
        }
    }
}    

function addChildeNode(data){
    if (parentSelected['v-'+data.selected[0]] != 1)
    {
        parentSelected['v-'+data.selected[0]] = 1;
        var ga = new GlideAjax('x_cyso_org_hierarc.TreeUtil');
        ga.addParam('sysparm_name', 'addNodeChild');
        ga.addParam('sysparm_parent_node', data.selected[0]);
        response = ga.getXML(UserListParse);
    }

    jq("#TreeFrame").jstree("open_node", "#" + data.selected);
}

/*Add child Node of listed tree*/
function UserListParse(response) {
    var answer = response.responseXML.documentElement.getAttribute("answer");
    answer = JSON.parse(answer);
    var answeLen = answer.length;
    for (var i = 0; i < answeLen; i++) {
        jq('#TreeFrame').jstree().create_node(answer[i].parent, {
            "id": answer[i].id,
            "text": answer[i].text,
            "icon": answer[i].icon
        }, "last");
        jq("#TreeFrame").jstree("open_node", "#" + answer[i].parent);
    }

}

@suvro did u looked into this? i will create new thread for this