Print out variables

Let me prefice this code with there is another way to do this but it’s undocumented.
That is using the GlideappVariablePoolQuestionSet class as posted here by Chuck Tomasi.

/*jslint eqeq: true*/
/*global GlideRecord, current*/
var tablestart = '<div ';
tablestart += 'class="nmmcbg" width="100%" ';
tablestart += 'style="background-color: LightGoldenRodYellow;">';
var d = '<div style="display:inline;font-weight:bold;" class="nmmcbold">';
var dn = '</div>\n';
var i;
var gr = new GlideRecord('sc_req_item');
gr.addQuery('sys_id', '=', current.sys_id);
gr.query();
var vtp = '';
var v = new GlideRecord('sc_item_option_mtom');
v.addQuery('request_item', current.sys_id);
v.orderBy('sc_item_option.order');
v.query();
while (v.next()) {
  if (vtp.length >= 0) {
    /*****************************
    This code dynamically pulls the questions from the forms in the order 
    they are presented (numerically) and then displays them in a 
    consistant readable format.
    Right now nothing links to any records but can with some slight 
    changes to this code.
  *****************************/
    var questionType = v.sc_item_option.item_option_new.type;
    var question = '<p><b>';
    question += v.sc_item_option.item_option_new.getDisplayValue();
    question += '</b></p>';
    var answer = v.sc_item_option.value.getDisplayValue() + '\n';
    if (answer != '') { /*if the value is blank, don't print*/
      if (questionType == 1) { //Yes / No
        vtp += question + answer;
      }
      if (questionType == 2) { //Multi Line Text
        vtp += question + answer;
      }
      if (questionType == 3) { //Multiple Choice
        vtp += question + answer;
      }
      if (questionType == 4) { //Numeric Scale
        vtp += question + answer;
      }
      if (questionType == 5) { //Select Box
        vtp += question + answer;
      }
      if (questionType == 6) { //Single Line Text
        vtp += question + answer;
      }
      if (questionType == 7) { //Check Box
        vtp += question + answer;
      }
      if (questionType == 8) { //Reference
        var reftable = v.sc_item_option.item_option_new.reference;
        var referencegr = new GlideRecord(reftable);
        referencegr.addQuery('sys_id', '=', v.sc_item_option.value);
        referencegr.query();
        while (referencegr.next()) {
          vtp += question + ': ' + referencegr.getDisplayValue();
          vtb += '\n';
        }
      }
      if (questionType == 9) { //Date
        vtp += question + answer;
      }
      if (questionType == 10) { //Date/Time
        vtp += question + answer;
      }
      /*
    if (questionType == 11) { //Label
        //Do nothing
    }
    if (questionType == 12) { //Break
        //Do nothing
    }
    if (questionType == 13) { //Not Listed
        //Do nothing
    }
    if (questionType == 14) { //Macro
        //Do nothing
    }
    if (questionType == 15) { //UI Page
        //Do nothing
    }
    */
      if (questionType == 16) { //Wide Single Line Text
        vtp += question + answer;
      }
      /*
    if (questionType == 17) { //Macro with Label
        //Do nothing
    }
    */
      if (questionType == 18) { //Lookup Select Box
        var lstable = v.sc_item_option.item_option_new.lookup_table;
        var lsbgr = new GlideRecord(lstable);
        lsbgr.addQuery('sys_id', '=', v.sc_item_option.value);
        lsbgr.query();
        while (lsbgr.next()) {
          vtp += question + ': ' + lsbgr.getDisplayValue() + '\n';
        }
      }
      /*
    if (questionType == 19) { //Container Start
        //Do nothing
    }
    if (questionType == 20) { //Container End
        //Do nothing
    }
    */
      if (questionType == 21) { //List Collector
        var list = answer;
        var listarray = list.split(',');
        vtp += question + '</b></p>\n';
        for (i = 0; i < listarray.length; i = i + 1) {
          var listtable = v.sc_item_option.item_option_new.list_table;
          var igr = new GlideRecord(listtable);
          igr.addQuery('sys_id', '=', listarray[i]);
          igr.query();
          while (igr.next()) {
            vtp += '- ' + igr.getDisplayValue() + '\n'; //displayvalues
          }
          //vtp +=  'i = ' + i + '- ' + listarray<i> + '\n';//sys_ids
        }
      }
      if (questionType == 22) { //Lookup Multiple Choice //success
        vtp += question + answer;
      }
    }
  }
}

var wn = '\n';
wn += tablestart;
wn += vtp;
wn += "</div>";

// then either write wn pre and appended with [code] tags in a journal 
// field, or put it in a mail script.

Further Reading

Community Thread

Avatar
Jace Benson
ServiceNow Developer

ServiceNow is my day job, JAMStack is my passion.

comments powered by Disqus