移行 API を使用して Web パーツを移行する
移行 API では、CSOM/REST/SOAP WS を呼び出して Web パーツのデータとプロパティを取得して PRIME パッケージをビルドすることで、PRIME パッケージを使用して Web パーツを SharePoint Online に移行する機能がサポートされています。
Web パーツの移行に Migration API を使用する利点は、Web パーツを 1 回の呼び出しで移行し、パフォーマンスを向上できることです。 マニフェストの一部には、関連付けられているページをインポートするときに Web パーツが含まれます。 Migration API を使用すると、そのページにあるすべての Web パーツを配置できます。
シリアライザー DLL の使用
WebPart ユーザー プロパティ シリアライザー DLL を使用する必要がある一意の方法で処理される属性は 2 つあります。
PRIME パッケージをビルドするときに 、AllUsersProperties と PerUserProperties の プロパティ値を生成する技術的な課題があります。 この課題は、プロパティ値が BASE64 でエンコードされた BLOB であり、Web パーツのプロパティと Web パーツの接続情報がシリアル化されるためです。
シリアライザー .dll を取得するには、次の手順に従います。
- ローカル コンピューターに SPMT クライアントをインストールする: SPMT をインストールします。
- SPMT のインストール場所を参照します
- microsoft.sharepoint.migration.webpart.serializer.dll を見つけてコピーすると、プロジェクトにコピーできます。
サポートされている Web パーツの完全な一覧については、次を参照してください。
スキーマ:
SPWebPart フィールドの説明については、次を参照してください。
PRIME Web パーツ スキーマの例
<!-- SPFile definition -->
<xs:complexType name="SPFile">
<xs:sequence>
<xs:element name="Properties" type="Dictionary" minOccurs="0" />
<xs:element name="Versions" type="SPFileVersionCollection" minOccurs="0" maxOccurs="1" />
<xs:element name="WebParts" type="SPWebPartCollection" minOccurs="0" maxOccurs="1" />
<xs:element name="Links" type="SPLinkCollection" minOccurs="0" maxOccurs="1" />
<xs:element name="EventReceivers" type="SPEventReceiverDefinitionCollection" minOccurs="0" maxOccurs="1" />
<xs:element name="VersionEvents" type="SPFileVersionEventCollection" minOccurs="0" maxOccurs="1" />
</xs:sequence>
……
</xs:complexType>
<!-- SPWebPartCollection definition -->
<xs:complexType name="SPWebPartCollection">
<xs:sequence>
<xs:element name="WebPart" type="SPWebPart" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<!-- SPWebPart definition -->
<xs:complexType name="SPWebPart">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="35">
<xs:element name="Script" minOccurs="0" maxOccurs="1" />
<xs:element name="PagedRowset" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="PagedClientCallbackRowset" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="PagedRecurrenceRowset" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="ViewFields" type="SPFieldLinkCollection" minOccurs="0" maxOccurs="1" />
<xs:element name="ViewData" minOccurs="0" maxOccurs="1" />
<xs:element name="Query" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="RowLimit" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="RowLimitExceeded" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="Toolbar" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="Formats" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="Aggregations" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="List" minOccurs="0" maxOccurs="1" />
<xs:element name="MetaData" minOccurs="0" maxOccurs="1" />
<xs:element name="View" minOccurs="0" maxOccurs="1" />
<xs:element name="ViewStyle" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="ViewBody" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="ViewEmpty" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="ViewFooter" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="ViewHeader" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="ViewBidiHeader" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="GroupByFooter" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="GroupByHeader" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="CalendarViewStyles" minOccurs="0" maxOccurs="1" />
<xs:element name="CalendarSettings" minOccurs="0" maxOccurs="1" />
<xs:element name="ListFormBody" minOccurs="0" maxOccurs="1" />
<xs:element name="Xsl" minOccurs="0" maxOccurs="1" />
<xs:element name="XslLink" minOccurs="0" maxOccurs="1" />
<xs:element name="JS" minOccurs="0" maxOccurs="1" />
<xs:element name="JSLink" minOccurs="0" maxOccurs="1" />
<xs:element name="ParameterBindings" minOccurs="0" maxOccurs="1" />
<xs:element name="OpenApplicationExtension" minOccurs="0" maxOccurs="1" />
<xs:element name="Mobile" minOccurs="0" maxOccurs="1" />
<xs:element name="MobileItemLimit" minOccurs="0" maxOccurs="1" />
<xs:element name="Method" minOccurs="0" maxOccurs="1" />
<xs:element name="WebParts" minOccurs="0" maxOccurs="1" />
<xs:element name="InlineEdit" minOccurs="0" maxOccurs="1" />
<xs:element name="Joins" minOccurs="0" maxOccurs="1" />
<xs:element name="ProjectedFields" minOccurs="0" maxOccurs="1" />
<xs:element name="SpotlightInfo" minOccurs="0" maxOccurs="1" />
<xs:element name="Visualization" minOccurs="0" maxOccurs="unbounded" />
</xs:choice>
</xs:sequence>
<xs:attribute name="Name" type="Guid" use="required" />
<xs:attribute name="ListId" type="Guid" use="optional" />
<xs:attribute name="ListRootFolderUrl" type="xs:string" use="optional" />
<xs:attribute name="Type" type="xs:string" use="optional" />
<xs:attribute name="UserId" type="xs:int" use="optional" />
<xs:attribute name="DisplayName" type="xs:string" use="optional" />
<xs:attribute name="WebPartTypeId" type="Guid" use="optional" />
<xs:attribute name="Assembly" type="xs:string" use="optional" />
<xs:attribute name="Class" type="xs:string" use="optional" />
<xs:attribute name="SolutionId" type="Guid" use="optional" />
<xs:attribute name="Version" type="xs:string" use="optional" />
<xs:attribute name="BaseViewID" type="xs:string" use="optional" />
<xs:attribute name="WebPartZoneID" type="xs:string" use="optional" />
<xs:attribute name="IsIncluded" type="xs:string" use="optional" />
<xs:attribute name="WebPartOrder" type="xs:string" use="optional" />
<xs:attribute name="FrameState" type="xs:string" use="optional" />
<xs:attribute name="Source" type="xs:string" use="optional" />
<xs:attribute name="AllUsersProperties" type="xs:string" use="optional" />
<xs:attribute name="PerUserProperties" type="xs:string" use="optional" />
<xs:attribute name="WebPartIdProperty" type="xs:string" use="optional" />
<xs:attribute name="ContentTypeId" type="xs:string" use="optional" />
<!-- For files (major [default] or minor) -->
<xs:attribute name="Level" type="xs:string" use="optional" />
<!-- Flags -->
<xs:attribute name="Flags" type="xs:string" use="optional" />
<xs:attribute name="Scope" type="xs:string" use="optional" />
<xs:attribute name="Hidden" type="xs:boolean" use="optional" />
<xs:attribute name="Threaded" type="xs:boolean" use="optional" />
<xs:attribute name="ReadOnly" type="xs:boolean" use="optional" />
<xs:attribute name="RecurrenceRowset" type="xs:boolean" use="optional" />
<xs:attribute name="FPModified" type="xs:boolean" use="optional" />
<xs:attribute name="ModerationType" type="xs:string" use="optional" />
<xs:attribute name="Personal" type="xs:boolean" use="optional" />
<xs:attribute name="OrderedView" type="xs:boolean" use="optional" />
</xs:complexType>
セキュリティ コントロール
サーバー側のセキュリティ制御設計により、次の動作が行われます。
- NoScript がオフの場合は、現在のすべての Web パーツの移行に進みます
- NoScript がオンの場合は、最初に Web パーツ レベルの安全性をチェックします
- SafeAgainstScript が false の場合は、インポートしないでください
- SafeAgainstScript が true の場合は、Web パーツのプロパティ レベルの安全性をチェックします
- Web パーツに 'RequiresDesignerPermission' のプロパティがある場合は、この Web パーツを無視します (可能な場合はこのプロパティを無視します)。
- それ以外の場合は、この Web パーツの移行に進む
NoScript がオンになっている場合にサーバー側のコード (信頼されていない Web パーツとして扱われる) によって無視される Web パーツの一覧を次に示します。
- XsltListViewWebPart
- ContentEditorWebPart
- ContentByQueryWebPart
- SiteFeedWebPart
- ScriptEditorWebPart
- ContactFieldControl
- SearchBoxScriptWebPart
- PageViewerWebPart
- ProfileBrowser
- UserTasksWebPart
- SocialCommentWebPart
- SilverlightWebPart
- RSSAggregatorWebPart
- SummaryLinkWebPart
- TableOfContentsWebPart
- UserDocsWebPart
- SPTimelineWebPart
- XmlWebPart
- SiteDocuments
- CategoryResultsWebPart
FAQ
質問: シリアル化 API の入力として Web パーツのプロパティをフェッチ操作方法。 答え: Web パーツのプロパティは、 <'WebPartPagesWebService> ' の操作 'GetWebPartProperties2' の応答の webpart 要素にあります。 WSDL '/_vti_bin/WebPartPage.asmx でペイロードの詳細を見つけますか?WSDL'。
質問: シリアル化 API の入力として Web パーツ接続情報をフェッチする方法 答え: Web パーツ接続は、Web パーツ ページの <SPWebPartConnection> 要素で、'WebPartPagesWebService' の操作 'GetWebPartPage' の応答で見つけることができます。
ビュー フラグ: すべてのビュー フラグなど、これを参照してください。 すべてのフラグ値を PRIME 要素 'flags' に変換する必要があります。
付録
サンプル Web パーツのプロパティ v2 XmlNode 要素
<WebPart xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/WebPart/v2" ID="1c845edf-42c6-4094-a105-302015642f43">
<Title>Content Editor</Title>
<FrameType>Default</FrameType>
<Description>Allows authors to enter rich text content.</Description>
<IsIncluded>true</IsIncluded>
<ZoneID>wpz</ZoneID>
<PartOrder>0</PartOrder>
<FrameState>Normal</FrameState>
<Height />
<Width />
<AllowRemove>true</AllowRemove>
<AllowZoneChange>true</AllowZoneChange>
<AllowMinimize>true</AllowMinimize>
<AllowConnect>true</AllowConnect>
<AllowEdit>true</AllowEdit>
<AllowHide>true</AllowHide>
<IsVisible>true</IsVisible>
<DetailLink />
<HelpLink />
<HelpMode>Modeless</HelpMode>
<Dir>Default</Dir>
<PartImageSmall />
<MissingAssembly></MissingAssembly>
<PartImageLarge>/_layouts/15/images/mscontl.gif</PartImageLarge>
<IsIncludedFilter />
<ExportControlledProperties>true</ExportControlledProperties>
<ConnectionID>00000000-0000-0000-0000-000000000000</ConnectionID>
<ID>g_d6def51c_7a91_40fe_9f59_de9ceed5c347</ID>
<Assembly>Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c</Assembly>
<TypeName>Microsoft.SharePoint.WebPartPages.ContentEditorWebPart</TypeName>
<ContentLink xmlns="http://schemas.microsoft.com/WebPart/v2/ContentEditor" />
<Content xmlns="http://schemas.microsoft.com/WebPart/v2/ContentEditor" />
<PartStorage xmlns="http://schemas.microsoft.com/WebPart/v2/ContentEditor" />
</WebPart>
サンプル Web パーツのプロパティ v3 XmlNode 要素
<webPart xmlns="http://schemas.microsoft.com/WebPart/v3">
<metaData>
<type name="Microsoft.SharePoint.WebPartPages.XsltListViewWebPart, Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
<importErrorMessage></importErrorMessage>
</metaData>
<data>
<properties>
<property name="ShowWithSampleData" type="bool">False</property>
<property name="Default" type="string" />
<property name="NoDefaultStyle" type="string" />
<property name="CacheXslStorage" type="bool">True</property>
<property name="ViewContentTypeId" type="string" />
<property name="XmlDefinitionLink" type="string" />
<property name="ManualRefresh" type="bool">False</property>
<property name="ListUrl" type="string" null="true" />
<property name="ListId" type="System.Guid, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">a316c9a6-e664-426b-9069-77cabd22429c</property>
<property name="TitleUrl" type="string">/Lists/TestPromotedLinks</property>
<property name="EnableOriginalValue" type="bool">False</property>
<property name="Direction" type="direction">NotSet</property>
<property name="ServerRender" type="bool">False</property>
<property name=" ViewFlags " type="Microsoft.SharePoint.SPViewFlags, Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c">Html, TabularView, Hidden, Ordered</property>
<property name="AllowConnect" type="bool">True</property>
<property name="ListName" type="string">{A316C9A6-E664-426B-9069-77CABD22429C}</property>
<property name="ListDisplayName" type="string" null="true" />
<property name="AllowZoneChange" type="bool">True</property>
<property name="ChromeState" type="chromestate">Normal</property>
<property name="DisableSaveAsNewViewButton" type="bool">True</property>
<property name="ViewFlag" type="string" />
<property name="DataSourceID" type="string" />
<property name="ExportMode" type="exportmode">All</property>
<property name="AutoRefresh" type="bool">False</property>
<property name="FireInitialRow" type="bool">True</property>
<property name="AllowEdit" type="bool">True</property>
<property name="Description" type="string" />
<property name="HelpMode" type="helpmode">Modeless</property>
<property name="BaseXsltHashKey" type="string" null="true" />
<property name="AllowMinimize" type="bool">True</property>
<property name="CacheXslTimeOut" type="int">86400</property>
<property name="ChromeType" type="chrometype">Default</property>
<property name="Xsl" type="string" null="true" />
<property name="JSLink" type="string" null="true" />
<property name="CatalogIconImageUrl" type="string">/_layouts/15/images/itgen.png?rev=23</property>
<property name="SampleData" type="string" null="true" />
<property name="UseSQLDataSourcePaging" type="bool">True</property>
<property name="TitleIconImageUrl" type="string" />
<property name="PageSize" type="int">-1</property>
<property name="ShowTimelineIfAvailable" type="bool">True</property>
<property name="Width" type="string" />
<property name="DataFields" type="string" />
<property name="Hidden" type="bool">False</property>
<property name="Title" type="string" />
<property name="PageType" type="Microsoft.SharePoint.PAGETYPE, Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c">PAGE_NORMALVIEW</property>
<property name="DataSourcesString" type="string" />
<property name="AllowClose" type="bool">True</property>
<property name="InplaceSearchEnabled" type="bool">False</property>
<property name="WebId" type="System.Guid, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">00000000-0000-0000-0000-000000000000</property>
<property name="Height" type="string" />
<property name="GhostedXslLink" type="string">main.xsl</property>
<property name="DisableViewSelectorMenu" type="bool">True</property>
<property name="DisplayName" type="string" />
<property name="IsClientRender" type="bool">False</property>
<property name="XmlDefinition" type="string"><View Name="{2B37E456-6FD3-4708-AC83-5D7B0D13E9B4}" Type="HTML" Hidden="TRUE" OrderedView="TRUE" DisplayName="" Url="/SitePages/TestPage.aspx" Level="1" BaseViewID="3" ContentTypeID="0x" ><Query><OrderBy><FieldRef Name="TileOrder" Ascending="TRUE"/><FieldRef Name="Modified" Ascending="FALSE"/></OrderBy></Query><ViewFields><FieldRef Name="Title"/><FieldRef Name="BackgroundImageLocation"/><FieldRef Name="Description"/><FieldRef Name="LinkLocation"/><FieldRef Name="LaunchBehavior"/><FieldRef Name="TileOrder"/></ViewFields><RowLimit Paged="TRUE">30</RowLimit><JSLink>clienttemplates.js</JSLink><XslLink Default="TRUE">main.xsl</XslLink><Toolbar Type="Standard"/></View></property>
<property name="InitialAsyncDataFetch" type="bool">False</property>
<property name="AllowHide" type="bool">True</property>
<property name="ParameterBindings" type="string"><ParameterBinding Name="dvt_sortdir" Location="Postback;Connection" /><ParameterBinding Name="dvt_sortfield" Location="Postback;Connection" /><ParameterBinding Name="dvt_startposition" Location="Postback" DefaultValue="" /><ParameterBinding Name="dvt_firstrow" Location="Postback;Connection" /><ParameterBinding Name="OpenMenuKeyAccessible" Location="Resource(wss,OpenMenuKeyAccessible)" /><ParameterBinding Name="open_menu" Location="Resource(wss,open_menu)" /><ParameterBinding Name="select_deselect_all" Location="Resource(wss,select_deselect_all)" /><ParameterBinding Name="idPresEnabled" Location="Resource(wss,idPresEnabled)" /><ParameterBinding Name="NoAnnouncements" Location="Resource(wss,noXinviewofY_LIST)" /><ParameterBinding Name="NoAnnouncementsHowTo" Location="Resource(wss,noXinviewofY_DEFAULT)" /></property>
<property name="DataSourceMode" type="Microsoft.SharePoint.WebControls.SPDataSourceMode, Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c">List</property>
<property name="AutoRefreshInterval" type="int">60</property>
<property name="AsyncRefresh" type="bool">False</property>
<property name="HelpUrl" type="string" />
<property name="MissingAssembly" type="string">Cannot import this Web Part.</property>
<property name="XslLink" type="string" null="true" />
<property name="SelectParameters" type="string" />
</properties>
</data>
</webPart>
サンプル Web パーツ接続 XmlNode 要素
<WebPartPages:SPWebPartConnection ConsumerConnectionPointID="DFWP Filter Consumer ID" ConsumerID="g_bcca2ac1_f0f1_4640_af30_8a0730ca840e" ID="c1638508205" ProviderConnectionPointID="ITransformableFilterValues" ProviderID="g_7fc41891_2e27_4835_99c8_5b6f80feb20f"><WebPartPages:TransformableFilterValuesToParametersTransformer ConsumerFieldNames="PageType" ProviderFieldNames="Page Field"></WebPartPages:TransformableFilterValuesToParametersTransformer>
</WebPartPages:SPWebPartConnection>