Weboldal keresés

SharePoint Online: Tömeges hozzáadása/frissítés/törlés gyorsabb a New-PnPBatch segítségével a PowerShellben


A PnP PowerShell-modul lehetővé teszi a tömeges műveletek kötegelt végrehajtását a SharePoint Online-ban a New-PnPBatch parancsmag használatával. Ez rendkívül hasznos, ha nagyobb listákkal foglalkozik létrehozási, szerkesztési vagy törlési műveletekkel. A PnP Batch műveletek felgyorsulnak, és viszonylag csökkentik a végrehajtási időt, és gyorsabb teljesítményt nyújtanak. Így most ezeket a műveleteket tömegesen is végrehajthatja, nem pedig az egyes parancsokat külön-külön.

SharePoint Online listaelemek tömeges hozzáadása:

Megpróbáltam 1000 elemet beszúrni egy listába, és az új PnP PowerShell kötegelt funkciójával mindössze 25 másodpercig tartott. Míg a szokásos Add-PnPListItem metódusban 250 másodpercbe telt 1000 elem hozzáadása a listához. Íme egy példa:


$SiteURL = "https://Crescent.sharepoint.com/sites/Operations"
$ListName = "Random"

#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive

#Create a New Batch
$Batch = New-PnPBatch

#Add List Items
For($i=1; $i-le 1000; $i++)
{
    Add-PnPListItem -List $ListName -Values @{"Title" = $i} -Batch $Batch
}

#Send Batch to the server
Invoke-PnPBatch -Batch $Batch

Itt ahelyett, hogy minden kérést közvetlenül a SharePoint Online webhelyre küldtünk volna az Add-PnPListItem parancsmaggal, a $Batch változóval kötegeltettük őket, majd a köteg elküldésre kerül a SharePoint Online-nak az Invoke-PnPBatch parancsmag segítségével.

A SharePoint Online listaelemeinek frissítése kötegekben:

A feldolgozási idő rémálom lehet, ha nagy mennyiségű adatot kezel. Szerencsére a PnP PowerShell kötegelt parancsmagok körülbelül 10-szer csökkentik a végrehajtási időt a hagyományos módszerekhez képest. A kötegelt módszer nemcsak a végrehajtási időt csökkenti, hanem kevesebb kérést is küld a kiszolgálónak, így elkerülheti a SharePoint Online szabályozási problémáját.


#Create a New Batch
$Batch = New-PnPBatch

#Update List Items
For($i=1; $i-le 1000; $i++)
{    
    Set-PnPListItem -List $ListName -Identity $i -Values @{"Title" = "Updated Item:"+$i} -Batch $Batch
}

#Send Batch to the server
Invoke-PnPBatch -Batch $Batch

Hogyan lehet tömegesen törölni a listaelemeket kötegekben?

Körülbelül 50 másodpercbe telt 1000 elem törlése egy listáról. Érdemes megemlíteni, hogy ma nem minden parancsmag támogatja a kötegelt működést, de feltételezem, hogy a kötegelés támogatása hamarosan hozzáadódik a megfelelő parancsmagokhoz.


$SiteURL = "https://Crescent.sharepoint.com/sites/Operations"
$ListName = "Random"

#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive

#Get List Items to Delete
$ListItems =  Get-PnPListItem -List $ListName -PageSize 500

#Create a New Batch
$Batch = New-PnPBatch

#Delete All List Items
ForEach($Item in $ListItems)
{    
     Remove-PnPListItem -List $ListName -Identity $Item.ID -Batch $Batch
}

#Send Batch to the server
Invoke-PnPBatch -Batch $Batch

„Az új-PnPBatch nem ismerhető fel” hibaüzenetet kap? Nos, frissítse a PowerShell modult! Ha nagyszámú álfájlt szeretne létrehozni tesztelési célból, használja a következőket: Hogyan hozhat létre tömegesen fájlokat a SharePoint Online-ban a PowerShell segítségével?

Kapcsolódó cikkek