Я создаю функцию, которая должна принимать элементы ответа XML и сохранять каждую итерацию элемента в отдельной строке таблицы до тех пор, пока все элементы не будут учтены.Это работает до тех пор, пока не будет возвращено более 500 учетных записей (см. здесь для получения информации об API).Затем я получаю Количество столбцов в данных не соответствует количеству столбцов в диапазоне.У данных 12, но диапазон 11. Пожалуйста, смотрите мой код ниже, спасибо за ваше время и помощь.
function testPOST(e) {
var url = "https://api.webex.com/WBXService/XMLService";
var payload = e;
var options =
{
"method" : "POST",
"payload" : payload,
"followRedirects" : true,
"muteHttpExceptions": true
};
var result = UrlFetchApp.fetch(url, options);
if (result.getResponseCode() == 200) {
// var od = XmlService.parse(result),
// pm = XmlService.getPrettyFormat().format(od);
// Logger.log(pm);
Logger.log(result.getResponseCode() + "\n\n");
/* Preferred Approach */
var ss = SpreadsheetApp.openById("ID").getSheetByName("Output");
var header = [],
values = [],
root = XmlService.parse(result).getRootElement(),
c1 = root.getChildren();
for(var i = 0; i < c1.length;i++){
if (c1[i].getName() == "body") {
var c2 = c1[i].getChildren()[0].getChildren();
for (var j = 0; j < c2.length; j++) {
if (c2[j].getName() == "user") {
var c3 = c2[j].getChildren();
var temp = [];
for (var k = 0; k < c3.length; k++) {
if (j == 0) header.push(c3[k].getName());
temp.push(c3[k].getValue());
}
values.push(temp);
}
}
}
}
values.unshift(header);
Logger.log(values);
ss.getRange(1, 1, values.length, values[0].length).setValues(values);
}
else
{
Logger.log("\nFAILED ERROR:\n" + result.getContentText());
}
}
function myFuction() {
var siteName = "SITE",
webexID = "ADMIN",
pwd = "PASSWORD",
startFrom = 0;
var xmlst = '<?xml version="1.0" encoding="UTF-8"?>';
var xmlbdy = '<message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">'
+'<header><securityContext>'
+'<siteName>'+siteName+'</siteName>'
+'<webExID>'+webexID+'</webExID>'
+'<password>'+pwd+'</password>'
+'</securityContext></header>'
+'<body><bodyContent xsi:type="java:com.webex.service.binding.user.LstsummaryUser">'
+'<listControl><startFrom>1</startFrom><maximumNum>500</maximumNum><listMethod>AND</listMethod></listControl>'
+'<order><orderBy>UID</orderBy><orderAD>ASC</orderAD></order>'
+'<active>ACTIVATED</active>'
+'<dataScope></dataScope>'
+'</bodyContent></body></message>';
xmlst += xmlbdy;
var document = XmlService.parse(xmlst);
var output = XmlService.getPrettyFormat().format(document);
// Logger.log("\n" + output + "\n\n\n");
testPOST(output);
}