概要

Discussions のインポーターは、クラシックの ディスカッション掲示板 リスト (Discussion Board、テンプレート 108 または Discussion Board 基本タイプ。コミュニティ サイトのディスカッション リストも含まれます) を読み取り、その内容を製品の 2 つのサイト リスト、ディスカッショントピック と ディスカッション投稿 に書き込みます。この記事は、KB10417. クラシックの SharePoint ディスカッション掲示板を Discussions にインポートする方法 で説明しているウィザードの背後にあるリファレンスです。どのクラシック フィールドがどの Discussions 列に入るか、返信ツリーがどのように再構築されるか、何が導出され、何が残され、再実行時にインポーターが自身の作業をどのように認識するかを説明します。列そのものは KB10426. Discussions のリストと列のリファレンス で説明しています。

クラシック掲示板がスレッドを保存する仕組み

クラシックのディスカッション掲示板は、各ディスカッションをリストの フォルダー として、各返信を そのフォルダー内のアイテム として保持します。フォルダーには件名、本文、質問 フラグ、注目 フラグ、いいね数、ベスト返信の ID があり、各返信には独自の本文、いいね数、そしてディスカッション自体 (最上位の返信) または別の返信 (入れ子の返信) を指す 親アイテム (Parent item、ParentItemID) 参照があります。インポーターはリストを ID 順に 2,000 アイテムずつのページで読み取り、アイテムの種類でフォルダーとメッセージを区別します。

Discussions は異なるモデル、つまりトピックごとに 1 アイテム、返信ごとに 1 アイテムで、トピックと親投稿への参照列を持つモデルを使用するため、インポートはリストのコピーではなく、2 つの構造間の変換になります。

トピック

クラシックの各ディスカッションは ディスカッショントピック の 1 つのアイテムになります:

クラシックのディスカッションディスカッショントピック の列値
件名タイトルコピー。255 文字で切り詰め
本文本文 (VtxBody)製品の HTML サニタイザーを通してコピー。許可リストにあるタグと属性は残り、スクリプト、スタイル、安全でないリンクは除去
-掲示板 (VtxBoard)Web パーツで選択した掲示板
質問種類 (VtxTopicType)フラグが設定されていれば Question、それ以外は Discussion
-ステータス (VtxStatus)Open。ベスト アンサーが見つかった場合は Answered に変更 (後述)
注目おすすめ (VtxIsFeatured)コピー
いいねの数いいね (VtxLikeCount)コピー
フォルダー内の返信返信 (VtxReplyCount)インポーターが集計
-閲覧数 (VtxViewCount)0
最新の返信またはディスカッションの作成日最終アクティビティ (VtxLastActivity)インポーターが算出
ベスト返信承認された回答 (VtxAcceptedPostId)インポートされた返信の ID
-承認ステータス (VtxApprovalStatus)Approved
-報告 (VtxReportCount)0
リスト ID とアイテム IDレガシー ID (VtxLegacyId){source list id}:{classic item id}
登録者、更新者、登録日時、更新日時同じシステム列元の作成者と日付を保持 で復元
添付ファイルアイテムの添付ファイル添付ファイルをコピー でコピー

返信

クラシックの各返信は ディスカッション投稿 の 1 つのアイテムになります:

クラシックの返信ディスカッション投稿 の列値
件名タイトルコピー。空の場合は Re:。255 文字で切り詰め
本文本文 (VtxBody)サニタイザーを通してコピー
返信のフォルダートピック (VtxTopic)そのフォルダーのインポート済みトピック
親アイテム親投稿 (VtxParentPost)インポートされた親返信。最上位の返信では空
-パス (VtxPath)最上位の返信は /。入れ子の返信は親のパスに親の ID と / を付けたもの (例: /341/356/)
-レベル (VtxDepth)最上位の返信は 0、それ以外は親の深さ + 1
ディスカッションのベスト返信承認された回答 (VtxIsAccepted)ディスカッションが指す返信は はい
いいねの数いいね (VtxLikeCount)コピー
-承認ステータス、報告Approved、0
リスト ID とアイテム IDレガシー ID (VtxLegacyId){source list id}:{classic item id}
登録者、更新者、登録日時、更新日時同じシステム列元の作成者と日付を保持 で復元
添付ファイルアイテムの添付ファイル添付ファイルをコピー でコピー

クラシックのスレッドとそのインポート後のコピー

クラシックのスレッドとそのインポート後のコピー

