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 update values in a custom multi lookup field Field (table) of MS Project using JavaScript/jQuery?

  Updating values in the custom multi lookup field Field of MS Project using JavaScript/jQuery: First of all we need to know the steps to update/add details in a Project of Project Server  Step 1: CheckOut a Project Step 2: Update detals in same as in Step 1 Project Step 3: Publish a Project Step 4: CheckIn a Project We always in need to follow the above steps to update any Project to MS Project/Project Server. Same we need to follow in code too.    //Step 1: First, we need to define all the required functions, the below Functions are callback functions             window.checkOutPWAProject = function (projectId, callBack) {                 var checkOutURL = _spPageContextInfo.webAbsoluteUrl + "/_api/ProjectServer/Projects('" + projectId + "')/checkOut()";                 $.ajax({                     url: chec...

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 trigger a MS Flow Using Jquery/JavaScript?

Trigger a  MS Flow Using jQueryuery/JavaScript: To trigger an MS Flow first we need to create an workflow. Next we need to obtain its URL for triggering it. In below example, we are starting a workflow which is taking email address, email subject and email body as parameter and sending mail to email of related user. //This function triggers the microsoft flow  function beginMSFlow() {          var httpPostUrl = "obtain URL from MS flow";          var postData = {              emailadress:'raju@testdev.com', // Object keys must be similar as you used in the MS flow             emailSubject:'Testing Raju',              emailBody:'Hello User\n Welcome, You just trigger a MS Flow'             };           $.ajax({           url: httpPostUrl,    ...