مقدمه ای بر برنامه مهاجرت شیرپوینت
در مقاله امروز، دانش خود را که در طول یک پروژه مهاجرت به دست آورده ام به اشتراک می گذارم. پروژه ما شامل انتقال از شیرپوینت 2010 به شیرپوینت 2013 است.
معمولاً یک پروژه مهاجرت شیرپوینت شامل پیکربندی تعداد صفحات با قسمت های مختلف وب و نمای لیست xslt در صفحات سایت مورد نظر از سایت منبع است.
در مهاجرت ما حدود 60 تا 65 سایت برای انتقال به نسخه 2013 داشتیم و حدود 40 تا 50 سایت وجود داشت که فقط با قسمت های وب xslt لیست نمایش در صفحه اصلی پیکربندی شده بودند و ما باید آن بخش های وب را در صفحه اصلی پیکربندی کنیم. صفحات اصلی سایت 2013. طبق تجزیه و تحلیل، تقریباً همه آن 40 تا 50 سایت دارای بخشهای وب مشابهی بودند که در صفحه اصلی پیکربندی شدهاند، از این رو تیم ما تصمیم گرفت یک اسکریپت PowerShell بنویسد که بخش وب پیشفرض XSLT را در صفحات اصلی سایتهای مهاجرت شده در سال 2013 اضافه میکند.
آماده سازی فایل CSV به عنوان ورودی
باید یک فایل CSV با ستون های مناسب و داده های مورد نیاز آماده کنیم تا اسکریپت داده ها را از فایل واکشی کند. فایل CSV همانطور که آماده شده بود فقط یک ستون به نام "Site URL" داشت که آدرس سایت سایت مهاجرت شده در سال 2013 است. برای اجرای اسکریپت PowerShell، مدیر باید مسیر فایل CSV (پارامتر اجباری) را ارائه دهد.
توضیح اسکریپت PowerShell
- Add - PSSnapin microsoft.sharepoint.powershell
- Clear - Host
- function GetList() {
- Param([Parameter(Mandatory = $true)]
- [string] $path)
- try {
- $csvcontents = Import - Csv - Path $path
- foreach($content in $csvcontents) {
- $siteurl = Get - SPWeb - Identity $content.
- 'Site Url'
- $welcomepageurl = $siteurl.RootFolder.WelcomePage
- $list1 = $siteurl.Lists.TryGetList('Announcements')
- AddWebPart($list1)
- $list2 = $siteurl.Lists.TryGetList('Documents')
- AddWebPart($list2)
- $list3 = $siteurl.Lists.TryGetList('Shared Documents')
- AddWebPart($list3)
- }
- } catch {
- $exception = $_.Exception.Message
- $exception | Out - File "your log path"
- }
- }
- GetList تابعی است که در شروع فراخوانی می شود و ما این تابع را با پارامتر اجباری که مسیر فایل CSV است فراخوانی می کنیم.
- ما تمام محتویات را از فایل CSV دریافت می کنیم، با استفاده از ماژول import-CSV در PowerShell و حلقه زدن از طریق هر یک، URL سایت را دریافت می کنیم و برای هر یک از URL های سایت، URL صفحه خوش آمدگویی را دریافت می کنیم.
- مرحله بعدی شامل دریافت لیست مورد نیاز از سایت فعلی است و ما تابع AddWebPart را با ارسال لیست به دست آمده به عنوان پارامتر اجباری برای تابع فراخوانی می کنیم.
- function AddWebPart() {
- Param([microsoft.sharepoint.splist] $list1)
- try {
- $wpmgr = $siteurl.GetLimitedWebPartManager($welcomepageurl, [System.Web.UI.WebControls.WebParts.PersonalizationScope]::Shared)
- $listviewwebpart = New - Object Microsoft.SharePoint.WebPartPages.XsltListViewWebPart
- $listviewwebpart.Title = $list1.Title
- $listviewwebpart.ChromeType = [System.Web.UI.WebControls.WebParts.PartChromeType]::TitleAndBorder
- $listviewwebpart.ListName = $list1.ID.ToString("B")
- $listviewwebpart.ViewGuid = $list1.DefaultView.ID.ToString("B")
- $listviewwebpart.ExportMode = "All"
- $wpmgr.AddWebPart($listviewwebpart, "Header", 1)
- } catch {
- $exception = $_.Exception.Message
- $exception | Out - File "your log path"
- }
- }
GetList
- در این تابع، نمونه مدیریت Webpart را دریافت می کنیم که برای سایت فعلی با عبور از URL صفحه خوش آمدگویی و محدوده شخصی سازی ایجاد می شود (برای دسترسی به ویژگی های مختلف کنترل قطعات وب استفاده می شود) و محدوده شخصی سازی تنظیم شده است که به اشتراک گذاشته شود. ، که نشان می دهد برای همه کاربران برای کنترل های شخصی سازی شده در صفحه اعمال می شود و می تواند تغییرات صفحه را ذخیره کند.
- ما در حال ایجاد نمونه جدید XsltListViewWebpart هستیم، و به دنبال آن ویژگی های مختلفی مانند عنوان، chrometype (این برای تنظیم ظاهر بخش وب در صفحه استفاده می شود)، ListName. این ویژگی معمولاً لیست شناسه لیست است، ViewGuid راهنمای تنظیم شده برای بخش وب است. در اینجا راهنمای مقدار نمای پیش فرض لیست است که به عنوان پارامتر به تابع ارسال می کنیم
- ExportMode=”All” نشان می دهد که کاربر می تواند ویژگی های بخش وب را به عنوان یک فایل XML صادر کند (معمولاً این به طور پیش فرض غیرفعال است).
- مرحله آخر اضافه کردن قسمت وب XSLTListView با ناحیه Web Part و Zone Id در متد AddWebpart است و به دنبال آن تابع GetList خود را فراخوانی می کنیم.
پس از اجرای موفقیت آمیز اسکریپت، شما باید بتوانید سه بخش وب XSLT را در صفحه اصلی سایت های 2013 مشاهده کنید.
بهترین تمرین
همیشه تابع یا کد خود را با بلوک try-catch وارد کنید و استثنا را با محتوای مناسب ثبت کنید، به طوری که اگر یک اسکریپت با مشکل مواجه شد، بتوانید ببینید به دلیل مشکلی که انجام نشده است.
نکته 1
اسکریپت بالا فقط برای سایت هایی استفاده می شود که صفحه اصلی را به عنوان صفحه وب قسمت دارند. اگر همین اسکریپت در سایت هایی اجرا شود که صفحات ویکی را به عنوان صفحه اصلی دارند، قسمت وب اضافه می شود، اما اگر سعی کنید صفحه را ویرایش کنید، نمی توانید بخش های وب را ببینید و دلیل این امر ویکی است. صفحه هیچ منطقه قسمت وب ندارد.
نکته 2
اگر همان اسکریپت پس از یک بار اجرا بدون تغییر در هیچ یک از پارامترها دوباره اجرا شود، نمی توانید صفحه وب بخش نشان داده شده توسط آن را باز کنید و خواهید دید که "بخش وب با این شناسه از قبل وجود دارد" ، از آنجایی که راهنمای بخش وب را با شناسه اضافه کرده ایم که برابر با List Default View ID است، زیرا برای اولین بار اضافه می شود و اجازه اضافه کردن مجدد آن را به ما نمی دهد.