VaranAwesomenow
Mega Sage

Create a HTML output with RITM variables.

var variableJson = [];
var tableHTML = getHTMLvariables('1c1bac352f792010f101ad2ef699b682');// Pass RITM sysId
var htmlHeader = '<p></p><table style="border-collapse: collapse; width: 100%; height: 80px;" border="1"><tbody><tr style="height: 13px;"><td style="width: 50%; height: 13px;"><strong>Variable</strong><br /></td><td style="width: 50%; height: 13px;"><strong>Value</strong></td></tr>';
var htmlFooter = '</tbody></table>';
var html = htmlHeader + tableHTML + htmlFooter;
gs.print(html);
updateKBArticle('28bc8c752f752010f101ad2ef699b627', html); // Pass knowledgebase ID and html to be used

function updateKBArticle(kbId,html) {
var grKB = new GlideRecord('kb_knowledge');
grKB.get(kbId); // KB article to be updated
grKB.text = html;
grKB.update();
}

function getHTMLvariables(ritmId) {
buildVariableJson(ritmId);
var tableHTML = buildTable(variableJson);
gs.print(tableHTML);
return tableHTML;
}

function buildTable(rowJson) {
var key = '';
var value = '';
var htmlTr = '';
//staticHTMLTrusage = '<tr><td style="width: 50%;">' + key + '</td><td style="width: 50%;">' + value + '</td></tr>';
var staticHTMLTr1 = '<tr><td style="width: 50%;">';
var staticHTMLTr2 = '</td><td style="width: 50%;">';
var staticHTMLTr3 = '</td></tr>';
for (var k = 0; k < rowJson.length; k++) {
key = rowJson[k].key;
value = rowJson[k].value;
htmlTr += staticHTMLTr1 + key + staticHTMLTr2 + value + staticHTMLTr3;
gs.print(htmlTr);
}
return htmlTr;
}

function buildVariableJson(reqItemId) {
var grReqItem = new GlideRecord('sc_req_item');
grReqItem.get(reqItemId);
var variableArray = getVariablesFromCatalogItem(grReqItem.cat_item.sys_id);
var variables = grReqItem.variables;
for (var m = 0; m < variableArray.length; m++) {
// gs.print(variables.year.getDisplayValue());
gs.print(variableArray[m] + "=" + variables[variableArray[m]].getDisplayValue());
buildJson(variableArray[m], variables[variableArray[m]].getDisplayValue());
}
}

function getVariablesFromCatalogItem(itemID) {
var variableList = [];
var query = 'cat_item=' + itemID + '^active=true^typeIN7,9,10,26,23,28,21,22,18,25,2,3,4,8,31,32,5,6,27,16,1';
var grVariables = new GlideRecord('item_option_new');
grVariables.addEncodedQuery(query);
grVariables.query();
while (grVariables.next()) {
variableList.push(grVariables.name + '');
}
return variableList;
}

function buildJson(key, value) {
var rowJson = {
"key": key,
"value": value
};
variableJson.push(rowJson);
}

 

Youtube link : https://youtu.be/2KAsa7TE24s

Version history
Last update:
‎01-19-2021 09:00 AM
Updated by: