
Cancellazione item SharePoint da Console del browser
JavaScript per cancellare tutti i fle di una document library di SharePoint 2016 semplicemente incollandolo nella developer toolbar (F12) del Browser.
Questo codice crea solo la funzione executeDeleteItems, non cancella finché non viene invocato.
Prima di incollare la funzione di cancellazione (executeDeleteItems) nella console del Browser del sito SharePoint, bisogna modificare i tre parametri della funzione:
I tre parametri sono:
JavaScript: Codice base da incollare nella console del browser
async function executeDeleteItems(webUrl, listTitle, filter) {
console.log("WebUrl: " + webUrl + ", ListTitle: " + listTitle + ", Filter: " + filter);
const getItemsToDelete = async (webUrl, listTitle, filter, batchSize) => {
const url= webUrl + "_api/web/lists/GetByTitle('" +listTitle + "')/items?$filter="+filter+"&$select=Id&$top="+batchSize;
console.log("Url: " + url);
const res = await fetch(url,{method: 'GET', headers: {'Accept': 'application/json;odata=verbose'}});
if(!res.ok) {
throw new Error('Errore lettura items ' + res.status);
} else {
const data = await res.json();
const items = data.d.results;
console.log("Items: " + items.length);
const urls = items.map((item) => item['__metadata'].uri);
return urls;
}
};
const getDigest = async (webUrl) => {
const res = await fetch(webUrl + "_api/contextinfo", {method: 'POST', headers: {'Accept': 'application/json;odata=nometadata'}});
if(!res.ok) {
throw new Error('Errore get digest ' + res.status);
} else {
const jsonDigest = await res.json();
const digest = jsonDigest.FormDigestValue;
console.log("Digest", digest);
return digest;
}
};
const deleteItems = async (urls, digest) => {
const m = urls.length;
for(let i=0; i < m; i++) {
// sposta gli elementi cancellati nel cestino
const urlDel = urls[i] + "/recycle()";
console.log(i + "/" + m + ") Deleting: " + urlDel);
const options = {
method: 'POST',
headers: {
'Accept': 'application/json;odata=verbose',
'If-Match': '*',
'X-HTTP-Method': 'DELETE',
'X-RequestDigest': digest
}};
const resDel = await fetch(urlDel, options);
if(!resDel.ok) {
console.error(" Errore " + resDel.status);
} else {
console.log(' deleted');
}
}
};
console.log("START");
try {
let itemsCount = -1;
let batchCount = 0;
const batchSize = 2;
const digest = await getDigest(webUrl);
while(itemsCount !== 0) {
batchCount++;
console.log("Batch count " + batchCount);
const urls = await getItemsToDelete(webUrl, listTitle, filter, batchSize);
itemsCount = urls.length;
if(itemsCount > 0) {
await deleteItems(urls, digest);
}
}
} catch(err) {
console.error("Error", err);
} finally {
console.log("STOP");
}
}
Prima di incollare la funzione di cancellazione (executeDeleteItems) nella console del Browser del sito SharePoint, bisogna modificare i tre parametri della funzione:
JavaScript: Esegue la cancellazione
await executeDeleteItems("/", "TestMultiLookupPowerBI", "Title eq 'Line3'");
- Url del sito
- Titolo della lista
- filtro da applicare per selezionare gli items da cancellare
JavaScript
await executeDeleteItems("/sites/sitoMio", "Titolo della lista", "filtro da applicare'");
Questo script non cancella fisicamente gli items ma li sposta nel cestino (/recycle()).
Per cancellare gli item senza spostarli nel cestino togliere /recycle() dalla url nella funzione deleteItems,
Per cancellare gli item senza spostarli nel cestino togliere /recycle() dalla url nella funzione deleteItems,