Retroisbest
Retroisbest

Reputation: 89

Google Apps Script - Google Sheet - Array randomly getting cannot read property

Trying to read property "deviceId" from an array pulled from our google domain, deviceId exists but the script randomly stops and i get "TypeError: Cannot read property "deviceId" from undefined." This returns 48 valid results, If i set the max results to a lower number it still stops with the same error.

This also happens to all other properties i try to read.

function chromebookdetails() {
var domain, chromebooks, page, ss, sheet, pageToken, i
domain = "mydomainnamehere"
chromebooks= new Array()
do{
page = AdminDirectory.Chromeosdevices.list("my_customer",
{domain: domain,
maxResults: 10,
pageToken: pageToken
}) 
for (i in page.chromeosdevices){
chromebooks.push(page.chromeosdevices[i])
}
pageToken = page.nextPageToken
}while(pageToken){
var row = 1
for (var i = 0; i < chromebooks.length; i++) {
var sheetData4 = onSheet.getSheetByName("chromebook") 
sheetData4.getRange(row, 1).setValue(page.chromeosdevices[i].deviceId);
Logger.log(page.chromeosdevices[i].deviceId)
row++
Logger.log(row)
}
}
}

My spreadsheet named chromebook should populate one column (for now) each row having a separate chromebook device id. What is get is 48 results (if max results is set at 1500) (I have 848 devices in total) or 8 results (if max results is set at 10)

Upvotes: 0

Views: 133

Answers (1)

Amit Agarwal
Amit Agarwal

Reputation: 11268

Replace:

sheetData4.getRange(row, 1).setValue(page.chromeosdevices[i].deviceId);

with:

sheetData4.getRange(row, 1).setValue(chromebooks[i] ? chromebooks[i].deviceId : "");

Upvotes: 1

Related Questions