How do I print details from a RITM or SCTASK?

trishlipe
Giga Expert

We need a way to print the ticket Details to get sign off from end users.

When I export to a PDF document the details are not listed (See screenshot below). When I try to right click --> print, the format is not usable. How do I get this information to print on the PDF download?

find_real_file.png

1 ACCEPTED SOLUTION

Jag5
Tera Guru

Hi Trishlipe,

You can print the variables from RITM by creating a UI page, Script Include, and UI action.

Script Include: fetchVariables1, client callable = true

var fetchVariables1 = Class.create();

fetchVariables1.prototype = Object.extendsObject(AbstractAjaxProcessor, {
itemVariables: function() {
var itemID = this.getParameter('sysparm_item');
var displayValue = '';
var desc = '';
desc += '<table style="width:100%" cellpadding="0" border="1">';
desc += '<tr>';
desc += '</tr>';
var newLineHTML = '';
var variables ='variables.';
var grItem = new GlideRecord('sc_req_item');
grItem.get(itemID);
var gr = new GlideRecord('sc_item_option_mtom');
gr.addQuery('request_item',itemID);
gr.orderBy('sc_item_option.order');
gr.query();
var i = 0;
while(gr.next()) {
variables ='variables.';
/* Put all variable values and labels from the variable pool into an array */
/* Only include non-empty variables, and exclude Label and Container variables */
//gr.sc_item_option.value.getDisplayValue() != '' gr.sc_item_option.value.getDisplayValue() != 'false'
if ( gr.sc_item_option.value.getDisplayValue() != 'false' && gr.sc_item_option.item_option_new.active == true && gr.sc_item_option.item_option_new.type != 11 && gr.sc_item_option.item_option_new.type != 19 && gr.sc_item_option.item_option_new.type != 20 && gr.sc_item_option.item_option_new.type != 14 ) {
//desc += j+") "+ v.getGlideObject().getQuestion().getLabel() + ': ' + v.getDisplayValue() + '<br>' ;
if(gr.sc_item_option.item_option_new.question_text == 'Current Annual Base' && i%2==1){
i++;
}
if(gr.sc_item_option.item_option_new.question_text == 'Current Supervisor' ){
//i++;
}
if(i%2==0) {
desc += '<tr>';
}
variables += gr.sc_item_option.item_option_new.name;
displayValue = grItem.getDisplayValue(variables);
if(displayValue==null || displayValue == undefined) {
displayValue = '';
}
if(gr.sc_item_option.item_option_new.question_text == 'Comments') {
newLineHTML += '<table style="width:100%" cellpadding="0" border="1">';
newLineHTML += '<tr><td style="text-align:left;padding:4px;width:20%;background: #80808040;"><span style="text-align:left;font-weight:900;padding:2px" >' + gr.sc_item_option.item_option_new.question_text + '</td><td style="width:80%;padding:4px;"></span><span style="text-align:left;white-space: pre-wrap;"> ' + gr.sc_item_option.value + ' </span></td></tr></table>';
}
else {
desc += '<td style="text-align:left;padding:4px;width:20%;background: #80808040;"><span style="text-align:left;font-weight:900;padding:2px" >' + gr.sc_item_option.item_option_new.question_text + '</td><td style="width:30%"></span><span style="text-align:left;white-space: pre-wrap;"> ' + displayValue + ' </span></td>';
}
if(i%2 == 1) {
desc += '</tr>';
}
i++;
}
}
desc += '</table>';
desc += newLineHTML;
},
type: 'fetchVariables1'
});

UI PAge: item_variables

HTML: 

<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
<link href="kb_styles.cssx" type="text/css" rel="stylesheet" />
<div id ="html_content" style="display: none;">
$[sysparm_item]
</div>
<div id='printClass'>
<div id="commentsdiv" style="display: block;">
<h4 style="font-weight: bold;">Status Change Form for: $[sysparm_number]</h4>
<!--<table>
<span><label for="comments">$[sysparm_item]</label></span>
</table> -->


<div id="variable_data"></div>
</div>
</div>
<input type='button' id='btn' value='Print' onclick='printPage();'></input>
</j:jelly>

Client Script: 

var ga = new GlideAjax('fetchVariables1') ;
ga.addParam('sysparm_name','itemVariables');
ga.addParam('sysparm_item',document.getElementById('html_content').innerHTML);
ga.getXMLWait();
var val = ga.getAnswer();
//alert(val);
document.getElementById('variable_data').innerHTML = val;

function printPage()
{

var divToPrint=document.getElementById('printClass');

var newWin=window.open('','Print-Window');

newWin.document.open();

newWin.document.write('<html><body onload="window.print()">'+divToPrint.innerHTML+'</body></html>');

newWin.document.close();

setTimeout(function(){newWin.close();},10);

}

UI Action: Print Form, Table: Requested Item Onclick: printVariables()

function printVariables(){ //Client Side function

var sysid = g_form.getUniqueValue();

var gdw = new GlideModal('item_variables');
gdw.setTitle('Variables');
gdw.setWidth(1200);
gdw.setPreference('sysparm_number', g_form.getValue('number'));
gdw.setPreference('sysparm_item', g_form.getUniqueValue());
gdw.render();
}

 

Thanks,

Jag. 

 

Please mark CORRECT/HELPFUL as needed. 

 

 

 

View solution in original post

32 REPLIES 32

holly-t
Tera Guru

Looking through your update set, i see whats missing. At the bottom of your client script, where you cut it off, return desc; was left off. that fixed my issue!

 

Glad it worked for you. 

Best,

Jag.

 

Please mark CORRECT/HELPFUL as needed. 

Raza156
Kilo Contributor

Hey Holly,

 

Can you please post a screenshot of that piece of code that was missing?

Thanks alot!

Raza156
Kilo Contributor

I got it to work! Thank you both of you for your help and input!

Jag5
Tera Guru
Hi, Could any of you mark the answer as correct/helpful as needed. So that the thread can be closed. Best, Jag.