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

troubleshooting the script a little more, it appears to be getting confused if the entry from 2 text fields is the same.   If this is the case it duplicates the entry



find_real_file.png



and this was the form:



find_real_file.png


patricklatella
Mega Sage

and here you see (other than the 'undefined' entries), that is works correctly.   but only if the entries in the text fields are different.



find_real_file.png


find_real_file.png


patricklatella
Mega Sage

actually think I got it, needed to change your line 28 to



if (a.toString() != null) {  


patricklatella
Mega Sage

regarding the duplicating entries, it is not exclusive to text fields, it's doing it on any kind of variable if there are 2 variables in a row with the same entry.



here's one where it did it on a date field.  



find_real_file.png


find_real_file.png


patricklatella
Mega Sage

Hi Vitaly,


what I'm fairly confident is happening is that if there are more than 1 variable with the same value, then it is improperly repeating the "question" part for all the following variables that have that same "answer".   The variables that have the same value (after the first) are not showing up in the log or the HTML table.   Any idea why this might be happening?   thanks again!