Friday, 1 August 2014

Example of SPService GetListItems with CAML and Deleting items one by one

var CamlQuery = "<Query><Where><Eq><FieldRef Name='List_Column_Internal_Name'/><Value Type='Text'>F</Value></Eq></Where></Query>";
var CamlViewFields = "<ViewFields><FieldRef Name='List_Column_Internal_Name' /></ViewFields>";
$().SPServices({
 operation: "GetListItems",
 webURL: "Web_URL",
 listName: "Scenarios",
 async: false,
 CAMLRowLimit: 1000,
 CAMLQuery: CamlQuery,
 CAMLViewFields: CamlViewFields,
 completefunc: function (xData, Status) {
  var cnt = 1;
  var dCnt = 1;
  $(xData.responseXML).find("z\\:row").each(function () {
   //Delete records
   $().SPServices({
     operation: "UpdateListItems",
     webURL: "Web_URL",
     async: true,
     debug: true,
     batchCmd: "Delete",
     listName: "Scenarios",
     ID: $(this).attr("ows_ID"),
     completefunc: function (xData, Status) {
     console.log(Status + dCnt);
     dCnt = dCnt + 1;
     }
   });
   cnt = cnt + 1;
   });
 }
});

In case, if you are using jQuery 1.7+, the syntax you are using to find the z:row elements no longer works. Use the SPFilterNode function instead.

So the code line $(xData.responseXML).find("z\\:row") will be $(xData.responseXML).SPFilterNode("z:row").