Share via


コマンド バーのボタンは、非表示にする必要があるときに表示されます

適用対象: Power Apps
元の KB 番号: 4552163

ボタンが表示される理由を判断する

ボタンに関連付けられているコマンドのすべての有効化ルール表示ルールが true と評価されると、ボタンが表示されます。 これが予期しない場合は、コマンド定義がオーバーライドされ、有効ルールまたは表示ルールが見つからないか、ルール定義自体がオーバーライドされ、非表示になると思われるときにボタンが表示される可能性があります。

注:

一部のボタンはカスタマイズできません。 詳細については、「 リボンのカスタマイズ不可のボタン」を参照してください。

警告

コマンドから表示ルールを Mscrm.HideOnModern 削除して、統一インターフェイスにボタンを強制的に表示しないでください。 表示規則を Mscrm.HideOnModern 持つコマンドは、従来の Web クライアント インターフェイスを対象としており、統合インターフェイスではサポートされていないため、正しく動作しない可能性があります。

  1. コマンド チェッカーを有効にし、検査するコマンド ボタンを選択します

  2. 次の例は、アクティビティ グリッド ページの 2 つの 予定 ボタンを示しています。1 つは非表示になると予想されます。

    スクリーンショットは、アクティビティ グリッド ページに 2 つの予定ボタンがあることを示しています。

  3. [ コマンドのプロパティ ] タブを選択して、このボタンのコマンドの詳細を表示します。 これにより、各ルール評価の結果 (TrueFalse、スキップ) と共に、アクションが表示され、ルールが有効になり、ルール 表示されます。 有効にするルールと表示ルールを確認します。特定のルールを false に評価する必要がある場合は、ルールが誤ってカスタマイズされているか、false 結果を返すために必要な状況が満たされていない可能性があります。 その場合は、手順 9 に進みます。それ以外の場合は、コマンドにルールまたはルールがない可能性があります。さらに分析するためにコマンド ソリューション レイヤーを表示します。

    [コマンドのプロパティ] タブを選択して、このボタンのコマンドの詳細を表示するスクリーンショット。

  4. コマンド名の下にある [ コマンド定義ソリューション レイヤーの表示 ] リンクを選択して、コマンドの定義をインストールしたソリューションを表示します。

    コマンド名の下にある [コマンド定義ソリューション レイヤーの表示] リンクのスクリーンショット。

  5. [ソリューション レイヤー] ウィンドウには、特定のソリューションがインストールされている各リボン コンポーネント定義のレイヤーが表示されます。 リストの上部にあるレイヤーは、アプリケーションによって使用される現在の定義であり、他のレイヤーは非アクティブであり、現時点ではアプリケーションによって使用されません。 上位のソリューションをアンインストールするか、定義を削除する更新されたバージョンがインストールされている場合、次のレイヤーはアプリケーションで使用されている現在のアクティブな定義になります。 アンマネージド Active ソリューション レイヤーが存在する場合は、常にアプリケーションが使用する定義になります。 アクティブなソリューションが一覧に表示されていない場合、一覧の一番上に一覧表示されているソリューションは、アプリケーションによって使用される定義になります。 Microsoft によって公開されていないカスタム管理ソリューションは、Microsoft が公開したソリューション レイヤーよりも優先されます。

    Entity コンテキストは、リボンのカスタマイズがオンになっているオブジェクトを示します。"すべてのエンティティ" が一覧表示されている場合、レイヤーは Application Ribbon クライアント拡張機能からのものであり、エンティティ固有のものではありません。それ以外の場合は、エンティティの論理名が一覧表示されます。

    レイヤーが 2 つ以上ある場合は、2 つの行を選択し、[ 比較 ] を選択して、各ソリューションによって取り込まれた定義の比較を表示できます。

    [ 戻る ] を選択すると、前のコマンド チェッカー ウィンドウに戻ります。

    ソリューション レイヤーが 1 つしかない場合は、手順 9 に進み、それ以外の場合は、上位 2 つのソリューション レイヤーを選択します (アクティブ なソリューションにレイヤーがあるが、一番上に表示されていない場合は、[アクティブ なソリューション レイヤー] を選択し、次に [ 比較] を選択します。

    上位 2 つのソリューション レイヤーを選択し、[比較] オプションを選択するスクリーンショット。

  6. 現在のアクティブな定義と以前の非アクティブな定義の比較が表示され、違いがある場合は違いが表示されます。 次の例は、非アクティブmsdynce_ActivitiesPatchな Microsoft 公開ソリューション レイヤーに含まれる表示ルールMscrm.HideOnModernを削除してカスタマイズされたアンマネージド Active 定義を示しています。

    現在アクティブな定義と以前の非アクティブな定義の比較を示すスクリーンショット。

  7. ボタンの可視性を修正するために必要なアプローチは、特定のシナリオのさまざまなカスタマイズによって異なります。 ルールが誤って false に評価され、ルール定義が誤って定義されている場合は、ルール定義を変更し、適切な状況でルールが false に評価されるように変更する必要があります。 ルール定義が正しい場合、フィールド値やセキュリティ特権が正しく割り当てられないなど、ルールが false を返す要件が満たされない可能性があります。 ルール定義によっては、要件が大きく異なる場合があります。 「リボンの有効化ルールを定義する」および「 リボン表示ルールを定義する」を参照してください。 この例を考えると、コマンドは表示ルールを削除 Mscrm.HideOnModern してカスタマイズされました。 この表示ルールは、この特定のボタンが統合インターフェイス アプリケーションに表示されないようにすることを目的としており、従来の Web クライアント インターフェイスでのみ表示されます。 コマンドのカスタム バージョンを変更し、不足している表示規則を Mscrm.HideOnModern コマンド定義に追加できます。 これは Microsoft の公開された定義のカスタム オーバーライドであり、他の意図的な変更がないため、既定の機能を復元するには、このカスタム バージョンのコマンドを削除することをお勧めします。

修復オプション

下のいずれかのタブから修復オプションを選択します。 既定では、最初のタブが選択されています。

コマンドを削除する方法

このコマンドの作業定義を含む別のソリューション レイヤーがある場合は、この定義を削除して、次の非アクティブな作業定義を復元できます。

これが唯一のレイヤーであり、コマンドが不要になった場合は、他のボタンがコマンドを参照していない場合は、ソリューションから削除できます。

特定のシナリオに一致する次のいずれかのオプションを選択します。

コマンドがアンマネージド Active ソリューション内にある

Active アンマネージド ソリューション レイヤーのコマンドを削除するには、エンティティまたはアプリケーション リボンを含むアンマネージド ソリューションをエクスポートし、customizations.xml ファイル内のノードを編集<RibbonDiffXml>し、コンポーネントを削除するためにこのコマンドが削除された新しいバージョンのこのソリューションをインポートします。 「 エクスポート、編集の準備、リボンのインポート」を参照してください。

コマンドはエンティティ固有です

このシナリオの例に基づいて、エンティティが activitypointer であり、削除する必要があるコマンドがMscrm.CreateAppointmentDefaultPublisherCITTest という名前の発行元から Active アンマネージド ソリューション レイヤーで宣言されていることを確認しました。

  1. [詳細設定] を開きます。

  2. [設定] ->[ソリューション] に移動します。

  3. [ 新規 ] を選択して新しいソリューションを作成し、コマンドと Active ソリューション レイヤーのコマンド チェッカーのソリューション レイヤーの一覧に表示される値を Publisher に設定します。 (この例では、 これは DefaultPublisherCITTest です)。

  4. [エンティティ][既存の追加] の順に>選択します。

  5. コマンドが定義されているエンティティ (この例では、 これは activitypointer) を選択し、[OK] を選択します

  6. [完了] を選択する前に、[エンティティ メタデータを含める]オプションをオフにし、[すべての資産の追加] オプションをオフにします。

  7. [保存] を選択します。

  8. [ ソリューションのエクスポート] を選択し、アンマネージド ソリューションをエクスポートします。

  9. .zip ファイルを抽出します。

  10. customizations.xml ファイルを開きます。

  11. 編集する <Entity> エンティティ ノードのノード子を見つけて、その子 <RibbonDiffXml> ノードを見つけます。

  12. ノードを <CommandDefinition> 見つけます (この例では、ノードの <CommandDefinition> ID は Mscrm.CreateAppointmentです。そのため、次のノードを見つけます)。

    CommandDefinition ノードの場所を示すスクリーンショット。

  13. ノードを <RibbonDiffXml> 編集し、削除するコマンドの ID を持つ特定 <CommandDefinition> のノードを削除します。 存在する可能性がある他 <CommandDefinition> のノードを意図せずに削除しないようにしてください。 (この例に基づいて、ID が Mscrm.CreateAppointmentであるノードを<CommandDefinition>削除します)。

    CommandDefinition ノードを削除する例を示すスクリーンショット。

  14. customizations.xml ファイルを保存します。

  15. 変更した customizations.xml ファイルをソリューション .zip ファイルに戻します。

  16. ソリューション ファイルをインポートします。

  17. [ すべてのカスタマイズの発行] を選択します

コマンドはアプリケーション リボンにあります ("すべてのエンティティ" に適用されます)

コマンドがエンティティ固有ではなく、アプリケーション リボンで宣言された "すべてのエンティティ" に適用できる場合、手順は次のように若干異なります。

  1. [詳細設定] を開きます。
  2. [設定ソリューション]> に移動します
  3. [ 新規 ] を選択して新しいソリューションを作成し、コマンドと Active ソリューション レイヤーのコマンド チェッカーのソリューション レイヤーの一覧に表示される値を Publisher に設定します。
  4. [クライアント拡張機能>] [既存のアプリケーション リボンの>追加]の順に選択します。
  5. [保存] を選択します。
  6. [ ソリューションのエクスポート] を選択し、アンマネージド ソリューションをエクスポートします。
  7. .zip ファイルを抽出します。
  8. customizations.xml ファイルを開きます。
  9. ルート <RibbonDiffXml> ノードを見つけます。
  10. <CommandDefinition>見つけます。
  11. ノードを <RibbonDiffXml> 編集し、削除 <CommandDefinition> するコマンドの ID を持つノードを削除します。 存在する可能性がある他 <CommandDefinition> のノードを意図せずに削除しないようにしてください。
  12. customizations.xml ファイルを保存します。
  13. 変更した customizations.xml ファイルを圧縮ソリューション .zip ファイルに戻します。
  14. ソリューション ファイルをインポートします。
  15. [ すべてのカスタマイズの発行] を選択します
コマンドは、会社が作成したカスタムマネージド ソリューションからのコマンドです

作成したカスタムマネージド ソリューションによってインストールされたコマンドを削除するには、次の手順に従います。

  1. カスタム ソリューションのアンマネージド ソース バージョンを持つ個別の開発organizationで、[The] コマンドの上記の手順をアンマネージド Active ソリューション オプションで実行します。
  2. カスタム ソリューションのバージョンをインクリメントします。
  3. ソリューションをマネージドとしてエクスポートします。
  4. 影響を受ける別のorganizationで、この新しいバージョンのカスタムマネージド ソリューションをインポートします。
コマンドは、私の会社が作成しなかったカスタムマネージドソリューションからのものです(サードパーティ/ISVから)

サード パーティ/ISV によって作成されたカスタム マネージド ソリューションによってインストールされたコマンドを削除するには、ソリューションの作成者に問い合わせて、特定のコマンド定義を削除したソリューションの新しいバージョンを要求し、影響を受けるorganizationにこの新しいソリューションをインストールする必要があります。