はじめに
必要な項目は、多くの場合 SharePoint のリストやドキュメント ライブラリの標準ビューで見つかります。そのうえで、まさにそれらの項目を、グループ化、集計、列のカスタム セット、Excel へのエクスポートが可能な、より高機能なビューで引き続き扱いたい場合があります。List Filter で開く コマンドは、この 2 つをつなぎます。これは標準のリストまたはライブラリのコマンド バーにあるコマンドで、List Filter Online Web パーツがあるページを開き、標準ビューで選択した項目のみを表示します。
このコマンドは、Web パーツと同じパッケージに含まれています。SharePoint Framework のリスト コマンド セットであり、有効にすると、SharePoint Online テナントの任意のモダン リストまたはライブラリで動作します。この記事では、コマンドの動作、テナント全体で有効にする方法、特定のリストやサイトに限定する方法、想定どおりに動作しない場合の確認事項について説明します。

動作の仕組み
List Filter で開く をクリックすると、コマンドは選択された項目の ID を読み取り、構成されたページを新しいブラウザー タブで開きます。ID はページ アドレスのクエリ文字列パラメーター lff で渡されます。これは Web パーツの フィルターへのリンクをコピー で使用されるものと同じパラメーターで、ID In (選択された ID) という 1 つの条件として渡されます。この条件は、ページ上のすべての List Filter Online Web パーツ (インスタンス識別子 *) を対象としているため、対象ページにどの Web パーツのインスタンスがあるかを知っておく必要はありません。
対象ページでは、Web パーツがパラメーターを読み取り、条件をユーザー フィルターとして適用して、一致する項目を読み込みます。条件は、フィルター ウィンドウで選択したフィルターと同様に、結果の上にフィルター チップとして表示され、チップまたは すべてのフィルターをクリア で削除できます。フィルターの適用後、パラメーターはアドレス バーから削除されるため、そのタブを後で更新しても選択内容が再適用されることはありません。
コマンドは、pageUrl プロパティが設定され、少なくとも 1 つの項目が選択されている場合にのみ表示されます。項目を選択していない場合は非表示になります。
📝 注
コマンドが渡すのは項目の ID であり、項目そのものではありません。そのため、対象ページには、コマンドをクリックしたリストと同じリストが表示されている必要があります。後述の重要を参照してください。
前提条件
コマンドを有効にする前に、次の点を確認してください。
- List Filter Online パッケージが、テナントのアプリ カタログに展開されていること。KB10251. List Filter Online のインストールとページへの追加方法を参照してください。
- コマンドを使用するリストまたはライブラリをデータ ソースとして指す、構成済みの List Filter Online Web パーツがあるページが存在すること。
- アプリ カタログ サイトの管理者アクセス権があること。コマンドは、そのサイトの Tenant Wide Extensions(テナント全体の拡張機能)リストで有効にするためです。
パッケージは このソリューションを組織内のすべてのサイトで使用できるようにするを有効にして展開されるため、個々のサイトでのアクティブ化は不要です。ただし、コマンド自体は、次に説明する構成を行うまで非表示のままです。
テナント全体でのコマンドの有効化
アプリ カタログ サイトを開き、Tenant Wide Extensions リストに移動します (サイトの内容 → Tenant Wide Extensions)。パッケージをアップロードすると、このリストにコマンド セットのエントリが追加されます。このエントリは Vitextra List Filter ソリューションに属し、コンポーネント識別子 7f0e4b0e-3c85-4c65-a441-9a86f6b2d9c1 を持っています。複数の Vitextra 拡張機能が一覧表示されている場合は、この識別子で見つけることができます。
エントリを編集し、2 つのフィールドを設定します。
Component Properties - List Filter Online Web パーツをホストするページを指す
pageUrlプロパティを持つ JSON オブジェクトです。絶対 URL とサーバー相対 URL のどちらも使用できます。{"pageUrl": "/sites/Projects/SitePages/Project-Filter.aspx"}サーバー相対 URL は、リストを開いているテナント ホストに対して解決されます。
Disabled - エントリが無効になっていないことを確認します。無効の場合、SharePoint はコマンド セットをまったく読み込みません。
エントリを保存します。コマンドは、リスト ビューの読み込み時に pageUrl プロパティを読み取り、プロパティに値があり、少なくとも 1 つの項目が選択されている場合にのみ表示されます。pageUrl のないエントリでは、拡張機能が有効になっていてもコマンドは非表示のままです。

