我正在尝试将数据从JSON格式移动到SharePoint列表。我从中提取JSON的数据库每个请求限制为500个项目,因此我使用EPOCH时间进行多次调用以获取所有数据。我能够完美地提取所有数据,但是当我尝试将其放入SharePoint列表时,我开始遇到问题。前515个项目将添加到SharePoint列表中,没有任何问题,但之后的任何其他项目都不会进入SharePoint列表。进入SharePoint列表的最后一次EPOCH时间是1523302307,EPOCH时间大于该时间的任何项目由于某种原因都不会被放入列表中。
当项目未添加到SharePoint列表时,OnQueryFailed()
函数会显示
请求失败。专栏''不存在。它可能已被其他用户删除。
我的代码片段如下。
function testDatabase() {
var settingObj = {
sinceDateTime: '0',
dynoCode: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx',
custCode: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx',
formGUID: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx',
getJSONURL: 'https://www.xxxxxxxxxx.net/api/api/xxxx'
};
var columnArray = ['Quandrant', 'MapNumber', 'Picture1', 'Picture2', 'PoleOwner', 'PoleClass', 'PoleSize', 'PowerTagNumber', 'TelephoneTagNumber', 'AttachmentHeight', 'Guying', 'StreetLightAttached', 'TransformerPole', 'ExistingFiber', 'ExistingCopper', 'Grounds', 'MR1AtMidspanClearanceViolation', 'MR1ClearanceViolation', 'MR2PoleTransferRequired', 'MR3DownguyOrAnchorDeficiency', 'MR4BrokenLashingWire', 'MR5DamagedOrKinkedCoaxOrFiber', 'MR6DropTransferRequired', 'MR7TemporaryCoaxOrFiberCable', 'MR8DamagedElectronics', 'MR9PlaceOrRepairGroundOrBond', 'MR10DrpSplttrOrInsfntTapPrts', 'MR11PedOrVltOrLockbxDmged', 'PoleReplacement', 'PoleGrade', 'HouseCount', 'BuildingInformation'];
$.getJSON(settingObj.getJSONURL, {
sinceDateTime: settingObj.sinceDateTime,
custCode: settingObj.custCode,
dynoCode: settingObj.dynoCode,
formGUID: settingObj.formGUID
}).done(function (data) {
var clientContext = new SP.ClientContext(siteUrl);
var oList = clientContext.get_web().get_lists().getByTitle('testlist2');
var itemCreateInfo = new SP.ListItemCreationInformation();
$.each(data, function (i, item) {
var contentArray = data[i].FormFieldsList;
this.oListItem = oList.addItem(itemCreateInfo);
this.oListItem.set_item('Title', data[i].resourceName);
this.oListItem.set_item('SinceDateTime', data[i].FormUpdatedDate);
var self = this;
$.each(contentArray, function (i1, item2) {
self.oListItem.set_item(columnArray[i1], contentArray[i1].FieldValue);
console.log(contentArray[i1].FieldValue);
});
this.oListItem.update();
clientContext.load(this.oListItem);
clientContext.executeQueryAsync(onQuerySucceeded, onQueryFailed);
});
console.log('Rows returned: ' + data.length);
console.log(data);
}).fail(function (jqXHR, textStatus, err) {
console.log('Error on web service call: ' + err + ' Text Status: ' + textStatus + ' Message: ' + jqXHR.responseXML);
});
}
function onQuerySucceeded() {
console.log('Item created!');
}
function onQueryFailed(sender, args) {
console.log('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
答案 0 :(得分:0)
我想出了这个问题!我导入的数据集包含32列与我创建的数组相匹配的项目,但是在第515项之后,数据集切换为33列,这解释了我收到的错误。我想我应该发布我的答案,以防将来有人遇到这个问题。