- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-03-2020 01:33 AM
Hi All,
I have a requirement to change the table <td> tag background color as the field value changes at the time of insertion.
When the value of INC field value is "true" i want the <td> tag background colour to be red
When the value of INC field value is "false" i want the <td> tag background colour to be yellow.
Script:
(function runMailScript(/* GlideRecord */ current, /* TemplatePrinter */ template,
/* Optional EmailOutbound */ email, /* Optional GlideRecord */ email_action,
/* Optional GlideRecord */ event)
{
var baseUrl = gs.getProperty("glide.servlet.uri");
email.setSubject("Applications - Last created Incidents (Days & Date) Report as on " + gs.now());
var finalJSONArray =[];
var obj = {};
var url,shortDesc,assignGroup,escalated,inc;
var gr = new GlideRecord('incident');
gr.addQuery('active','true');
gr.addQuery('assigned_to','46d44a23a9fe19810012d100cca80666');
gr.query();
while(gr.next())
{
shortDesc = gr.short_description.getDisplayValue();
assignGroup = gr.assignment_group.getDisplayValue();
complex = gr.u_complexity.getDisplayValue();
inc = gr.u_inc.getDisplayValue();
url = '<a href="' + baseUrl + 'sp?id=ticket&table=' + gr.getTableName() + '&sys_id=' + gr.sys_id + '">' + gr.number + '</a>';
gs.log("url: " + url);
obj = {URL : url ,ShortDesc : shortDesc, AssignmentGroup : assignGroup,Complexity: complex, IncGreq : inc};
finalJSONArray.push(obj);
}
gs.info("obj is" + JSON.stringify(obj));
gs.info("finalJSONArray is" + JSON.stringify(finalJSONArray));
template.print("<p><table border=3>");
template.print("<tr bgcolor=yellow><td colspan=3 align =center><b>Incident details</b></td></tr>");
template.print("<tr><th>Number</th><th>Short Desc</th><th>Assignment Group</th><th>INC</th></tr>");
for (var i in finalJSONArray)
{
template.print("<tr><td>" + finalJSONArray[i].URL + "</td><td>" + finalJSONArray[i].ShortDesc + "</td><td>" + finalJSONArray[i].AssignmentGroup + "</td><td>" + finalJSONArray[i].Complexity + "</td><td bgcolor=#FF0000>(finalJSONArray[i].IncGreq["true"] </td> ? <td bgcolor=yellow>(finalJSONArray[i].IncGreq["false"] </td> + "</td></tr>");
}
template.print("</table></p><br/>");
})(current, template, email, email_action, event);
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-04-2020 07:03 AM
Hi Hemanth,
Can you store the output of the ternary operator in variable and print that and then use that to compare
var jsonValue = finalJSONArray[i].IncGreq.toString();
var finalValue = (jsonValue == 'TRUE') ? "<td bgcolor=#FF0000>" : "<td bgcolor=yellow>";
gs.info('Ternary Operator outcome is: ' + finalValue);
template.print("<tr><td>" + finalJSONArray[i].URL + "</td><td>" + finalJSONArray[i].ShortDesc + "</td><td>" + finalJSONArray[i].AssignmentGroup + "</td><td>" + finalJSONArray[i].Complexity + "</td>" + finalValue + jsonValue + "</td></tr>");
Mark ✅ Correct if this solves your issue and also mark 👍 Helpful if you find my response worthy based on the impact.
Thanks
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-03-2020 01:45 AM
Hi Hemanth,
Try the below code that might help you.
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading || newValue === '') {
return;
}
//Type appropriate comment here, and begin script below
var sd = g_form.getValue('short_description');
if(sd.includes("**") == false) //Add your specific text here
{
control.style.backgroundColor = "#FF0000"; //This will turn in Blue if specifc text found
}
else
{
control.style.backgroundColor = "#DB7093";
}
}
Mark helpful or correct based on impact.
Regards,
Priyanka A.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-03-2020 01:58 AM
Hi Priyanka,
This doesn't help me in what i am looking for.
Regards,
Hemanth
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-03-2020 02:17 AM
Hi Hemanth,
please update code as below:
use if else statement
for (var i in finalJSONArray)
{
var value = finalJSONArray[i].IncGreq;
if(value)
template.print("<tr><td>" + finalJSONArray[i].URL + "</td><td>" + finalJSONArray[i].ShortDesc + "</td><td>" + finalJSONArray[i].AssignmentGroup + "</td><td>" + finalJSONArray[i].Complexity + "</td><td bgcolor=#FF0000>" + value + "</td></tr>");
else
template.print("<tr><td>" + finalJSONArray[i].URL + "</td><td>" + finalJSONArray[i].ShortDesc + "</td><td>" + finalJSONArray[i].AssignmentGroup + "</td><td>" + finalJSONArray[i].Complexity + "</td><td bgcolor=yellow>" + value + "</td></tr>");
}
Mark ✅ Correct if this solves your issue and also mark 👍 Helpful if you find my response worthy based on the impact.
Thanks
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-03-2020 04:13 AM
Hi Ankur,
I have couple of other columns along with the INC fields. Can't the color change be done at the time of column insertion.
I did try the above code and is working fine for one field. Do you have any clue how can we do this for multiple fields like on the above snapshot?
I did give a try by adding conditions but doesn't seem to work.
REF::