JavaScript per cancellare tutti i fle di una document library di SharePoint 2016 semplicemente incollandolo nella developer toolbar (F12) del Browser.

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");
	}
}
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:

JavaScript: Esegue la cancellazione

await executeDeleteItems("/", "TestMultiLookupPowerBI", "Title eq 'Line3'");
I tre parametri sono:
  • 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,
Tags:
SharePoint499 SharePoint 2013138 SharePoint 201669 Browser26 JavaScript185
Potrebbe interessarti anche: