- 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
‎08-14-2020 12:41 AM
Hi All,
I did script the same way and I have a similar fix script.
Is there any possibility to convert this to Script Include and add style/formatting like making text/header bold.
Adding colours.
If so, could you please let me know on how to do it.
My script as follows:
function copyApplicationfiles(gr) {
output("\n APPLICATION FILES");
var classname = '';
var records = [];
var sno = 1;
var sdescription = '';
var namearr ='';
while (gr.next()) {
var str = String(gr.sys_update_name);
var rest = str.substring(0, str.lastIndexOf("_") + 1).slice(0, -1);
var last = str.substring(str.lastIndexOf("_") + 1, str.length);
sdescription = '';
if (last.length == 32 && gr.sys_class_name.getDisplayValue() != "Form") {
var tab = new GlideRecord(rest);
//gs.info("rest" +rest);
//gs.info("last"+last);
if (tab.get('sys_id', last)) {
if (tab.short_description !== undefined) {
var myString =tab.short_description ;
mystring.replace(/,/g,"; "); // Replace the commas with semi-colon-space
mystring.split(",").join("; ");
//sdescription = tab.short_description;
}
}
}
if (gr.sys_class_name != classname) {
classname = String(gr.sys_class_name);
sno = 1;
output("_______________________________________________________________________________\n");
output("Class Name: "+ gr.sys_class_name.getDisplayValue());
output("S.NO"+'\t'+"NAME" + '\t' + "CLASS NAME" +'\t' + "SHORT DESCRIPTION" + '\t' + "CREATED BY" );
}
output(sno + '\t' + gr.sys_name + '\t' + gr.sys_class_name.getDisplayValue() + '\t' + mystring + '\t' + gr.sys_created_by);
sno++;
}
}
function download(filename, data) {
var blankInc = new GlideRecord("ecc_queue");
blankInc.agent = "Background Script";
blankInc.topic = "Output: " + filename;
blankInc.name = filename;
blankInc.source = "Application files";
blankInc.insert();
// Replace /t with ,
data = data.replace(/\t/g, ',');
var attachment = new Attachment();
var attachmentRec = attachment.write("ecc_queue", blankInc.sys_id.toString(), filename, "text/csv", data);
var attachRec = new GlideRecord("sys_attachment");
attachRec.addQuery("table_sys_id", blankInc.sys_id.toString());
attachRec.addQuery("file_name", filename);
attachRec.query();
attachRec.next();
var url = "/sys_attachment.do?sys_id=" + attachRec.sys_id.toString() + "&view=true";
gs.print("\n\n");
gs.print("\n\n");
gs.setRedirect(url);
//blankInc.deleteRecord();
}
function output(str) {
fileoutputstr += str + '\n';
}
var fileoutputstr = "";
var appID = '18351d53eb32120034d1eeea1206fe79';
var gr = new GlideRecord("sys_metadata");
gr.addQuery('sys_scope', appID);
gr.orderBy('sys_class_name');
gr.query();
while (gr.next()) {
output("APPLICATION NAME :" + gr.sys_scope.name);
copyApplicationfiles(gr);
download('ApplicationFiles_output.csv', fileoutputstr);
}
Thanks,
Bhavani
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎04-15-2025 09:33 PM
@SanjivMeher will this work fine if my data has "," in it?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎04-21-2025 01:08 PM
It should..You need to try it out
Please mark this response as correct or helpful if it assisted you with your question.