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.

How to display project mangers assigned projects?

Supriya P
Tera Contributor

We have a pm_project table.

1. Display projects assigned to project manager.

Script include :

 

var reqFor = this.getParameter(sysparm_reqFor);
        //var project = [];
        var projectList = [];
        // var finalPrjList1 = [];
        var projectList2 = [];
        var finalProjectList = [];

        var prj = new GlideRecord('pm_project');
        prj.addQuery('project_manager', reqFor);
        prj.addEncodedQuery('active=true^short_descriptionIN');
        prj.query();
        while (prj.next()) {
            projectList.push(prj.short_description.getDisplayValue());
        }
        var prj1 = new GlideRecord('pm_project');
        prj1.addEncodedQuery('active=true^project_manager=' + reqFor); //Removing BCM Onboarded
        prj1.query();
        while (prj1.next()) {
            projectList2.push(prj1.short_description.getDisplayValue());

        }
        var arrayUtil = new ArrayUtil();
        finalProjectList = arrayUtil.push(projectList, projectList2);
        // finalProjectList1 = arrayUtil.diff(projectList2, projectList1);
        //finalProjectList1 = arrayUtil.diff(projectList2, finalProjectList);

        return JSON.stringify(finalProjectList);
 
catalog Client Script : 
 
function onLoad() {
    var ga = new GlideAjax('global.bcm_project_list');
    ga.addParam('sysparm_name', 'bcmProject');
    ga.addParam('sysparm_reqFor', g_form.getValue('bcm_lead'));
    ga.getXML(projectDetails);


    function projectDetails(response) {
        var answer = response.responseXML.documentElement.getAttribute("answer");
        var finalPrjList = [];
        finalPrjList = JSON.parse(answer);
        g_form.addOption('project', '', '--None--', 0);
          for(var i = 0; i < finalPrjList.length; i++) {
             g_form.addOption('project', finalPrjList[i], finalPrjList[i], i + 1);
    }
     }
}
 
This script saying javascript error in your browser console.
Kindly help me with the same issue.
1 ACCEPTED SOLUTION

Aniket Chavan
Tera Sage
Tera Sage

Hello @Supriya P ,

 

Can you please give a try to below code and verify how that works for you.

Script Include:

// Script Include (global.bcm_project_list)

var BCMProjectList = Class.create();
BCMProjectList.prototype = Object.extendsObject(AbstractAjaxProcessor, {
    bcmProject: function() {
        var reqFor = this.getParameter('sysparm_reqFor');
        var projectList = [];

        var prj = new GlideRecord('pm_project');
        prj.addQuery('project_manager', reqFor);
        prj.addEncodedQuery('active=true^short_descriptionIN');
        prj.query();
        while (prj.next()) {
            projectList.push(prj.short_description.getDisplayValue());
        }

        var prj1 = new GlideRecord('pm_project');
        prj1.addEncodedQuery('active=true^project_manager=' + reqFor);
        prj1.query();
        while (prj1.next()) {
            projectList.push(prj1.short_description.getDisplayValue());
        }

        var logMessage = 'BCMProjectList - Project List for ' + reqFor + ': ' + JSON.stringify(projectList);
        gs.info(logMessage);

        return JSON.stringify(projectList);
    },

    type: 'BCMProjectList'
});

 

Client Script:

// Catalog Client Script

function onLoad() {
    var ga = new GlideAjax('global.bcm_project_list');
    ga.addParam('sysparm_name', 'bcmProject');
    ga.addParam('sysparm_reqFor', g_form.getValue('bcm_lead'));
    ga.getXML(projectDetails);

    function projectDetails(response) {
        var answer = response.responseXML.documentElement.getAttribute("answer");
        var finalPrjList = JSON.parse(answer);

        var logMessage = 'Catalog Client Script - Final Project List: ' + JSON.stringify(finalPrjList);
        gs.info(logMessage);

        g_form.addOption('project', '', '--None--', 0);

        for (var i = 0; i < finalPrjList.length; i++) {
            g_form.addOption('project', finalPrjList[i], finalPrjList[i], i + 1);
        }
    }
}

 

Let me know your views on this and Mark Correct if this solves your query and also mark 👍Helpful if you find my response worthy based on the impact.


Regards,
Aniket

View solution in original post

4 REPLIES 4

Aniket Chavan
Tera Sage
Tera Sage

Hello @Supriya P ,

 

Can you please give a try to below code and verify how that works for you.

Script Include:

// Script Include (global.bcm_project_list)

var BCMProjectList = Class.create();
BCMProjectList.prototype = Object.extendsObject(AbstractAjaxProcessor, {
    bcmProject: function() {
        var reqFor = this.getParameter('sysparm_reqFor');
        var projectList = [];

        var prj = new GlideRecord('pm_project');
        prj.addQuery('project_manager', reqFor);
        prj.addEncodedQuery('active=true^short_descriptionIN');
        prj.query();
        while (prj.next()) {
            projectList.push(prj.short_description.getDisplayValue());
        }

        var prj1 = new GlideRecord('pm_project');
        prj1.addEncodedQuery('active=true^project_manager=' + reqFor);
        prj1.query();
        while (prj1.next()) {
            projectList.push(prj1.short_description.getDisplayValue());
        }

        var logMessage = 'BCMProjectList - Project List for ' + reqFor + ': ' + JSON.stringify(projectList);
        gs.info(logMessage);

        return JSON.stringify(projectList);
    },

    type: 'BCMProjectList'
});

 

Client Script:

// Catalog Client Script

function onLoad() {
    var ga = new GlideAjax('global.bcm_project_list');
    ga.addParam('sysparm_name', 'bcmProject');
    ga.addParam('sysparm_reqFor', g_form.getValue('bcm_lead'));
    ga.getXML(projectDetails);

    function projectDetails(response) {
        var answer = response.responseXML.documentElement.getAttribute("answer");
        var finalPrjList = JSON.parse(answer);

        var logMessage = 'Catalog Client Script - Final Project List: ' + JSON.stringify(finalPrjList);
        gs.info(logMessage);

        g_form.addOption('project', '', '--None--', 0);

        for (var i = 0; i < finalPrjList.length; i++) {
            g_form.addOption('project', finalPrjList[i], finalPrjList[i], i + 1);
        }
    }
}

 

Let me know your views on this and Mark Correct if this solves your query and also mark 👍Helpful if you find my response worthy based on the impact.


Regards,
Aniket

Hi Aniket,

Getting bellow message.

SupriyaP_0-1703087848938.png

 

 

Hello @Supriya P ,

 

Please remove these 2 lines from your code, I was added those for testing purpose.

 

var logMessage = 'Catalog Client Script - Final Project List: ' + JSON.stringify(finalPrjList);
gs.info(logMessage);

Aditya K
Tera Contributor

Hi @Supriya P,

 

I guess you are getting the error because the parameter name in the script include is not in the double quotes. Please try it by adding them.