Żeby przenieść witrynę w szablonie wchodzimy w ustawienia witryny, w grupie "Akcje witryny" wybieramy "Zapisywanie witryny jako szablonu" (zaznaczając lub nie opcję zapisywania zawartości, co ma wpływ na to czy przeniosą się nam również wpisy na listach i biblioteki w dokumentach, ale również i przepływy) i po pomyślnym zapisaniu witryny przechodzimy do galerii rozwiązań za pomocą miłego linka ("galeria rozwiązań") dostarczonego przez twórców SP. Z galerii zapisujemy sobie nasz plik WSP (warto pamiętać, pod jaką nazwą go zapisujemy, zwłaszcza jak to robimy po raz 10 danego dnia) na dysku.
Następnie przechodzimy na środowisko docelowe - na główną witrynę kolekcji witryn (a nie np. podwitrynę pod którą chcemy stworzyć witrynę). Tam ponownie wchodzimy na ustawienia witryny i w grupie "Galerie" wybieramy "Rozwiązania" (niezbyt oczywiste miejsce do szukania szablonów witryn dla osób przechodzących z SP2007). Teraz musimy zrobić następujące kroki:
- Klikamy na zakładkę "Rozwiązania" (mimo iż wygląda jakby była już wybrana)
- Klikamy "Przekaż rozwiązanie"
- Wgrywamy plik WSP, który zapisaliśmy uprzednio na dysku
- Aktywujemy rozwiązanie
Możemy już stworzyć nową witrynę na podstawie wgranego szablonu. Wchodzimy na witrynę pod którą chcemy stworzyć nową witrynę i wybieramy z akcji witryny (menu w górnym lewym rogu) "Utwórz witrynę". W menu po lewej wybieramy kategorię "Puste i niestandardowe", wybieramy nasz szablon, wpisujemy tytuł i URL i klikamy "Utwórz".
I tu dochodzimy do "klu programu": jeżeli na środowisku były zainstalowane/włączone funkcje, które były włączone na środowisku źródłowym, które nie są dostępne na docelowym to dostaniemy piękny błąd "Szablon witryny wymaga aktywowania funkcji {długi GUID} w zbiorze witryn. Identyfikator korelacji: {kolejny GUID}" (ang: "The site template requires that the Feature {GUID} be installed in the farm or site collection. Corelation ID: {GUID}").
Rozwiązaniem tego błędu jest zainstalowanie/włączenie brakującej funkcji. Problem polega na tym, że mamy piękny GUID, który nam nie mówi którą funkcję powinniśmy włączyć. Możemy oczywiście otworzyć stronę zarządzania funkcjami na witrynie źródłowej i docelowej i posprawdzać, które funkcje były włączone na źródle i włączyć je na witrynie docelowej. Jeżeli jednak mamy dużo funkcji to może to być trudne i czasochłonne, ponadto czasami nie mamy dostępu do środowiska źródłowego. Dodatkowo są funkcje, których nie widać na stronie zarządzania funkcjami i konieczne jest włączenie ich z konsoli. Identyfikacja funkcji po GUIDzie jest żmudna, zwłaszcza, że zespół, który robił funkcjonalność tworzenia witryny uniemożliwił skopiowanie GUIDu brakujących funkcji zmuszając nas do przepisywania go ręcznie.
Wypracowałem metodę, która bardzo przyspieszy cały proces. Do jej wykonania potrzebujemy dostępu RDP do maszyny z SharePointem. Będziemy korzystali z PowerShella i narzędzia ULS Log viewer (darmowe, z CodePleksu).
Oto scenariusz:
- Włączamy logowanie dla "Infrastruktura funkcji" ("Feature infrastructure") na poziom "Podlegający monitorowaniu" ("Monitorable").
- Uruchamiamy LogViewera, włączamy logowanie na żywo i wpisujemy "szablon witryny wymaga" do okna filtrowania. W przypadku angielskich witryn wpisujemy "site template requires".
- Próbujemy utworzyć witrynę.
- Dostajemy błąd, który złapie LogViewer. W komunikacie błędu będzie GUID funkcji, który możemy skopiować.
- Uruchamiamy konsolę PowerShella i wpisujemy komendę:
Enable-SPFeature -url {adres witryny, pod którą tworzymy witrynę} -Identity {GUID funkcji}
np. Enable-SPFeature -url http://intranet -Identity 861b0621-3ab9-46ec-859e-112c04535099 - Powtarzamy punkty 3-5 aż uda nam się stworzyć witrynę. 2 porady przyspieszające pracę:
- Po pierwszym otrzymaniu błędu, gdy zamkniemy okno z błędem guzik "utwórz" będzie wyszarzony. Jeżeli klikniemy "Więcej opcji" to będziemy mogli ponawiać tworzenie witryny
- Wciskając F3 w konsoli PowerShell otrzymujemy ostatnią komendę. Wystarczy usunąć GUIDa poprzedniej funkcji i wkleić kolejnej.
Czasami może się okazać, że funkcja nie jest zainstalowana/wdrożona na wyższym poziomie i nie da się jej włączyć. Wtedy z pomocą przyjdzie nam przetłumaczenie GUIDa na nazwę funkcji. Na dole tego postu znajduje się listę większości GUIDów standardowych funkcji SharePointa, ale możemy po prostu wpisać GUID funkcji w wyszukiwarkę WWW i prawdopodobnie znajdziemy nazwę brakującej funkcji.
Jeżeli GUIDu funkcji nie ma na tej stronie, to jest duża szansa, że jest to jakaś funkcja rozwiązania firmy trzeciej. Jeżeli po wpisaniu GUIDu w Googla (lub Binga) nie dowiemy się jakiej funkcji brakuje to musimy na środowisku źródłowym odpalić następujący kod PowerShella:
Get-SPFeature {GUID}
np. Get-SPFeature 00bfea71-7e6d-4186-9ba8-c047ac750105
Dzięki temu dowiemy się co musimy zainstalować/wdrożyć.
Tak na marginesie - wystarczyłoby, żeby przy tworzeniu witryny nastąpiło sprawdzenie jakie funkcje są potrzebne używanemu szablonowi (bo jest to wpisane w manifeście) i udostępniono guzik "Włącz brakujące funkcje". Może ktoś z deweloperów zrobi takie małe narzędzie?
Powodzenia i cierpliwości! Dużo cierpliwości!
Lista funkcji i ich GUIDy:
Funkcja
|
GUID
|
AccSrvSolutionGallery
|
744b5fd3-3b09-4da6-9bd1-de18315b045d
|
AnnouncementsList
|
00bfea71-d1ce-42de-9c63-a44004ce0104
|
AssetLibrary
|
4bcccd62-dcaf-46dc-a7d4-e38277ef33f4
|
BaseSite
|
b21b090c-c796-4b0f-ac0f-7ef1659c20ae
|
BasicWebParts
|
00bfea71-1c5e-4a24-b310-ba51c3eb7a57
|
BizAppsCTypes
|
43f41342-1a37-4372-8ca0-b44d881e4434
|
BizAppsFields
|
5a979115-6b71-45a5-9881-cdc872051a69
|
BizAppsSiteTemplates
|
4248e21f-a816-4c88-8cab-79d82201da7b
|
ContactsList
|
00bfea71-7e6d-4186-9ba8-c047ac750105
|
CTypes
|
695b6570-a48b-4a8e-8ea5-26ea7fc1d162
|
CustomList
|
00bfea71-de22-43b2-a848-c05709900100
|
DataConnectionLibrary
|
00bfea71-dbd7-4f72-b8cb-da7ac0440130
|
DataSourceLibrary
|
00bfea71-f381-423d-b9d1-da7a54c50110
|
DiscussionsList
|
00bfea71-6a49-43fa-b535-d15c05500108
|
DocumentLibrary
|
00bfea71-e717-4e80-aa17-d0c71b360101
|
DocumentRoutingResources
|
0c8a9a47-22a9-4798-82f1-00e62a96006e
|
EnhancedTheming
|
068bc832-4951-11dc-8314-0800200c9a66
|
EnterpriseWikiLayouts
|
a942a218-fa43-4d11-9d85-c01e3e3a37cb
|
EventsList
|
00bfea71-ec85-4903-972d-ebe475780106
|
ExcelServerEdit
|
b3da33d0-5e51-4694-99ce-705a3ac80dc5
|
ExcelServerSite
|
3cb475e7-4e87-45eb-a1f3-db96ad7cf313
|
ExcelServerWebPart
|
4c42ab64-55af-4c7c-986a-ac216a6e0c0e
|
ExpirationWorkflow
|
c85e5759-f323-4efb-b548-443d2216efb5
|
ExternalList
|
00bfea71-9549-43f8-b978-e47e54a10600
|
FastEndUserHelpCollection
|
6e8f2b8d-d765-4e69-84ea-5702574c11d6
|
Fields
|
ca7bd552-10b1-4563-85b9-5ed1d39c962a
|
GanttTasksList
|
00bfea71-513d-4ca0-96c2-6a47775c0119
|
GridList
|
00bfea71-3a1d-41d3-a0ee-651d11570120
|
ICMSv2_Assests
|
07bb8c5f-4e8e-47ed-8ac9-a8e38f328d80
|
IPFSSiteFeatures
|
c88c4ff1-dbf5-4649-ad9f-c6c426ebcbf5
|
IssuesList
|
00bfea71-5932-4f9c-ad71-1557e5751100
|
IssueTrackingWorkflow
|
fde5d850-671e-4143-950a-87b473922dc7
|
LinksList
|
00bfea71-2062-426c-90bf-714c59600103
|
LocalSiteDirectoryControl
|
14aafd3a-fcb9-4bb7-9ad7-d8e36b663bbd
|
LocationBasedPolicy
|
063c26fa-3ccc-4180-8a84-b6f98e991df3
|
MobileExcelWebAccess
|
e995e28b-9ba8-4668-9933-cf5c146d7a9f
|
MobilePowerPointViewer
|
893627d9-b5ef-482d-a3bf-2a605175ac36
|
MobileWordViewer
|
8dfaf93d-e23c-4471-9347-07368668ddaf
|
MobilityRedirect
|
f41cc668-37e5-4743-b4a8-74d1db3fd8a4
|
MossChart
|
875d1044-c0cf-4244-8865-d2a0039c2a49
|
Navigation
|
89e0306d-453b-4ec5-8d68-42067cdbf98e
|
NoCodeWorkflowLibrary
|
00bfea71-f600-43f6-a895-40c0de7b0117
|
ObaSimpleSolution
|
d250636f-0a26-4019-8425-a5232d592c01
|
OfficeWebApps
|
0c504a5c-bcea-4376-b05e-cbca5ced7b4f
|
OffWFCommon
|
c9c9515d-e4e2-4001-9050-74f980f93160
|
OneNote
|
3d433d02-cf49-4975-81b4-aede31e16edf
|
PictureLibrary
|
00bfea71-52d4-45b3-b544-b1c71b620109
|
PortalLayouts
|
5f3b0127-2f1d-4cfd-8dd2-85ad1fb00bfc
|
PowerPointEditServer
|
738250ba-9327-4dc0-813a-a76928ba1842
|
PowerPointServer
|
5709298b-1876-4686-b257-f101a923f58d
|
PremiumSite
|
8581a8a7-cf16-4770-ac54-260265ddb0b2
|
PublishingLayouts
|
d3f51be2-38a8-4e44-ba84-940d35be1566
|
PublishingPrerequisites
|
a392da98-270b-4e85-9769-04c0fde267aa
|
PublishingResources
|
aebc918d-b20f-4a11-a1db-9ed84d79c87e
|
PublishingSite
|
f6924d36-2fa8-4f0b-b16d-06b7250180fa
|
Ratings
|
915c240e-a6cc-49b8-8b2c-0bff8b553ed3
|
RecordResources
|
5bccb9a4-b903-4fd1-8620-b795fa33c9ba
|
Reporting
|
7094bd89-2cfe-490a-8c7e-fbace37b4a34
|
ReportServer
|
e8389ec7-70fd-4179-a1c4-6fcb4342d7a0
|
ReviewWorkflowsSPD
|
b5934f65-a844-4e67-82e5-92f66aafe912
|
SearchExtensions
|
5eac763d-fbf5-4d6f-a76b-eded7dd7b0a5
|
SignaturesWorkflowSPD
|
c4773de6-ba70-4583-b751-2a7b1dc67e3a
|
SurveysList
|
00bfea71-eb8a-40b1-80c7-506be7590102
|
TasksList
|
00bfea71-a83e-497e-9ba0-7a5c597d0107
|
TaxonomyFieldAdded
|
73ef14b1-13a9-416b-a9b5-ececa2b0604c
|
TeamCollab
|
00bfea71-4ea5-48d4-a4ad-7ea5c011abe5
|
TranslationWorkflow
|
c6561405-ea03-40a9-a57f-f25472942a22
|
VisioWebAccess
|
9fec40ea-a949-407d-be09-6cba26470a0c
|
WACustomReports
|
af6d9aec-7c38-4dda-997f-cc1ddbb87c92
|
WAMaster
|
c04234f4-13b8-4462-9108-b4f5159beae6
|
WAReports
|
2acf27a5-f703-4277-9f5d-24d70110b18b
|
WAWhatsPopularWebPart
|
8e947bf0-fe40-4dff-be3d-a8b88112ade6
|
WebPageLibrary
|
00bfea71-c796-4402-9f2f-0eb9a6e71b18
|
WebPartAdderGroups
|
2ed1c45e-a73b-4779-ae81-1524e4de467a
|
WordViewer
|
1663ee19-e6ab-4d47-be1b-adeb27cfd9d2
|
WorkflowHistoryList
|
00bfea71-4ea5-48d4-a4ad-305cf7030140
|
workflowProcessList
|
00bfea71-2d77-4a75-9fca-76516689e21a
|
Workflows
|
0af5989a-3aea-4519-8ab0-85d91abe39ff
|
XmlFormLibrary
|
00bfea71-1e1d-4562-b56a-f05371bb0115
|
Brak komentarzy:
Prześlij komentarz