logo

NJP

How to print out all the variables (OLD)

Jace's Blog · Feb 16, 2018 · article

Let me preface 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

View original source

https://jace.pro/post/2018-02-15-print-out-variables/