为什么赢得的项目会发布到我的SharePoint列表?

时间:2018-05-10 13:43:08

标签: javascript jquery sharepoint

我正在尝试将数据从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());
}

1 个答案:

答案 0 :(得分:0)

我想出了这个问题!我导入的数据集包含32列与我创建的数组相匹配的项目,但是在第515项之后,数据集切换为33列,这解释了我收到的错误。我想我应该发布我的答案,以防将来有人遇到这个问题。