SharePoint Online: PowerShell'deki Yeni PnPBatch ile Daha Hızlı Toplu Ekleme/Güncelleme/Silme
PnP PowerShell Modülü, Yeni-PnPBatch cmdlet'ini kullanarak SharePoint Online'da gruplar halinde toplu işlemler gerçekleştirme olanağı sağlar. Bu, oluşturma, düzenleme veya silme işlemleriyle daha büyük listelerle uğraşırken son derece faydalıdır. PnP Toplu işlemleri hızlandırılır ve yürütme süresini nispeten azaltır ve daha hızlı performans sağlar. Artık her komutu tek tek yürütmek yerine bu tür işlemleri toplu olarak gerçekleştirebilirsiniz.
SharePoint Çevrimiçi Liste Öğelerini Toplu Olarak Ekleme:
Bir listeye 1000 öğe eklemeyi denedim ve bu, yeni PnP PowerShell'in toplu özelliği sayesinde yalnızca 25 saniye sürdü. Oysa alışılagelmiş Add-PnPListItem yönteminde 1000 öğenin listeye eklenmesi 250 saniye sürüyordu. İşte bir örnek:
$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
Burada, her isteği Add-PnPListItem cmdlet'i ile doğrudan SharePoint Online sitesine göndermek yerine, bunları $Batch değişkeni ile toplu hale getirdik ve ardından toplu iş, Invoke-PnPBatch cmdlet'i kullanılarak SharePoint Online'a gönderildi.
SharePoint Çevrimiçi Liste Öğelerini Toplu Olarak Güncelleyin:
Büyük miktarda veriyle uğraşırken işlem süresi bir kabusa dönüşebilir. Neyse ki, PnP PowerShell toplu cmdlet'leri, geleneksel yöntemlere kıyasla yürütme süresini yaklaşık 10 kat azaltır. Toplu yöntem yalnızca yürütme süresini azaltmakla kalmaz, aynı zamanda sunucuya daha az sayıda istek göndererek SharePoint Online'da kısıtlama sorununu önleyebilirsiniz.
#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
Liste Öğelerini Toplu Olarak Silme İşlemi Nasıl Yapılır?
Bir listeden 1000 öğenin silinmesi yaklaşık 50 saniye sürdü. Bugün tüm cmdlet'lerin toplu işlemi desteklemediğini belirtmekte fayda var, ancak toplu işlem desteğinin yakın zamanda ilgili cmdlet'lere ekleneceğini düşünüyorum.
$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
"Yeni-PnPBatch tanınmadı" hatası mı alıyorsunuz? Peki, PowerShell modülünüzü güncelleyin! Sınama amacıyla çok sayıda sahte dosya oluşturmak istiyorsanız şunu kullanın: PowerShell kullanarak SharePoint Online'da toplu dosyalar nasıl oluşturulur?
