Record Produce field should updated in backend table details section in table and column format

raj12345
Tera Contributor

Requirement- Record produce all variable data should get updated in table details section.

Issue - I have created script and it is working fine for all variable but there is one MRVS type variable set so MRVS data is not getting captured.

Script I implemented-  

current.short_description = "Visitor Request For " + producer.xyz_location.getDisplayValue() + " - " + producer.start;
current.u_request_type = 'visitor request';

var detailsTable = "<table border='1' style='width:100%; border-collapse: collapse;'>";
detailsTable += "<tr><th style='padding: 5px; text-align: left;'>Field</th><th style='padding: 5px; text-align: left;'>Value</th></tr>";

detailsTable += "<tr><td>Requested By</td><td>" + producer.requested_by.getDisplayValue() + "</td></tr>";
detailsTable += "<tr><td>xyz Host (if different)</td><td>" + producer.xyz_host.getDisplayValue() + "</td></tr>";
detailsTable += "<tr><td> XYZ Location</td><td>" + producer.xyz_location.getDisplayValue() + "</td></tr>";
detailsTable += "<tr><td>Start</td><td>" + producer.start + "</td></tr>";
detailsTable += "<tr><td>End</td><td>" + producer.end + "</td></tr>";
detailsTable += "<tr><td>Purpose of Visit</td><td>" + producer.Purp_of_visit + "</td></tr>";

detailsTable += "</table>";

// Handling Multi-Row Variable Set (Visitor Details)
var visitorTable = "<br><b>Visitor Details:</b><br>";
visitorTable += "<table border='1' style='width:100%; border-collapse: collapse;'>";
visitorTable += "<tr><th style='padding: 5px; text-align: left;'>First Name</th><th style='padding: 5px; text-align: left;'>Last Name</th><th style='padding: 5px; text-align: left;'>Email</th><th style='padding: 5px; text-align: left;'>Company</th><th style='padding: 5px; text-align: left;'>Phone</th></tr>";

// Check if visitor_details has any rows
var visitorRows = producer.visitor_details;

if (visitorRows && visitorRows.getRowCount() > 0) { // Check row count
for (var i = 0; i < visitorRows.getRowCount(); i++) {
var row = visitorRows.getRow(i); // Get row

visitorTable += "<tr>";
visitorTable += "<td>" + row.first_name.getValue() + "</td>";
visitorTable += "<td>" + row.last_name.getValue() + "</td>";
visitorTable += "<td>" + row.email.getValue() + "</td>";
visitorTable += "<td>" + row.company.getValue() + "</td>";
visitorTable += "<td>" + row.phone.getValue() + "</td>";
visitorTable += "</tr>";
}
} else {
visitorTable += "<tr><td colspan='5' style='text-align: center;'>No visitors provided</td></tr>";
}

visitorTable += "</table>";

current.details = detailsTable + visitorTable;


Please correct me where I am doing Mistake

3 REPLIES 3

Ankur Bawiskar
Tera Patron
Tera Patron

@raj12345 

try this

current.short_description = "Visitor Request For " + producer.xyz_location.getDisplayValue() + " - " + producer.start;
current.u_request_type = 'visitor request';

var detailsTable = "<table border='1' style='width:100%; border-collapse: collapse;'>";
detailsTable += "<tr><th style='padding: 5px; text-align: left;'>Field</th><th style='padding: 5px; text-align: left;'>Value</th></tr>";

detailsTable += "<tr><td>Requested By</td><td>" + producer.requested_by.getDisplayValue() + "</td></tr>";
detailsTable += "<tr><td>xyz Host (if different)</td><td>" + producer.xyz_host.getDisplayValue() + "</td></tr>";
detailsTable += "<tr><td> XYZ Location</td><td>" + producer.xyz_location.getDisplayValue() + "</td></tr>";
detailsTable += "<tr><td>Start</td><td>" + producer.start + "</td></tr>";
detailsTable += "<tr><td>End</td><td>" + producer.end + "</td></tr>";
detailsTable += "<tr><td>Purpose of Visit</td><td>" + producer.Purp_of_visit + "</td></tr>";

detailsTable += "</table>";

// Handling Multi-Row Variable Set (Visitor Details)
var visitorTable = "<br><b>Visitor Details:</b><br>";
visitorTable += "<table border='1' style='width:100%; border-collapse: collapse;'>";
visitorTable += "<tr><th style='padding: 5px; text-align: left;'>First Name</th><th style='padding: 5px; text-align: left;'>Last Name</th><th style='padding: 5px; text-align: left;'>Email</th><th style='padding: 5px; text-align: left;'>Company</th><th style='padding: 5px; text-align: left;'>Phone</th></tr>";

// Check if visitor_details has any rows
var visitorRows = producer.variables.visitor_details; // Ensure correct reference to MRVS

if (visitorRows && visitorRows.length > 0) { // Check row count
    for (var i = 0; i < visitorRows.length; i++) {
        var row = visitorRows[i]; // Get row

        visitorTable += "<tr>";
        visitorTable += "<td>" + row.first_name + "</td>";
        visitorTable += "<td>" + row.last_name + "</td>";
        visitorTable += "<td>" + row.email + "</td>";
        visitorTable += "<td>" + row.company + "</td>";
        visitorTable += "<td>" + row.phone + "</td>";
        visitorTable += "</tr>";
    }
} else {
    visitorTable += "<tr><td colspan='5' style='text-align: center;'>No visitors provided</td></tr>";
}

visitorTable += "</table>";

current.details = detailsTable + visitorTable;

If my response helped please mark it correct and close the thread so that it benefits future readers.

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

It is not working

 

@raj12345 

what debugging did you perform?

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader