building html setup to be added to work notes thru script include

patricklatella
Mega Sage

Hi community,

working with a script include that is meant to populate the WorkNotes on an incident that is generated from a request.  

What I need to do is to have the script include take the variables from the request and to put them into a grid (see screenshot) and then to have that grid appear as a worknote on the new incident.

So I want something like this:

find_real_file.png

to appear in the worknotes when the new incident is created from the request.

I've done this before in email scripts successfully.   But struggling to get it to work in this context.   Here's my script so far:

//Displays ERP Request Variables in Created Incident Work Notes

var reqObj = new GlideRecord('x_cur_erp_sm_request');

reqObj.get(current.sys_id);

var sInc = new global.reqUtils();

var vArr = sInc.parseVars(reqObj);

template.print("<table style=\" text-align: left;background-color: F2F3F3;border-collapse: collapse;font-family: arial, helvetica, sans-serif;font-size: 12pt; padding: 5px; border: 1px solid; border-color: grey;\">");

//the first row in the table contains the request type

template.print("<tr><td style=\"padding: 5px; border: 1px solid; border-color: grey;\" >");

template.print("Request Type");

template.print("</td><td style=\"padding: 5px; border: 1px solid; border-color: grey;\" >");

template.print(reqObj.template.getDisplayValue());

template.print("</td></tr>");

for (y = 0; y < vArr.length; y++) {

var q = vArr[y].question;

var a = vArr[y].answer;

try {

if (a.toString() != 'undefined'){

template.print("<tr><td style=\"padding: 5px; border: 1px solid; border-color: grey;\" >");

template.print(q);

template.print("</td><td style=\"padding: 5px; border: 1px solid; border-color: grey;\" >");

template.print(a);

template.print("</td></tr>");

}

}

catch (err)

{

}

}

template.print("</table>");

incident.work_notes = vArr;//this line populates the work notes on the new incident

thanks!

15 REPLIES 15

patricklatella
Mega Sage

Sanjiv was actually able to achieve this with a GlideRecord to the "question_answer" table.   And it works perfectly except for variables that are referencing a Data Lookup Matcher Rules table, in which case it returns the sys_id.   Thanks a lot for your help Vitaly!



//Displays ERP Request Variables in Created Incident Work Notes


var reqObj = new GlideRecord('x_cur_erp_sm_request');


reqObj.get(current.sys_id);



var note = "[code]";



note += "<table style=\" text-align: left;background-color: F2F3F3;" +


"border-collapse: collapse;font-family: arial, helvetica, sans-serif;" +


"font-size: 10pt; padding: 5px; border: 1px solid; border-color: grey;\">";


//the first row in the table contains the request type


note += "<tr><td style=\"padding: 5px; border: 1px solid; border-color: grey;\" >";


note += "Request Type";


note += "</td><td style=\"padding: 5px; border: 1px solid; border-color: grey;\" >";


note += reqObj.template.getDisplayValue();


note += "</td></tr>";



var qa = new GlideRecord('question_answer');


qa.addQuery('table_sys_id', current.sys_id);


qa.orderBy('order');


qa.query();



var a ='';


var q = '';


var ind ='';


while(qa.next())


{


q = qa.question.getDisplayValue()+'';



if (qa.question.reference!='')


{


var qq = new GlideRecord(qa.question.reference);


qq.get(qa.value);


a = qq.getDisplayValue();


}


else


{


a = qa.value;


}



gs.log('+++++++++a is ++++++'+a);



try {


if (a.toString() != '' && q.toString() != '' ) {


note += "<tr><td style=\"padding: 5px; border: 1px solid; border-color: grey;\" >";


note += q;


note += "</td><td style=\"padding: 5px; border: 1px solid; border-color: grey;\" >";


note += a;


note += "</td></tr>";


}


} catch (err) {}


}




note += "</table>[/code]";




find_real_file.png