- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-01-2019 02:30 AM
We are filtering some records with gliderecord. Lets say we have two arrays 1. headers and Values as given below. How we can generate CSV Of with values? Currently I am able to add only Header and one ROW. When I am trying to insert second row , its getting added into only one column as below:
Here is the script
var csvAnswers = [];
var gr = new GlideRecord('alm_hardware');
gr.addQuery('sys_id','3cfba07d1b384010364d32a3cc4bcbca');
gr.query();
if(gr.next()){
var csvHeaders = ["First_name","last_name","location"];
var assetDetails1 = ["Steve","Rogers","LA"];
var assetDetails2 = ["Tony","Stark","New York"];
var fileName = 'Detail1.csv';
csvAnswers.push(assetDetails1);
csvAnswers.push(assetDetails2);
var csvData = ''; //The variable csvData will contain a string which is used to build the CSV file contents
for (var i = 0; i < csvHeaders.length - 1; i++) { //Build the Headers
csvData = csvData + '"' + csvHeaders[i] + '"' + ',';
}
csvData = csvData + '"' + csvHeaders[csvHeaders.length - 1] + '"' + '\r\n';
gs.log("csvHeaders :"+csvData);
for (var k = 0; k < csvAnswers.length-1; k++) {
for (var m = 0; k < csvAnswers[k][m].length-1 ; m++) {
gs.log("csvAnswers :"+csvAnswers[k][m]);
csvData = csvData + '"' + csvAnswers[k][m].toString() + '"' + ',';
}
csvData = csvData+"\n";
csvData = csvData + '"' + csvAnswers[csvAnswers.length - 1] + '"' + '\r\n';
}
// csvData = csvData + '"' + csvAnswers[csvAnswers.length - 1] + '"' + '\r\n';
gs.log(" csvData : "+csvData);
var sa = new GlideSysAttachment();
sa.write(gr, fileName, 'application/csv', csvData);
}
Whats modification need to be done ? How we can generate CSV Of records.
Abhishek Gardade
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-01-2019 11:27 AM
Can you try below script?
var csvAnswers = [];
var gr = new GlideRecord('alm_hardware');
gr.addQuery('sys_id','3cfba07d1b384010364d32a3cc4bcbca');
gr.query();
if(gr.next()){
var csvHeaders = ["First_name","last_name","location"];
var assetDetails1 = "Steve,Rogers,LA";
var assetDetails2 = "Tony,Stark,New York";
var fileName = 'Detail1.csv';
csvAnswers.push(assetDetails1.split(','));
csvAnswers.push(assetDetails2.split(','));
var csvData = ''; //The variable csvData will contain a string which is used to build the CSV file contents
for (var i = 0; i < csvHeaders.length - 1; i++) { //Build the Headers
csvData = csvData + '"' + csvHeaders[i] + '"' + ',';
}
csvData = csvData + '"' + csvHeaders[csvHeaders.length - 1] + '"' + '\r\n';
gs.log("csvHeaders :"+csvData);
for (var k = 0; k < csvAnswers.length; k++) {
for (var m = 0; m < csvAnswers[k].length; m++) {
gs.log("csvAnswers :"+m+'-'+csvAnswers[k].length);
if (m == (csvAnswers[k].length-1))
csvData = csvData + '"' + csvAnswers[k][m].toString() + '"';
else
csvData = csvData + '"' + csvAnswers[k][m].toString() + '"' + ',';
}
csvData = csvData+"\r\n";
//csvData = csvData + '"' + csvAnswers[csvAnswers.length - 1] + '"' + '\r\n';
}
// csvData = csvData + '"' + csvAnswers[csvAnswers.length - 1] + '"' + '\r\n';
gs.log(" csvData : "+csvData);
var sa = new GlideSysAttachment();
sa.write(gr, fileName, 'application/csv', csvData);
}
Please mark this response as correct or helpful if it assisted you with your question.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-01-2019 02:40 AM
Hi Abhishek,
Check the below link, this might help..!!
I was having something same in relation to your issue...
https://community.servicenow.com/community?id=community_blog&sys_id=e4f8bd4edbbc881014d6fb243996190e
Hope this helps.
Mark the answer as correct/helpful if you are satisfied.
Thanks,
Angshuman
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-01-2019 06:11 AM
I already tried that one. Its not working for me.
Abhishek Gardade
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-01-2019 11:27 AM
Can you try below script?
var csvAnswers = [];
var gr = new GlideRecord('alm_hardware');
gr.addQuery('sys_id','3cfba07d1b384010364d32a3cc4bcbca');
gr.query();
if(gr.next()){
var csvHeaders = ["First_name","last_name","location"];
var assetDetails1 = "Steve,Rogers,LA";
var assetDetails2 = "Tony,Stark,New York";
var fileName = 'Detail1.csv';
csvAnswers.push(assetDetails1.split(','));
csvAnswers.push(assetDetails2.split(','));
var csvData = ''; //The variable csvData will contain a string which is used to build the CSV file contents
for (var i = 0; i < csvHeaders.length - 1; i++) { //Build the Headers
csvData = csvData + '"' + csvHeaders[i] + '"' + ',';
}
csvData = csvData + '"' + csvHeaders[csvHeaders.length - 1] + '"' + '\r\n';
gs.log("csvHeaders :"+csvData);
for (var k = 0; k < csvAnswers.length; k++) {
for (var m = 0; m < csvAnswers[k].length; m++) {
gs.log("csvAnswers :"+m+'-'+csvAnswers[k].length);
if (m == (csvAnswers[k].length-1))
csvData = csvData + '"' + csvAnswers[k][m].toString() + '"';
else
csvData = csvData + '"' + csvAnswers[k][m].toString() + '"' + ',';
}
csvData = csvData+"\r\n";
//csvData = csvData + '"' + csvAnswers[csvAnswers.length - 1] + '"' + '\r\n';
}
// csvData = csvData + '"' + csvAnswers[csvAnswers.length - 1] + '"' + '\r\n';
gs.log(" csvData : "+csvData);
var sa = new GlideSysAttachment();
sa.write(gr, fileName, 'application/csv', csvData);
}
Please mark this response as correct or helpful if it assisted you with your question.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-02-2019 03:13 AM
Thanks Sanjiv, It works perfectly!!!
Abhishek Gardade