次の方法で共有


コマンド バーのボタンは、Power Apps で表示する必要があるときに非表示になります

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

ボタンが非表示になっている理由を判断する

ボタンは、ボタンに関連付けられたコマンド有効化ルールまたは表示ルールが false に評価されるため、非表示にすることができます。 関連付けられたコマンドに Mscrm.HideOnModern 、統一インターフェイス アプリケーションのボタンを非表示にする表示ルールがある可能性があります。 HideCustomAction は、ボタンを強制的に非表示にする作成することもできます。 ユーザーがオフラインの場合、有効化ルールのないカスタム コマンドと既定の Mscrm.IsEntityAvailableForUserInMocaOffline コマンドは表示されません。

警告

  • 次のいずれかの PrivilegeType 値を持つ EntityPrivilegeRule 型の表示規則 (作成書き込み削除割り当て共有) は、エンティティに [モバイルでの読み取り専用] オプションが有効になっている場合に false と評価されます。これにより、エンティティは読み取り特権のみを許可するように強制されます。 エンティティで [モバイルでの読み取り専用] フラグが有効になっている場合に false と評価される最も一般的な既定のシステム ルールの例を次に示しますが、この一覧 (Mscrm.CreateSelectedEntityPermissionMscrm.CanWritePrimaryMscrm.WritePrimaryEntityPermissionMscrm.DeletePrimaryEntityPermissionMscrm.WriteSelectedEntityPermissionMscrm.CanWriteSelectedMscrm.CanSavePrimaryMscrm.DeleteSelectedEntityPermissionMscrm.AssignSelectedEntityPermissionMscrm.CanDeletePrimaryMscrm.SharePrimaryPermissionMscrm.ShareSelectedEntityPermission) に限定されません。 エンティティを編集し、[ Mobile の読み取り専用 ] オプションをオフにして、ルールによってテストされている権限がユーザーにも付与されている場合に、これらのルールが true に評価されるようにすることができます。
  • コマンドから表示ルールを Mscrm.HideOnModern 削除して、統一インターフェイスにボタンを強制的に表示しないでください。 表示規則を Mscrm.HideOnModern 持つコマンドは、従来の Web クライアント インターフェイスを対象としており、統合インターフェイスではサポートされていないため、正しく動作しない可能性があります。
  1. コマンド チェッカーを有効にし、検査するコマンド ボタンを選択します

  2. 次の例は、連絡先エンティティのグリッド ページの [新規 ] ボタンが表示されず、 New (非表示) というラベルの項目で表されていることを示しています。

    注:

    ボタンが一覧にない場合は、インストールされている可能性がある HideCustomAction のカスタマイズが原因であるか、関連付けられているコマンド Mscrm.HideOnModern に表示ルールが設定されている可能性があります。 このガイドの執筆時点では、コマンド チェッカー ツールには、ルールまたはMscrm.HideOnModern表示ルールによってHideCustomAction非表示になっているボタンは一覧表示されません。 現在、この情報を今後の更新プログラムに含めるために、この一覧の拡張に取り組んでいます。

    連絡先エンティティのグリッド ページの [新規] ボタンが表示されず、[新規] (非表示) というラベルの項目で表されているスクリーンショット。

    注:

    すべてのルールが True と評価されたときにボタンがまだ非表示の場合は、 グリッド内のコンテキスト依存コマンドが原因である可能性があります。 グリッド上でレコードが選択されている場合、要素のない SelectionCountRule すべてのボタンは、選択したレコードとは関係がないと見なされます。 また、ルールの評価が True の場合でも非表示 になります。 ポップアップの子にはレコード ベースのコマンドが引き続き存在する可能性があるため、ポップアップは影響を受けないことに注意してください。

  3. [ コマンドのプロパティ ] タブを選択して、このボタンのコマンドの詳細を表示します。 これにより、各ルール評価の結果 (TrueFalse、スキップ) と共に、有効化ルールと表示ルール 表示されます。 次の例は、New (hidden) ボタンの コマンドを にMscrm.NewRecordFromGrid示し、False に評価されたという名前new.contact.EnableRule.EntityRuleの有効化ルールがあるため、ボタンは非表示になります。

    [新規 (非表示)] ボタンのコマンドのコマンド プロパティの詳細を示すスクリーンショット。

  4. シェブロン アイコンをnew.contact.EnableRule.EntityRule選択して有効化ルールを展開し、ルールの詳細を表示します。 ルールが True または False と評価される理由を理解するには、ルールの種類を少し理解する必要があります。 各種類のルールの詳細については、「 リボンの有効化ルールを定義する」および「 リボン表示ルールを定義する」を参照してください。 次の例は、ルールの種類が Entity であり、エンティティの論理名が アカウントであることを示しています。 現在のエンティティは 取引先責任者であるため、 アカウントと等しくない場合、このルールは False を返します。

    ルールの詳細を表示する例を示すスクリーンショット。

  5. ボタンの可視性を修正するために必要なアプローチは、特定のシナリオのさまざまなカスタマイズによって異なります。 この例を考えてみましょう。

    • このルールが誤って作成された場合(ルールで宣言されたエンティティが 連絡先 であることを意図していたが 、アカウントに設定されている場合)、有効化ルールを編集 new.contact.EnableRule.EntityRule し、ルールが true に評価されるように変更できます。
    • このルールが意図せずにコマンドに追加された場合は、コマンドを Mscrm.NewRecordFromGrid 変更し、コマンド定義から enable ルールを削除 new.contact.EnableRule.EntityRule できます。
    • コマンドが Microsoft 公開定義のオーバーライドである場合、このカスタム バージョンのコマンドを削除して既定の機能を復元できます。

修復オプション

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

コマンドを削除する方法

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

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

コマンドを削除するには、カスタマイズをインストールしたソリューションを特定する必要があります。

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

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

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

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

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

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

    次の図は、この例のコマンドのソリューション レイヤーを示し、連絡先エンティティのソリューション レイヤーがあることを示しています。これは、 Active というタイトルのソリューションで示されるアンマネージド カスタマイズであることを示しています。 実際のシナリオは異なる場合があります。 アクティブ なソリューション レイヤーがない場合があります。マネージド ソリューションがあり、そのソリューションの名前がここに一覧表示されます。

    ソリューション レイヤーの例を示すスクリーンショット。

  3. ソリューション レイヤーを確認し、カスタマイズをインストールしたソリューションを特定したので、適切なソリューションで定義を修正する必要があります。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  13. ノードを <RibbonDiffXml> 編集し、削除するコマンドの ID を持つ特定 <CommandDefinition> のノードを削除します。 存在する可能性がある他 <CommandDefinition> のノードを意図せずに削除しないようにしてください。 (この例に基づいて、ID が Mscrm.NewRecordFromGridであるノードを<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 を持つノードを削除します。 存在する可能性がある他 <CommandDefinitions> のノードを意図せずに削除しないようにしてください。
  12. customizations.xml ファイルを保存します。
  13. 変更した customizations.xml ファイルを圧縮ソリューション .zip ファイルに戻します。
  14. ソリューション ファイルをインポートします。
  15. [ すべてのカスタマイズの発行] を選択します
コマンドは、会社が作成したカスタムマネージド ソリューションからのコマンドです

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

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

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