SharePoint Online: เพิ่ม/อัปเดต/ลบจำนวนมากเร็วขึ้นด้วย New-PnPBatch ใน PowerShell
โมดูล PnP PowerShell นำความสามารถในการดำเนินการจำนวนมากเป็นชุดใน SharePoint Online โดยใช้ New-PnPBatch cmdlet สิ่งนี้มีประโยชน์อย่างยิ่งเมื่อต้องจัดการกับรายการขนาดใหญ่ด้วยการดำเนินการสร้าง แก้ไข หรือลบ การดำเนินการ PnP Batch จะถูกเร่งและลดเวลาดำเนินการลงค่อนข้างมาก และให้ประสิทธิภาพที่เร็วขึ้น ตอนนี้คุณสามารถดำเนินการดังกล่าวเป็นกลุ่ม แทนที่จะดำเนินการแต่ละคำสั่งทีละคำสั่ง
เพิ่มรายการ SharePoint Online เป็นกลุ่ม:
ฉันพยายามแทรก 1,000 รายการลงในรายการ และใช้เวลาเพียง 25 วินาทีกับฟีเจอร์แบบแบตช์ใหม่ของ PnP PowerShell ในขณะที่วิธี Add-PnPListItem ปกติจะใช้เวลา 250 วินาทีในการเพิ่ม 1,000 รายการลงในรายการ นี่คือตัวอย่าง:
$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
ที่นี่ แทนที่จะส่งคำขอแต่ละรายการโดยตรงไปยังไซต์ SharePoint Online ด้วย Add-PnPListItem cmdlet เราได้แบทช์คำขอเหล่านั้นด้วยตัวแปร $Batch จากนั้นแบทช์จะถูกส่งไปยัง SharePoint Online โดยใช้ Invoid-PnPBatch cmdlet
อัปเดตรายการ SharePoint Online ในชุดงาน:
เวลาในการประมวลผลอาจเป็นฝันร้ายเมื่อต้องรับมือกับข้อมูลจำนวนมาก โชคดีที่ชุด cmdlet ของ PnP PowerShell ช่วยลดเวลาดำเนินการได้ประมาณ 10 เท่าเมื่อเทียบกับวิธีการทั่วไป วิธีการชุดงานไม่เพียงแต่ช่วยลดเวลาดำเนินการเท่านั้น แต่ยังส่งคำขอไปยังเซิร์ฟเวอร์น้อยลงเพื่อให้คุณสามารถหลีกเลี่ยงปัญหาการควบคุมปริมาณใน SharePoint Online
#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
จะลบรายการสินค้าเป็นกลุ่มได้อย่างไร?
ใช้เวลาประมาณ 50 วินาทีในการลบ 1,000 รายการออกจากรายการ เป็นเรื่องที่น่าสังเกตว่าไม่ใช่ว่า cmdlets ทั้งหมดจะรองรับการดำเนินการแบบแบตช์ในปัจจุบัน แต่ฉันคิดว่าการรองรับสำหรับการประมวลผลแบบแบตช์จะถูกเพิ่มใน cmdlets ที่เกี่ยวข้องเร็วๆ นี้
$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
ได้รับข้อผิดพลาด "ไม่รู้จัก PnPBatch ใหม่" หรือไม่ อัปเดตโมดูล PowerShell ของคุณ! ถ้าคุณต้องการสร้างไฟล์จำลองจำนวนมากเพื่อการทดสอบ ให้ใช้: วิธีสร้างไฟล์จำนวนมากใน SharePoint Online โดยใช้ PowerShell
