PDF Generation - HR Document template

Following is the flow action script in servicenow to generate the document:


(function execute(inputs, outputs) {
var hrCaseSysId = inputs.hrCaseSysId;
//HR Document Template Using for Placeholder Document
var template = new GlideRecord('sn_hr_core_document_template');
if (template.get('sys_id', '342332c3c524d0d4bcbe2')) { //sys_id Of Document Template
var v = new sn_pdfgeneratorutils.PDFGenerationAPI;
// Replace placeholders in the template with actual values
var documentContent = template.html_script_body.toString();
// Fetch data from HR Case:
var grSnHrErCase = new GlideRecord('sn_hr_er_case');
if (grSnHrErCase.get(hrCaseSysId)) {
documentContent = documentContent.replace("Notes", grSnHrErCase.getDisplayValue('resolution'));
documentContent = documentContent.replace("Comments", grSnHrErCase.getDisplayValue('comments'));
/* MRVS Employees Information Starts Here */
var employeesData = [];
if(inputs.employeesData){
employeesData = JSON.parse(inputs.employeesData);
}
var employeeTable = '';
if(employeesData.length){
employeeTable+= '<table class="tg">';
//Table Header
var empColumnNames = ['Name', 'Phone', 'Supervisor', 'Department'];
employeeTable += '<thead><tr>';
for (var i = 0; i < empColumnNames.length; i++) {
employeeTable += '<th>';
employeeTable += empColumnNames[i];
employeeTable += '</th>';
}
employeeTable += '</tr></thead>';
employeeTable+= '<tbody>';
// Iterate through the JSON data and generate table rows dynamically
for (var i = 0; i < employeesData.length; i++) {
employeeTable += '<tr>';
employeeTable += '<td>' + employeesData[i].user +'</td>';
employeeTable += '<td>' + employeesData[i].phone_number + '</td>';
employeeTable += '<td>' + employeesData[i].immediate_supervisors +'</td>';
employeeTable += '<td>' + employeesData[i].department_s+ '</td>';
employeeTable += '</tr>';
}
employeeTable+= '</tbody>';
employeeTable+= '</table>';
}
documentContent = documentContent.replace("EmployeesNameInformation", employeeTable);
/* MRVS Employees Information Ends Here */
}
/*Header & Footer donot delete this, starts here !Important*/
var hfInfo = new Object();
//hfInfo["HeaderImageAttachmentId"] = "<hdrImgAttSysId>";
//hfInfo["HeaderImageAlignment"] = "left";
//hfInfo["FooterImageAttachmentId"] = "<ftrImgAttSysId>";
hfInfo["FooterImageAlignment"] = "TOP_CENTER";
hfInfo["FooterText"] = "Sample Footer Message";
hfInfo["PageSize"] = "A4";
hfInfo["GeneratePageNumber"] = "false";
hfInfo["TopOrBottomMargin"] = "36";
hfInfo["LeftOrRightMargin"] = "24";
/*Header & Footer donot delete this ends here !Important*/
var result = v.convertToPDFWithHeaderFooter(documentContent, "sn_hr_er_case", hrCaseSysId, "Filename", hfInfo);
outputs.da_form_result = result.attachment_id;
gs.info(JSON.stringify(result));
}
})(inputs, outputs);