We've updated the ServiceNow Community Code of Conduct, adding guidelines around AI usage, professionalism, and content violations. Read more

Export specific fields as excel and attach on RITM

basavaraja
Tera Contributor

Hello Geeks,

 

We have a requirement where in we need to export few specific fields to excel and attach on RITM. Please let us know if anyone has implemented this requirement?

1 ACCEPTED SOLUTION

Hello,
Test this

 

(function executeRule(current, previous /*null when async*/ ) {
generateData();
function generateData() {
var headers = ["Requested ITEM", "Opened By", "Request"];
var fileName = current.number + '.xls';
var xlsData = '';

// add headers to xlsData
for (var i = 0; i < headers.length; i++) {
xlsData += headers[i] + '\t';
}
xlsData += '\n';

// add data to xlsData
xlsData += current.number + '\t' + current.opened_by.getDisplayValue() + '\t' + current.request.getDisplayValue() + '\n';

// attach the file to a record.
var grRec = new GlideRecord("sc_req_item");
grRec.addQuery("sys_id", current.sys_id);
grRec.query();
if (grRec.next()) {
var grAttachment = new GlideSysAttachment();
grAttachment.write(grRec, fileName, 'application/vnd.ms-excel', xlsData);
}
}
})(current, previous);

View solution in original post

13 REPLIES 13

Hi,
Can I see your code please

(function executeRule(current, previous /*null when async*/ ) {
generateData();
function generateData() {
var Headers = ["Requested ITEM","Opened By""Request"];
var fileName = 'current.number.xls';
var xlsData = '';
for (var i = 0; i < Headers.length; i++) {
xlsData = xlsData + '"' + Headers[i] + '"' + ',';
}
xlsData = xlsData + "\r\n";
xlsData = xlsData + '"' + current.number + '",' + '"' + current.opened_by.getDisplayValue() + '",' + '"' + current.request.getDisplayValue()+ '"';
xlsData = xlsData + "\r\n";

 

//attach the file to a record.
var grRec = new GlideRecord("sc_req_item");
grRec.addQuery("sys_id", current.sys_id);
grRec.query();
if (grRec.next()) {
var grAttachment = new GlideSysAttachment();
grAttachment.write(grRec, fileName, 'application/xls', xlsData);
}
}
})(current, previous);

Please try this one

(function executeRule(current, previous /*null when async*/ ) {
generateData();
function generateData() {
var Headers = ["Requested ITEM","Opened By""Request"];
var fileName = current.number+'.xls';
var xlsData = '';
for (var i = 0; i < Headers.length; i++) {
xlsData = xlsData + '"' + Headers[i] + '"' + ',';
}
xlsData = xlsData + "\r\n";
xlsData = xlsData + '"' + current.number + '",' + '"' + current.opened_by.getDisplayValue() + '",' + '"' + current.request.getDisplayValue()+ '"';
xlsData = xlsData + "\r\n";

 

//attach the file to a record.
var grRec = new GlideRecord("sc_req_item");
grRec.addQuery("sys_id", current.sys_id);
grRec.query();
if (grRec.next()) {
var grAttachment = new GlideSysAttachment();
grAttachment.write(grRec, fileName, 'application/xls', xlsData);
}
}
})(current, previous);

Hello Ansar,

 

Still all the fields are coming on one column. They should come in separate columns.

 

basavaraja_0-1675959170744.png

 

Hi,
Please try this

(function executeRule(current, previous /*null when async*/ ) {
generateData();
function generateData() {
var Headers = ["Requested ITEM","Opened By""Request"];
var fileName = current.number+'.csv';
var xlsData = '';
for (var i = 0; i < Headers.length; i++) {
xlsData = xlsData + '"' + Headers[i] + '"' + ',';
}
xlsData = xlsData + "\r\n";
xlsData = xlsData + '"' + current.number + '",' + '"' + current.opened_by.getDisplayValue() + '",' + '"' + current.request.getDisplayValue()+ '"';
xlsData = xlsData + "\r\n";

 

//attach the file to a record.
var grRec = new GlideRecord("sc_req_item");
grRec.addQuery("sys_id", current.sys_id);
grRec.query();
if (grRec.next()) {
var grAttachment = new GlideSysAttachment();
grAttachment.write(grRec, fileName, 'application/csv', xlsData);
}
}
})(current, previous);