Skip to content

Commit 67b334a

Browse files
ref #1122 Add handling for excluded headers in CSV export
1 parent dff4e78 commit 67b334a

File tree

1 file changed

+16
-7
lines changed

1 file changed

+16
-7
lines changed

_c8oProject/sequences/APIV2_csv.yaml

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ responseTimeout: 600
1111
Otherkey = "Other";
1212
const logLevel = "warn";
1313
const DEFAULT_BATCH_SIZE = 1000;
14+
var excludedHeaderIndexes = {};
1415
1516
var writeCsvRow = function(writer, row, options) {
1617
var stringDelimiter = options.stringDelimiter || ''"'';
@@ -34,12 +35,15 @@ responseTimeout: 600
3435
3536
var buildHeaderRow = function(headers, key) {
3637
var headerRow = [];
38+
excludedHeaderIndexes = {};
39+
if (!Array.isArray(headers)) {
40+
return headerRow;
41+
}
3742
for (var idx = 0; idx < headers.length; idx++) {
3843
try {
3944
var header = headers[idx];
4045
if (!header) {
41-
// si un header null existe, garde la place
42-
headerRow.push("");
46+
excludedHeaderIndexes[idx] = true;
4347
continue;
4448
}
4549
@@ -75,16 +79,20 @@ responseTimeout: 600
7579
7680
7781
var buildDataRow = function(nestedResponse, reverse_separator) {
82+
if (!Array.isArray(nestedResponse)) {
83+
return [];
84+
}
7885
var currentLineResponse = [];
79-
var i = 0;
8086
8187
for (var colIndex = 0; colIndex < nestedResponse.length; colIndex++) {
88+
if (excludedHeaderIndexes && excludedHeaderIndexes[colIndex]) {
89+
continue;
90+
}
8291
var col = nestedResponse[colIndex];
8392
8493
if (col == null) {
8594
// ➜ préserver l’alignement
8695
currentLineResponse.push("");
87-
i++;
8896
continue;
8997
}
9098
@@ -118,7 +126,6 @@ responseTimeout: 600
118126
}
119127
}
120128
}
121-
i += nbCols;
122129
break;
123130
124131
default:
@@ -128,7 +135,6 @@ responseTimeout: 600
128135
} else {
129136
currentLineResponse.push(value != null ? ("" + value) : "");
130137
}
131-
i++;
132138
break;
133139
}
134140
}
@@ -239,6 +245,9 @@ responseTimeout: 600
239245
if (rows.length === 0) break;
240246
241247
for(var e of rows){
248+
if (!Array.isArray(e)) {
249+
continue;
250+
}
242251
var row = buildDataRow(e, reverse_separator);
243252
writeCsvRow(writer, row, options);
244253
rowsWritten++;
@@ -340,4 +349,4 @@ responseTimeout: 600
340349
comment: formId
341350
value: 0
342351
↓li [variables.RequestableVariable-1759419415852]:
343-
comment: formId
352+
comment: formId

0 commit comments

Comments
 (0)