The Zurich release has arrived! Interested in new features and functionalities? Click here for more

Trying to insert data pulled from API into the table using scheduled job but no data gets inserted

SNewbies
Tera Contributor

Hello!

I am getting data from outbound get rest message from third party app. I created an array of objects to store column id, column name, and value. Now I am trying to put the data from an array of object into the ServiceNow table 'XYZ' which holds matching column name as of the data. Records are getting created but there is no data in the records. Please refer to the script I tried below. Thank you

 

var dataObject =

{ "page": 1, "total_pages": 3, "count": 30, "limit": 10, "offset": 0, "next_params": { "offset": 10, "limit": 10 }, "previous_params": null, "next_link": "", "previous_link": null, "results": { "columns": [ { { "type": "integer", "id": "57a0e63b-5306-4152-9d19-468904573654", "name": "EMP ID:" }, { "type": "string", "id": "f125797e-2b47-47ff-a8ef-797580234543", "name": "Status:" }, { "type": "string", "id": "dedca38-e1e6-4349-b082-236898709009", "name": "First Name:" }, { "type": "string", "id": "7779ae87-9290-43af-8ef2-234567898766", "name": "Last Name:"}, ],
"data": [ { "57a0e63b-5306-4152-9d19-468904573654": "298", "f125797e-2b47-47ff-a8ef-797580234543": "Active", "6dedca38-e1e6-4349-b082-236898709009": "John", "7779ae87-9290-43af-8ef2-234567898766": "Doe" }, { "57a0e63b-5306-4152-9d19-468904573654": "299", "f125797e-2b47-47ff-a8ef-797580234543": "Active",
"6dedca38-e1e6-4349-b082-236898709009": "Bob", "7779ae87-9290-43af-8ef2-234567898766": "Marley" }, { "57a0e63b-5306-4152-9d19-468904573654": "300", "f125797e-2b47-47ff-a8ef-797580234543": "Active", "6dedca38-e1e6-4349-b082-236898709009": "Jack", "7779ae87-9290-43af-8ef2-234567898766": "Sparrow" } ] }

 

var records = [];

for (var i = 0; i < dataObject.results.data.length; i++) {
var userData = dataObject.results.data[i];

for (var j = 0; j < dataObject.results.columns.length; j++) {
var column = dataObject.results.columns[j];
var columnName = column.name;
var columnId = column.id;
var columnValue = userData[columnId];

var record = {
id: columnId,
name: columnName,
value: columnValue
};

records.push(record);
}
}

//gs.print("Records: " + records + "\n");
// Printing the array of records
gs.print("Records: \n" + JSON.stringify(records) + '\n');
gs.print("Records length: " + records.length);

var workerArr = JSON.stringify(records);
gs.print("Worker Arr: " + workerArr.length);

var import_data = GlideRecord('u_xyz')

for(var wor = 0 ; wor < records.length; wor++){
import_data.initialize();

for(var test in records[wor]){
import_data.setValue(test, records[wor][test]);
}
// Insert the record
import_data.insert();
}

1 REPLY 1

Sohail Khilji
Kilo Patron
Kilo Patron

Try this :

 

var records = [];

for (var i = 0; i < dataObject.results.data.length; i++) {
var userData = dataObject.results.data[i];

for (var j = 0; j < dataObject.results.columns.length; j++) {
var column = dataObject.results.columns[j];
var columnName = column.name;
var columnId = column.id;
var columnValue = userData[columnId];

var record = {
id: columnId,
name: columnName,
value: columnValue
};

records.push(record);
}
}

//gs.print("Records: " + records + "\n");
// Printing the array of records
gs.print("Records: \n" + JSON.stringify(records) + '\n');
gs.print("Records length: " + records.length);
var workerArr = JSON.stringify(records);
gs.print("Worker Arr: " + workerArr.length);
var import_data = GlideRecord('u_xyz')
for(var wor = 0 ; wor < records.length; wor++){
import_data.initialize();
for(var test in records[wor]){
import_data.setValue(test, records[wor][test]);
import_data.insert();
}
}

☑️ Please mark responses as HELPFUL or ACCEPT SOLUTION to assist future users in finding the right solution....

LinkedIn - Lets Connect