Find your people. Pick a challenge. Ship something real. The CreatorCon Hackathon is coming to the Community Pavilion for one epic night. Every skill level, every role welcome. Join us on May 5th and learn more here.

How to return a table in script include

avinashdube
Tera Guru

Hi , I have a requirement to return a table in script include :
currently it is giving the table content but not printing in table format 

COde :

var displayRitmTables = Class.create();
displayRitmTables.prototype = {
    generateEmailContent: function(current) {

        var emailContent ="<br> General Information : <br>";

        template.print("<br>General Information :<br>");

    var table = current.getTableName();
    var count = 0;
    if (table == 'sysapproval_approver') {
        count = 1;
    } else {
        for (vars in current.variable_pool) { //Add a condition to check if the variable is not from vs_amdocs_requestor variable set
            if (current.variable_pool[vars].item_option_new_set === 'vs_amdocs_requestor') {
                continue;

            }

            count++;
        }
    }


    if (count > 0) {
        var mvalue = '';
        var list = [];
        var display = [];
        emailContent +='<br><table border="1" style="font-family: Arial;">';

        //Query for the non-empty variables for this record
        //Catalog item and task variables pull from 'sc_item_option_mtom' table
        if (table == 'sc_req_item' || table == 'sc_task' || table == 'sysapproval_approver') {

            //var variablesArray = listOfVariables.split(',');

            var listOfVariables = gs.getProperty('variables_exclude');
            var variablesArray = listOfVariables.split(',');

            var itemVars = new GlideRecord('sc_item_option_mtom');

            if (table == 'sc_req_item') {
                itemVars.addQuery('request_item', current.sys_id);
            }
            if (table == 'sc_task') {
                itemVars.addQuery('request_item', current.request_item.sys_id);
            }
            if (table == 'sysapproval_approver') {
                itemVars.addQuery('request_item', current.sysapproval.sys_id);
            }

            // Construct "NOT IN" logic within the encoded query
            //var notInQuery = 'sc_item_option.sys_idNOT IN' + variablesArray.join(',');
            itemVars.addEncodedQuery("sc_item_option.item_option_new!=9da5f3116f0871009431be4dbb3ee455^sc_item_option.item_option_new!=eb21b5098714f5d0641e98683cbb35fa^sc_item_option.item_option_new!=adbe971d6feb42009431be4dbb3ee4d0^sc_item_option.item_option_new!=54c1901287b68510641e98683cbb3595^sc_item_option.item_option_new!=1dafa1466f8871009674bd5dbb3ee4e2^sc_item_option.item_option_new!=9b7a92bc6f1af1009674bd5dbb3ee42a^sc_item_option.item_option_new!=3aea12bc6f1af1009674bd5dbb3ee4cc^sc_item_option.item_option_new!=9058cc296f03f5009674bd5dbb3ee42f^sc_item_option.item_option_new!=655bde7c6f1af1009674bd5dbb3ee4f0^sc_item_option.item_option_new!=fbe74a176f0331009431be4dbb3ee410^sc_item_option.item_option_new!=fa3c96bc6f1af1009674bd5dbb3ee46a^sc_item_option.item_option_new!=d93687f46f3a21009674bd5dbb3ee467^sc_item_option.item_option_new!=5b93b814dbfc30503780e1aa4b961994^sc_item_option.item_option_new!=d8d44a9a6f47f5009431be4dbb3ee424^sc_item_option.item_option_new!=2667ecb96f074a009431be4dbb3ee4e2^sc_item_option.item_option_new!=c8ed00bf6f6bc2009431be4dbb3ee43e^sc_item_option.item_option_new!=02f485b56f474a009431be4dbb3ee493^sc_item_option.item_option_new!=523cd3fc6f0516409431be4dbb3ee4c5^sc_item_option.item_option_new!=af4a64776fabc2009431be4dbb3ee4b0^sc_item_option.valueISNOTEMPTY^sc_item_option.item_option_new!=4cd8141e0fbc7a00493bbb8ce1050e9e^sc_item_option.item_option_new!=b674ca16dbecec103780e1aa4b96194e^sc_item_option.item_option_new!=be25021adbecec103780e1aa4b96192b^sc_item_option.item_option_new!=7a06c2dadbecec103780e1aa4b96197c^sc_item_option.item_option_new!=36f8ce9edbecec103780e1aa4b96196c^sc_item_option.item_option_new!=54db0537db0a1090396ce2a94b96192b^sc_item_option.item_option_new!=5c782d1287902190641e98683cbb356a^sc_item_option.item_option_new!=09be8a96db2020503780e1aa4b9619c2^sc_item_option.item_option_new!=5d25b3116f0871009431be4dbb3ee4fd^sc_item_option.item_option_new!=5b93b814dbfc30503780e1aa4b961994^sc_item_option.item_option_new!=88b9f0dcdbfc30503780e1aa4b9619b0^sc_item_option.item_option_new!=54db0537db0a1090396ce2a94b96192b^sc_item_option.item_option_new!=cbaace12db2020503780e1aa4b9619d8^sc_item_option.item_option_new!=f93c2108db3cfc103780e1aa4b96197f^sc_item_option.item_option_new!=41673b5b6f76b5009431be4dbb3ee41b");

            //itemVars.addEncodedQuery(notInQuery);
            itemVars.addQuery('sc_item_option.item_option_new.type', '!=', 11);
            itemVars.addQuery('sc_item_option.item_option_new.type', '!=', 19);
            itemVars.addQuery('sc_item_option.item_option_new.type', '!=', 20);
            itemVars.addQuery('sc_item_option.item_option_new.type', '!=', 24);

            itemVars.orderBy('sc_item_option.order');
            itemVars.query();

            while (itemVars.next()) {



                //     if (skipCount > 0) {
                //         skipCount--;
                //         continue;
                //     }
                template.print("<tr>");
                template.print("<td>" + itemVars.sc_item_option.item_option_new.question_text + "</td>");
                mvalue = itemVars.sc_item_option.value;

                // Check if the value is from the reference field
                if (itemVars.sc_item_option.item_option_new.type == '8') {
                    var grRefTable = new GlideRecord(itemVars.sc_item_option.item_option_new.reference);
                    grRefTable.addQuery('sys_id', mvalue);
                    grRefTable.query();
                    if (grRefTable.next()) {
                        mvalue = grRefTable.getDisplayValue();
                    }
                    template.print("<td>" + mvalue + "</td>");
                    template.print("</tr>");
                }

                // Check if the type is List Collector
                if (itemVars.sc_item_option.item_option_new.type == '21') {
                    list = itemVars.sc_item_option.value.split(',');
                    for (var i = 0; i < list.length; i++) {
                        var grListTable = new GlideRecord(itemVars.sc_item_option.item_option_new.list_table);
                        grListTable.addQuery('sys_id', list[i]);
                        grListTable.query();
                        if (grListTable.next()) {
                            display.push(grListTable.getDisplayValue());
                        }
                    }
                    template.print("<td>" + display + "</td>");
                    template.print("</tr>");
                }

                // Check if the type is Select Box
                if (itemVars.sc_item_option.item_option_new.type == '5') {
                    var grQuestion = new GlideRecord('question_choice');
                    grQuestion.addQuery('question', itemVars.sc_item_option.item_option_new);
                    grQuestion.addQuery('value', itemVars.sc_item_option.value.toString());
                    grQuestion.query();
                    if (grQuestion.next()) {
                        mvalue = grQuestion.getValue('text');
                    }
                    template.print("<td>" + mvalue + "</td>");
                    template.print("</tr>");
                }

                //For rest of the types
                if (itemVars.sc_item_option.item_option_new.type != '21' && itemVars.sc_item_option.item_option_new.type != '8' && itemVars.sc_item_option.item_option_new.type != '5') {
                    template.print("<td>" + mvalue + "</td>");
                    template.print("</tr>");
                }
            }
        }
        emailContent +="</table>";
    }

        return emailContent;
    },


    type: 'displayRitmTables'
};
1 ACCEPTED SOLUTION

