Skip to main content

How to delete a number of data at time using $batch REST API from SharePoint list?

 To delete a number of data (max-1000) at time using $batch REST API from SharePoint list:-

Use below snippet to delete records from SharePoint list. The below code will help you to delete more than 1 records at single REST API. We can able to delete upto 1000 records at time. After 1000 items, it will show error like "The current change set contains too many operations. A maximum number of '1000' operations are allowed in a change set." So do not try to delete more than 1000 records at time.
We can delete more than 1000 items using 200/300 records at a time single REST API call. We can call this deleteListItems function 5 to 6 times. 

<script>
    $(document).ready(function(){
        var data = [
        { 'ID':1'name':'Tester1','email':'tester1@gmail.com''mobile':9832145326'address':'Gurgaon, Haryana, India''company':'Param India Pvt. Limited'},
        { 'ID':2'name':'Tester1','email':'tester1@gmail.com''mobile':9832145326'address':'Gurgaon, Haryana, India''company':'Param India Pvt. Limited'},
        { 'ID':3'name':'Tester1','email':'tester1@gmail.com''mobile':9832145326'address':'Gurgaon, Haryana, India''company':'Param India Pvt. Limited'},
        { 'ID':4'name':'Tester1','email':'tester1@gmail.com''mobile':9832145326'address':'Gurgaon, Haryana, India''company':'Param India Pvt. Limited'},
        { 'ID':5'name':'Tester1','email':'tester1@gmail.com''mobile':9832145326'address':'Gurgaon, Haryana, India''company':'Param India Pvt. Limited'},
        { 'ID':6'name':'Tester1','email':'tester1@gmail.com''mobile':9832145326'address':'Gurgaon, Haryana, India''company':'Param India Pvt. Limited'},
        { 'ID':7'name':'Tester1','email':'tester1@gmail.com''mobile':9832145326'address':'Gurgaon, Haryana, India''company':'Param India Pvt. Limited'},
        { 'ID':8'name':'Tester1','email':'tester1@gmail.com''mobile':9832145326'address':'Gurgaon, Haryana, India''company':'Param India Pvt. Limited'},
        { 'ID':9'name':'Tester1','email':'tester1@gmail.com''mobile':9832145326'address':'Gurgaon, Haryana, India''company':'Param India Pvt. Limited'},
        { 'ID':10'name':'Tester1','email':'tester1@gmail.com''mobile':9832145326'address':'Gurgaon, Haryana, India''company':'Param India Pvt. Limited'},
        ];

        deleteListItems ('Test'datafunction (resultoutcome) { //Test is a SP list Name & data is coming from SP list or an app.
            if (result) {
                console.log('Items deleted Successfully');
                console.log(outcome);//Success/Error message will show in an obj
                //Note: Sometimes error will come in succes Message too. So be careful.
            } else {
                console.log('Some Error is coming');
                console.error(outcome);//Error message will show in an obj
            }
        });

        //function to generate unique GUID or ID.
        function generateID() {
            return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/gfunction (c) {
                var r = Math.random() * 16 | 0v = c == 'x' ? r : (r & 0x3 | 0x8);
                return v.toString(16);
            });
        }

        
        //Deleting data items from SharePoint list using $batch/REST API
        function deleteListItems (spListNamerecordsgoBackToParent) {
            var batchId = generateID();
            var changeSetId = generateID();
            var batchData = new Array();

            for (var i = 0i < records.lengthi++) {
                if (records[i] == undefined) {
                    return;
                }
                // create the request REST API
                var reqURL = _spPageContextInfo.webAbsoluteUrl
                    + '/_api/web/lists/getbytitle(\'' + spListName + '\')'
                    + '/items(' + records[i].ID + ')';

                // create the changeset
                batchData.push('--changeset_' + changeSetId);
                batchData.push('Content-Type: application/http');
                batchData.push('Content-Transfer-Encoding: binary');
                batchData.push('');
                batchData.push('DELETE ' + reqURL + ' HTTP/1.1');
                batchData.push('Content-Type: application/json;odata=verbose');
                batchData.push('Accept: application/json;odata=verbose');
                batchData.push('IF-MATCH: *');
                batchData.push('');
            }
            batchData.push('--changeset_' + changeSetId + '--');

            var batchBody = batchData.join('\r\n');

            batchData = new Array();

            batchData.push('--batch_' + batchId);
            batchData.push('Content-Type: multipart/mixed; boundary="changeset_' + changeSetId + '"');
            batchData.push('Content-Length: ' + batchBody.length);
            batchData.push('Content-Transfer-Encoding: binary');
            batchData.push('');
            batchData.push(batchBody);
            batchData.push('');

            batchData.push('--batch_' + batchId + '--');
            batchBody = batchData.join('\r\n');

            var reqEndpoint = _spPageContextInfo.webAbsoluteUrl + '/_api/$batch';

            var requestHeader = {
                'X-RequestDigest': $("#__REQUESTDIGEST").val(),
                'Content-Type': 'multipart/mixed; boundary="batch_' + batchId + '"'
            };

            $.ajax({
                url: reqEndpoint,
                type: 'POST',
                async: false,
                headers: requestHeader,
                data: batchBody,
                success: function (response) {
                    goBackToParent(trueresponse);
                },
                error: function (error) {
                    goBackToParent(trueerror);
                }
            });
        }
    });
</script>

Comments

Popular posts from this blog

How to send email using SharePoint REST API in jQuery/JavaScript?

  Send email using SharePoint REST API in jQuery/JavaScript: We can able to send email to the SharePoint user using below REST API on SharePoint Online. We need to load SP.js file in code. we must need to give valid SharePoint user to send email. We can able to send email to valid SharePoint user of same organization.      var   restAPI  =  _spPageContextInfo . webAbsoluteUrl  +  "/_api/SP.Utilities.Utility.SendEmail" ;      $ . ajax ({          contentType:   'application/json' ,          url:   restAPI ,          type:   "POST" ,          data:   JSON . stringify ({              'properties' :  {             ...

How to get all site users of SharePoint using REST API?

Get all users of SharePoint site using REST API: These users and its data are required to update people field of a SharePoint list. By using below snippet code we can able to get details of a user of SharePoint site.     var webURL = _spPageContextInfo.webAbsoluteUrl+"/_api/Web/SiteUsers";         $.ajax({           url: customFieldURL,           method: "GET",           headers: {             "Accept": "application/json; odata=verbose"           },           success: function (data) {            console.log(data);             data.d.results.forEach(function(cm){                     console.log(cm.Title+" - "+cm.Email+" - "+cm.Id);             });      ...