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 get list item entity type full name of a SharePoint list using REST API ?

REST API to get list item entity type full name: Bullet method (small and accurate): siteurl( AbsoluteUrl ) + /_api/Web/Lists/getbytitle('ListName')/ListItemEntityTypeFullName or   _spPageContextInfo.webAbsoluteUrl + "/_api/Web/Lists/getbytitle('SPList')/items?select=EntityTypeFullName **Use this above API just replacing absolute site URL and list name **Then put this prepared URL into browser and press enter button and obtain list entity type full name of related list. **You will get ListEntityTypeFullName like " SP.Data.EmployeeListItem " **Employee(may be a list name) How it is? Is it working or not you can tell us using comment section ?

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' :  {             ...