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.