次の方法で共有


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

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

ボタンが表示される理由を特定する

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

Note

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

警告

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

修復オプション

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

コマンドを削除する方法

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

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

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

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

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

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

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

  1. [Advanced Settings を開きます。

  2. Settings ->Solutions に移動します。

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

  4. Entities>Add Existing を選択します。

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

  6. [エンティティ メタデータを含む]をオフにし[すべてのアセットの追加]オプションをオフにしてからFinishを選択してください。

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

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

  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. [Advanced Settings を開きます。
  2. 設定>ソリューション に移動します。
  3. New を選択して新しいソリューションを作成し、コマンドとアクティブ ソリューション レイヤーのコマンド チェッカーのソリューション レイヤーの一覧に表示される値に Publisher を設定します。
  4. Client 拡張機能>既存のリボン>追加を選択します。
  5. [保存] を選択します。
  6. Export Solutionを選択し、アンマネージド ソリューションをエクスポートします。
  7. ZIP ファイルを展開します。
  8. customizations.xml ファイルを開きます。
  9. ルート <RibbonDiffXml> ノードを見つけます。
  10. <CommandDefinition>を見つけます。
  11. <RibbonDiffXml> ノードを編集し、削除するコマンドの ID を持つ<CommandDefinition> ノードを削除します。 存在する可能性がある他の <CommandDefinition> ノードを意図せずに削除しないようにしてください。
  12. customizations.xml ファイルを保存します。
  13. 変更した customizations.xml ファイルを圧縮ソリューション .zip ファイルに追加し直します。
  14. ソリューション ファイルのインポート。
  15. すべてのカスタマイズの公開 を選択します。
このコマンドは、会社が作成したカスタム管理ソリューションからのコマンドです

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

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

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