AniketC85155510
Kilo Patron

Hello @avinashdube ,

Don't know but somehow my reply got deleted, anyways please give a try to the script below and let me know how it works for you.

var displayRitmTables = Class.create();
displayRitmTables.prototype = {
    generateEmailContent: function (current) {
        var emailContent = "<br> General Information : <br>";

        var table = current.getTableName();
        var count = 0;

        if (table == 'sysapproval_approver') {
            count = 1;
        } else {
            for (vars in current.variable_pool) {
                if (current.variable_pool[vars].item_option_new_set === 'vs_amdocs_requestor') {
                    continue;
                }
                count++;
            }
        }

        if (count > 0) {
            var mvalue = '';
            var list = [];
            var display = [];

            emailContent += '<br><table border="1" style="font-family: Arial;">';

            if (table == 'sc_req_item' || table == 'sc_task' || table == 'sysapproval_approver') {
                var listOfVariables = gs.getProperty('variables_exclude');
                var variablesArray = listOfVariables.split(',');

                var itemVars = new GlideRecord('sc_item_option_mtom');

                if (table == 'sc_req_item') {
                    itemVars.addQuery('request_item', current.sys_id);
                } else if (table == 'sc_task') {
                    itemVars.addQuery('request_item', current.request_item.sys_id);
                } else if (table == 'sysapproval_approver') {
                    itemVars.addQuery('request_item', current.sysapproval.sys_id);
                }

                itemVars.addEncodedQuery("sc_item_option.item_option_newNOT IN" + variablesArray.join(','));
                itemVars.addQuery('sc_item_option.item_option_new.type', 'NOT IN', [11, 19, 20, 24]);
                itemVars.orderBy('sc_item_option.order');
                itemVars.query();

                while (itemVars.next()) {
                    emailContent += "<tr>";
                    emailContent += "<td>" + itemVars.sc_item_option.item_option_new.question_text + "</td>";
                    mvalue = itemVars.sc_item_option.value;

                    if (itemVars.sc_item_option.item_option_new.type == '8') {
                        mvalue = this.getDisplayValueFromReference(itemVars.sc_item_option.item_option_new.reference, mvalue);
                    } else if (itemVars.sc_item_option.item_option_new.type == '21') {
                        list = itemVars.sc_item_option.value.split(',');
                        for (var i = 0; i < list.length; i++) {
                            display.push(this.getDisplayValueFromReference(itemVars.sc_item_option.item_option_new.list_table, list[i]));
                        }
                        mvalue = display.join(', ');
                    } else if (itemVars.sc_item_option.item_option_new.type == '5') {
                        mvalue = this.getDisplayValueFromChoice(itemVars.sc_item_option.item_option_new, mvalue);
                    }

                    emailContent += "<td>" + gs.htmlEscape(mvalue) + "</td>";
                    emailContent += "</tr>";
                }
            }

            emailContent += "</table>";
        }

        return emailContent;
    },

    getDisplayValueFromReference: function (tableName, sysId) {
        var grRefTable = new GlideRecord(tableName);
        if (grRefTable.get(sysId)) {
            return grRefTable.getDisplayValue();
        }
        return sysId;
    },

    getDisplayValueFromChoice: function (itemOption, value) {
        var grQuestion = new GlideRecord('question_choice');
        grQuestion.addQuery('question', itemOption);
        grQuestion.addQuery('value', value.toString());
        if (grQuestion.query() && grQuestion.next()) {
            return grQuestion.getValue('text');
        }
        return value;
    },

    type: 'displayRitmTables'
};

 

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.

 