コピーされないもの

  • 評価 (星評価) と、アイテムにいいねした人の一覧。いいねの 数 はコピーされますが、いいねした人 列は空のままなので、どのユーザーもインポートされたアイテムにもう一度いいねできます。
  • カテゴリ: クラシック掲示板にはカテゴリがなく、インポーターは カテゴリ を空のままにします。掲示板でカテゴリを使う場合は、インポート後に割り当ててください。
  • 閲覧数: 0 から始まります。
  • 最終返信者: 空のままです。Web パーツは、インポート後に投稿された返信についてのみ最後の返信者を表示します。
  • 通知 (アラート)、クラシックの ビュー、リスト フォーム: これらはクラシック リストに属するもので、Discussions には相当するものがありません。サブスクリプションはユーザーが新たに作成します - KB10404. 掲示板とトピックのフォロー: サブスクリプションとダイジェストの頻度 を参照してください。
  • ピン留め されたトピック: クラシック掲示板にはこのフラグがありません。必要なトピックはインポート後にピン留めしてください。

返信ツリーの再構築方法

  1. 親が常に子より先に作成されるよう、返信はクラシックの 登録日時 の古い順に並べ替えられます。
  2. 各返信について、インポーターは返信が入っている フォルダー からトピックを特定します。フォルダーがインポート済みのどのトピックにも一致しない返信は、警告 返信をスキップ: トピックがインポートされませんでした とともにスキップされます。
  3. クラシックの 親アイテム は、この実行または以前の実行でインポートされた返信の中から検索されます。返信を指している場合、新しい投稿はその返信を 親投稿 として受け取り、その パス を継承し、レベル + 1 になります。ディスカッション自体を指している、空である、またはインポーターが知らないアイテムを指している場合、投稿はパス /、深さ 0 の、トピックの 最上位の返信 になります。親の返信がクラシック リストに存在するのに、この実行で作成できなかった場合も、投稿は最上位に配置され、レポートに警告 親返信のインポートに失敗しました。返信はトップレベルに配置されました: 419 が追加されます (419 は最上位に配置された返信のクラシック ID です)。その返信の下に入れ子になっている返信は、通常どおりその返信に関連付けられます。

入れ子には作成順で解決できる有効な親参照が必要で、親返信のパスは 255 文字までに制限されます。ただし、再インポート時の現在の実装では、以前にインポートした親返信を深さ 0、パス / として扱うため、その下に追加する新しい返信の深さやパスが正しくない場合があります。増分インポート後は入れ子の返信を確認してください。

フラット化された掲示板と孤立した返信

一部の移行ツールは、クラシック掲示板のアイテムはコピーしても、アイテム間の 親アイテム 参照はコピーしません。その場合、掲示板はすべての返信が同じ階層にあるディスカッションの一覧のように見えるか、参照が既に存在しないアイテム ID を指した状態になります。ドライ ランは後者を 親が不明な返信 (トップレベルとしてインポート) として集計し、警告 一部の返信が親を失いました (フラット化された掲示板)。それらはトピックのトップレベル返信としてインポートされます。. を表示します。このような返信は、時系列順にトピックへ直接関連付けられます。親アイテム が空の返信はこの行には集計されませんが、同じように扱われます。インポーターはタイムスタンプや件名から元の親を推測することはしません。

❗ 重要
階層は、インポート時にクラシック リストに存在する参照からしか再構築できません。元の掲示板がまだ残っている場合 (たとえば SharePoint Server 上)、SharePoint Online への移動に使う移行ツールが 親アイテム 列を引き継ぐことを確認してください。

ベスト アンサー、カウンター、最終アクティビティ

すべての返信を作成した後、インポーターはトピックをもう一度巡回し (フェーズ カウンターと回答を更新中)、プランの各トピックについて次を書き込みます:

  • 返信 - トピックのフォルダー内にあるクラシックの返信の数。
  • 最終アクティビティ - 最新のクラシック返信の 登録日時、返信がない場合はディスカッションの 登録日時。
  • いいね - ディスカッションのいいね数。
  • 承認された回答 と ステータス = Answered - クラシックの ベスト返信 がインポート済みの返信を指している場合。その返信自体は 承認された回答 = はい になります。ベスト返信のないクラシックの 回答済み フラグは無視され、トピックは Open のままです。

これらの値はプランのすべてのトピックについて、以前の実行でインポートされたトピックも含めて書き込まれるため、2 回目の実行でカウンターが再計算されます。

返信数はインポートに失敗した返信も含むクラシックのソースに基づきます。レポートに失敗がある場合は、実際にインポートされた返信とカウンターを照合してください。

作成者と日付

