Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

PDF Generation business rule duplication

BenjaminY
Tera Contributor

Hello,

 

I am task to add something to this PDF generation BR to stop this business rule from recreating PDFs when a comment or approval status is changed. Please advise 

 

BenjaminY_0-1727182733860.png

 

attachmentSysID = gs.getProperty('x_g_dh5_ccht.CCHT fillable pdf');

if (current.alien_number == "") {
    pdfName = 'Notification of Approved Continued Presence ' + current.secondary_entry_afile_number + '.pdf';
} else if (current.alien_number != "") {
    pdfName = 'Notification of Approved Continued Presence ' + current.alien_number.replace('A-', '') + '.pdf';
}

var fieldMap = new Object();

//fieldMap["jsonForPDF"] = 'CP End Date:'+ current.record_expiration_date+"";
// getting approval date
// var approvalGr = new GlideRecord('sysapproval_approver');
// approvalGr.addQuery('sysapproval', current.sys_id);
// approvalGr.addQuery('state', 'approved');
// approvalGr.query();
// if (approvalGr.next()) {
//     var approvalDate = approvalGr.sys_updated_on.getDisplayValue();
// }

// not created date
// var createdOn = current.sys_created_on+'';
var gdt4 = new GlideDate();
current.cp_start_date= new GlideDate();
current.update();
gdt4.setValue(current.cp_start_date + "");
var fromDate2 = gdt4.getByFormat('MM/dd/yyyy') + "";


var gdt = new GlideDate();
gdt.setValue(current.record_expiration_date + "");
var toDate = gdt.getByFormat('MM/dd/yyyy') + "";

var gdt3 = new GlideDate();
gdt3.setValue(current.ext_date_of_birth + "");
var birthDate = gdt3.getByFormat('MM/dd/yyyy') + "";


//fieldMap["jsonForPDF"] = 'CP End Date:'+ current.record_expiration_date+"";
fieldMap["from_date"] = fromDate2;
fieldMap["to_date"] = toDate;
fieldMap["victim_anumber"] = current.alien_number.replace('A-', '') + "";
fieldMap["victim_first_name"] = current.extention_v_first + "";
fieldMap["victim_last_name"] = current.extention_v_last_name + "";
fieldMap["victim_dob"] = birthDate;
fieldMap["victim_anumber"] = current.alien_number + "";
fieldMap["victim_country"] = current.ext_country_of_birth.getDisplayValue() + "";
fieldMap["victim_trafficking"] = current.type_of_trafficking + "";
fieldMap["case_agent"] = current.lead_officer_first_name + " " + current.lead_officer_last_name + "";

fieldMap["case_phone"] = current.ldc_phone_number + "";
//if (current.phone_extension != "") {
   // fieldMap["case_phone"] = current.ldc_phone_number + " ext " + current.phone_extension + "";
//}

fieldMap["case_email"] = current.lead_officer_email_address + "";
fieldMap["assistance_specialist"] = current.vwc_first_name + " " + current.vwc_last_name + "";
fieldMap["assistance_phone"] = current.vwc_daytime_phone_number + "";
if (current.victim_relations_phone_ext != "") {
    fieldMap["assistance_phone"] = current.vwc_daytime_phone_number + " ext " + current.vwc_ext + "";
}
fieldMap["assistance_email"] = current.vwc_email_address + "";

//fieldMap["Sponsoring Law Enforcement Agencies"]="";

var flatten = new Object();
flatten["FlattenType"] = "fully_flatten";
var v = new sn_pdfgeneratorutils.PDFGenerationAPI;
var result = v.fillDocumentFieldsAndFlatten(fieldMap, attachmentSysID, 'x_g_dh5_ccht_ccht_task', current.getValue('sys_id'), pdfName, flatten);

current.approved_record_sysid = result.attachment_id;
1 REPLY 1

amaradiswamy
Kilo Sage

Hi @BenjaminY 

 

You can change the trigger conditions based on fields which will be changed. I am assuming that "Request type" field value will not be changed. Hence, you can update conditions based on Record status.

 

You can adjust the condition like

 

Record Status -- changes to -- Approved

Approved record sysid -- is empty

Record expiration date -- is not empty

Request type --is -- extension