Thanks,

Aniket

 

View solution in original post

4 REPLIES 4

avinashdube
Tera Guru

@AniketC85155510 

i am not able to see your suggestion

AniketC85155510
Kilo Patron

Hello @avinashdube ,

Don't know but somehow my reply got deleted, anyways please give a try to the script below and let me know how it works for you.

var displayRitmTables = Class.create();
displayRitmTables.prototype = {
    generateEmailContent: function (current) {
        var emailContent = "<br> General Information : <br>";

        var table = current.getTableName();
        var count = 0;

        if (table == 'sysapproval_approver') {
            count = 1;
        } else {
            for (vars in current.variable_pool) {
                if (current.variable_pool[vars].item_option_new_set === 'vs_amdocs_requestor') {
                    continue;
                }
                count++;
            }
        }

        if (count > 0) {
            var mvalue = '';
            var list = [];
            var display = [];

            emailContent += '<br><table border="1" style="font-family: Arial;">';

            if (table == 'sc_req_item' || table == 'sc_task' || table == 'sysapproval_approver') {
                var listOfVariables = gs.getProperty('variables_exclude');
                var variablesArray = listOfVariables.split(',');

                var itemVars = new GlideRecord('sc_item_option_mtom');

                if (table == 'sc_req_item') {
                    itemVars.addQuery('request_item', current.sys_id);
                } else if (table == 'sc_task') {
                    itemVars.addQuery('request_item', current.request_item.sys_id);
                } else if (table == 'sysapproval_approver') {
                    itemVars.addQuery('request_item', current.sysapproval.sys_id);
                }

                itemVars.addEncodedQuery("sc_item_option.item_option_newNOT IN" + variablesArray.join(','));
                itemVars.addQuery('sc_item_option.item_option_new.type', 'NOT IN', [11, 19, 20, 24]);
                itemVars.orderBy('sc_item_option.order');
                itemVars.query();

                while (itemVars.next()) {
                    emailContent += "<tr>";
                    emailContent += "<td>" + itemVars.sc_item_option.item_option_new.question_text + "</td>";
                    mvalue = itemVars.sc_item_option.value;

                    if (itemVars.sc_item_option.item_option_new.type == '8') {
                        mvalue = this.getDisplayValueFromReference(itemVars.sc_item_option.item_option_new.reference, mvalue);
                    } else if (itemVars.sc_item_option.item_option_new.type == '21') {
                        list = itemVars.sc_item_option.value.split(',');
                        for (var i = 0; i < list.length; i++) {
                            display.push(this.getDisplayValueFromReference(itemVars.sc_item_option.item_option_new.list_table, list[i]));
                        }
                        mvalue = display.join(', ');
                    } else if (itemVars.sc_item_option.item_option_new.type == '5') {
                        mvalue = this.getDisplayValueFromChoice(itemVars.sc_item_option.item_option_new, mvalue);
                    }

                    emailContent += "<td>" + gs.htmlEscape(mvalue) + "</td>";
                    emailContent += "</tr>";
                }
            }

            emailContent += "</table>";
        }

        return emailContent;
    },

    getDisplayValueFromReference: function (tableName, sysId) {
        var grRefTable = new GlideRecord(tableName);
        if (grRefTable.get(sysId)) {
            return grRefTable.getDisplayValue();
        }
        return sysId;
    },

    getDisplayValueFromChoice: function (itemOption, value) {
        var grQuestion = new GlideRecord('question_choice');
        grQuestion.addQuery('question', itemOption);
        grQuestion.addQuery('value', value.toString());
        if (grQuestion.query() && grQuestion.next()) {
            return grQuestion.getValue('text');
        }
        return value;
    },

    type: 'displayRitmTables'
};

 

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.

 

Thanks,

Aniket

 

@AniketC85155510  Thanks

Hello @avinashdube ,

Glad I could assist! If there's anything else you need help with in the future, don't hesitate to ask.

Have a great day!