📝 注
Tenant Wide Extensions リストの変更は、SharePoint に反映されるまでに、数分以上かかることがあります。エントリを保存したら、リスト ページを再読み込みしてください。
特定のリストまたはサイトへのスコープ指定
パッケージは、汎用リスト(List Template 100)用のテナント全体のエントリを作成します。ドキュメント ライブラリ用には 101 のエントリを構成してください。コマンド セット自体は元のリストを確認しないため、有効化する前に適用範囲を確認してください。
| 列 | 機能 |
|---|---|
| List Template | コマンドを 1 つのテンプレートのリストに限定します。たとえば、ドキュメント ライブラリは 101、汎用リストは 100 です。 |
| Web Template | コマンドを 1 つのテンプレートから作成されたサイトに限定します。たとえば、チーム サイトは GROUP#0、コミュニケーション サイトは SITEPAGEPUBLISHING#0 です。 |
| Location | コマンドが表示される場所です。エントリの作成時に SharePoint が設定した値のままにしてください。 |
| Sequence | 同じ場所に登録された複数の拡張機能の順序です。 |
テンプレートのフィールドで選べるのはリストやサイトの種類であり、個別のリストではありません。テナント全体のエントリを複数作成しても、各リストをそれぞれのページに振り分けることはできません。リストごとに異なる対象ページが必要な場合は、適切な pageUrl を指定して、コマンドを各リストのスコープで個別に登録します。Microsoft の拡張機能の登録手順を参照してください。
❗ 重要
Tenant Wide Extensions リストの列は、List Filter Online ではなく SharePoint が提供し、解釈します。使用できる正確な値については、SharePoint Framework 拡張機能のテナント全体の展開に関する Microsoft のドキュメントを参照してください。
コマンドの使用方法
コマンドを有効にすると、次の 3 つの手順で使用できます。
- リストまたはライブラリを標準ビューで開き、行のチェック ボックスを使用するか、行をクリックして、1 つ以上の項目を選択します。
- コマンド バーの List Filter で開く をクリックします。
- 構成されたページが新しいタブで開きます。List Filter Online Web パーツには選択した項目のみが表示され、結果の上に ID 条件のフィルター チップが表示されます。
ここからは、他の List Filter Online ページと同様に作業できます。並べ替え、グループ化、項目の Excel へのエクスポート、項目のバージョン履歴の表示、フィルター ウィンドウによる選択内容のさらなる絞り込みなどです。

重要
❗ 重要
対象ページの Web パーツは、コマンドを使用するリストまたはライブラリと同じものに対して構成する必要があります。コマンドが渡すのは項目の ID のみであり、ID はテナント内ではなくリストごとに一意です。Web パーツが別のリストを指している場合、ID はそのリストの無関係な項目に一致し、エラーが表示されないまま、ページに誤ったレコードが表示されます。
コマンドの設計から、さらに次の 2 点が挙げられます。
- パッケージは、汎用リスト(List Template
100)用のテナント全体のエントリを作成します。ドキュメント ライブラリ用には101のエントリを構成してください。コマンド セット自体は元のリストを確認しないため、有効化する前に適用範囲を確認してください。 - 対象ページに複数の List Filter Online Web パーツがある場合、リンクは任意のインスタンスを対象としているため、そのすべてが条件を受け取ります。各 Web パーツは、それぞれのリストに条件を適用します。
トラブルシューティング
コマンドがコマンド バーに表示されない。
- 項目が選択されていないか、Component Properties の
pageUrlプロパティが空または未設定です。少なくとも 1 つの項目を選択し、プロパティに値が設定されていることを確認してください。 - エントリが無効になっているか、現在のリストまたはサイトと一致しないリスト テンプレートまたは Web テンプレートにスコープが指定されています。
- エントリを変更してから、リスト ページを更新していません。ページを再読み込みし、テナント全体の構成が反映されるまでしばらく待ってください。
- パッケージが展開されていないか、すべてのサイトで使用できるようにせずに展開されました。
ページは開くが、項目がフィルター処理されない、または誤った項目が表示される。
- 対象ページの Web パーツが、コマンドをクリックしたリストとは別のリストを表示しています。Web パーツのデータ ソースと元のリストを比較してください。
- 有効な項目 ID がない状態でコマンドが実行された場合、ページはフィルターなしで開きます。通常の操作では、項目が未選択の場合にコマンドは表示されません。
pageUrlが、List Filter Online Web パーツのないページを指しています。その場合、パラメーターはページで無視されます。
更新するとフィルターが消える。
- これは想定どおりの動作です。
lffパラメーターは 1 回だけ使用され、アドレス バーから削除されます。この選択内容へのリンクを保持するには、Web パーツの 保存済みフィルター メニューにある フィルターへのリンクをコピー を使用してください。