新 サブサイト→トップレベルサイト - (1) - [技術情報]
ご無沙汰してます。
しばらく更新してませんでしたがまた徐々に更新をしていきたいと思います。
まずはおわびから。一番最初に書いた記事について間違いがありました。(http://blog.so-net.ne.jp/SharePoint_Programing/2007-05-15) この方法ではワークスペースが移行できなかったり、エラーになる場合があり、実際の現場では使えませんでした。不完全な記事を掲載してしまい申し訳ありません。
そこで、できるかはわかりませんがサブサイト→トップレベルサイトの移行ツールを作成してみようと思います。(懲りもせず自分で試行錯誤の末、完成させようと考えています。間違っている可能性も多々あるとは思いますがご容赦ください) m(_ _)m
まずは要件として大きすぎるコンテンツDBのサブサイトを別のコンテンツDBに移行するというものを考えます。実現方法は自分が得意とするWindowsAPPで実現しようと思います。WSSではトップレベルサイトはSPSite、サブサイトはSPWebのオブジェクトになるため、移行先にはダミーでトップレベルサイトを作成し、サブサイト同士でオブジェクトをコピーしようと思います。
まずはコンテンツDBの作成です。
Dim MySPGlobalAdmin as New SPGlobalAdmin
Dim MySPVirtualServer As SPVirtualServer _
= MySPGlobalAdmin.OpenVirtualServer(VirtualServerUri)
Dim strDatabaseServer as string _
= MySPVirtualServer.ContentsDB(0).Server
Dim MySPLanguage as SPLanguage = MySPGlobalAdmin.ServerLanguage
Dim strDatabaseName as string = "NewConDB"
Dim strUserName as string = nothing
Dim strPassword as string = nothing
Dim nWarningSiteCount as integer = 1
Dim nMaximumSiteCount as integer = 1
Dim nStatus = 0
Dim strSiteUrl as string = "Site Url"
Dim strTitle as string ="テスト"
Dim strDescription as string = "サイトコレクション作成のテスト"
Dim nLCID as System.Uint32 = Convert.ToUInt32(MySPLanguage.LCID)
Dim strWebTemplate as string = "STS#0"
Dim strOwnerLogin as string = "オーナーログイン名"
Dim strOwnerName as string = "オーナー名"
Dim strOwnerEmail as string = "オーナーメールアドレス"
'--- コンテンツDB作成
MySPVirtualServer.ContentDatabases.Add( _
strDatabaseServer, strDatabaseName, strUsername, _
strPassword, nWarningSiteCount, nMaximumSiteCount, nStatus)
'--- サイトコレクション作成
Dim NewSite As SPSite = MySPVirtualServer.Sites.Add( strSiteUrl, strTitle, _
strDescription, nLCID, strWebTemplate, strOwnerLogin, strOwnerName, _
strOwnerEmail)
次回はサブサイトのコピーを考えます。