REST API で作成したアイテムは、最初は現在のユーザーを作成者とし、日付にはインポート時刻を使用します。元の作成者と日付を保持 を有効にすると、添付ファイル、カウンター、回答の更新後に、SharePoint CSOM を使用して新規アイテムの 登録者、更新者、登録日時、更新日時 を復元します。元の作成者と更新者をサイト ユーザーに解決し、更新者を解決できない場合は作成者を使用します。実行アカウントにはシステム フィールドを設定する権限が必要で、通常はフル コントロールを持つサイト所有者が該当します。失敗は トピック タイトル: SharePoint エラー または 作成者と日付を復元できませんでした として記録されます。アイテムはインポートされたまま残り、復元できなかったフィールドは現在の値を保持します。

作成者のログイン名はテナント内のアカウントに解決できる必要があります。削除されたアカウントや、移行ツールでマッピングされなかったオンプレミスのアカウントは復元できず、同じ警告が出ます。

ディスカッショントピック リストに表示された レガシー ID 付きのインポート済みトピック

ディスカッショントピック リストに表示された レガシー ID 付きのインポート済みトピック

添付ファイル

添付ファイルをコピー を選択すると、インポーターはクラシックの各トピックと返信の添付ファイルを一覧にし、各ファイルをソース サイトからダウンロードして、元の名前で新しいアイテムに添付します。SharePoint がファイル名に許可しない文字 (\ / : * ? " < > | # % & { } ~) はアンダースコアに置き換えられ、120 文字を超える名前は短縮されます。コピーできないファイルは警告 ファイル名: SharePoint のメッセージ を出し、残りのファイルは引き続き処理されます。インライン画像のアドレスはサニタイズ後の HTML に保持されます。画像ファイル自体はコピーされないため、元のファイルを元のアドレスで引き続き利用できるようにしてください。

レガシー ID とインポートの再実行

インポートされたすべてのトピックと返信は、インデックス付きの レガシー ID 列に {source list id}:{classic item id} を保存します (例: 3f2a9c1e-…:418)。ドライ ランの前とインポートの前に、ウィザードは選択したクラシック リストの ID で始まるサイト内のすべてのレガシー ID を読み取ります。その結果:

  • 既にレガシー ID を持つトピックは スキップ され、既にインポートされたトピック (スキップ) 行に報告されます。既存のコピーが新しい返信の親として使われます。
  • 既にレガシー ID を持つ返信もスキップされます。
  • インポート済みのトピックへの 新しい返信 はインポートされるため、まだ使用中の掲示板を段階的にインポートできます。
  • 作成者、日付、添付ファイルは、今回の実行で作成されたアイテムについてのみ復元されます。
  • 既存トピックのタイトルと本文は上書きされませんが、カウンター、アクティビティ、ベストアンサーへの参照は更新される場合があります。インポート済みのアイテムは削除されません。

📝 注
レガシー ID には クラシック リストの ID が含まれます。クラシック掲示板が新しいリストにコピーされると (たとえば 2 回目の移行パスやサイトのコピーによって)、新しいリストは別の ID を持つため、そこからのインポートは 2 組目のトピックを作成します。常に同じリストからインポートするか、コピーからインポートする前に 1 組目を削除してください。

質問と回答

この記事について質問すると、サポートチームから公式回答を受け取れます。

まだ質問はありません。最初の質問を投稿しましょう。

注目の記事

組織図に特定の従業員が表示されない場合の対処方法

Vitextra Organizational Chart に従業員が表示されない場合のトラブルシューティング チェックリストです。ライセンスのないアカウントや役職が空白のアカウントの既定の除外、無効なアカウント、ゲスト ユーザー、Microsoft Entra ID の上司の未設定、フィルターで除外された上司、折りたたまれたレベル、12 時間のデータ キャッシュについて解説します。

102 2 分
Announcements Carousel: SharePoint お知らせ Web パーツの機能

SharePoint Online 用 Vitextra Announcements Carousel Web パーツの詳細な概要です。データ ソースとしての標準お知らせリスト、カードの表示、ナビゲーション、自動再生、外観、フィルター処理と並べ替え、アクセシビリティ、テーマ設定、ローカライズ、プロパティ ウィンドウ、ライセンスを説明します。

77 2 分
Smart Search で検索アプリ ページを作成する方法

SharePoint Online で Vitextra Smart Search Web パーツを使用して単一アプリ ページを作成し、サイトの検索結果ページとして設定して、事前に用意したクエリやタブへのリンクを作成するための、ステップ バイ ステップ ガイドです。

99 2 分

共有