Script to Generate .txt file in ServiceNow



Here is the script to generate a .txt file in ServiceNow.
The example below demonstrates the usage of the script in a Flow Designer -> Action.


Flow Action Script:

(function execute(inputs, outputs) {
outputs.generated_attachment_sysid = ''; //Output
// Initialize a variable to store TXT data
var txtData = '';
var grXFAJA = new GlideRecord('custom_table');
grXFAJA.addEncodedQuery(inputs.encoded_query);
grXFAJA.query();
// Loop through the records and add data to the .txt
while (grXFAJA.next()) {
//SSN
var socialSecurity = grXFAJA.getDisplayValue('ssn');
txtData += socialSecurity;
//Firstname
var firstName = grXFAJA.getValue('first_name');
txtData += firstName;
//Last Name
var lastName = grXFAJA.getValue('last_name');
txtData += lastName;
//Middle Name
var middleName = ''; //Optional
if(grXFAJA.getValue('middle_name')){
middleName = grXFAJA.getValue('middle_name');
}
txtData += middleName;
//Date of birth
var dateOfBirth = '';
var dateOfBirthRaw = grXFAJA.getValue('date_of_birth'); //Example: 2023-08-18
if(dateOfBirthRaw){
var year = dateOfBirthRaw.substr(0, 4);
var month = dateOfBirthRaw.substr(5, 2);
var day = dateOfBirthRaw.substr(8, 2);
// Pad month and day with leading zeros if needed
if (month.length === 1) {
month = '0' + month;
}
if (day.length === 1) {
day = '0' + day;
}
dateOfBirth = month + day + year; //Example: 08182023 MMDDYYYY
}
// Add date of birth
txtData += dateOfBirth;
txtData += '\r\n'; //New Row
}
var fileName = 'TextFileOutPut.txt'; //File Name
//Attach File to System Property
var grRec = new GlideRecord('sys_properties');
grRec.addQuery('sys_id', gs.getProperty('text_file_holder'));
grRec.query();
if (grRec.next()) {
var grAttachment = new GlideSysAttachment();
outputs.generated_attachment_sysid = grAttachment.write(grRec, fileName, 'text/plain', txtData);
}

})(inputs, outputs);