Trying to insert data pulled from API into the table using scheduled job but no data gets inserted
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-13-2024 10:42 PM - edited 04-13-2024 10:43 PM
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();
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-14-2024 12:41 AM
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....