次の方法で共有


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

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

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

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

警告

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

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

    Note

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

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

    Note

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

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

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

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

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

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

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

修復オプション

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

コマンドを削除する方法

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. [Advanced Settings を開きます。

  2. 設定>ソリューションの順に移動します。

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

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

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

  6. Finish を選択する前に、必ず [エンティティ メタデータを含む] オプションをオフに し、[すべてのアセットオプションを追加する] をオンにします。

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

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

  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. [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> ノードを削除します。 存在する可能性がある他の <CommandDefinitions> ノードを意図せずに削除しないようにしてください。
  12. customizations.xml ファイルを保存します。
  13. 変更した customizations.xml ファイルを圧縮ソリューション .zip ファイルに追加し直します。
  14. ソリューション ファイルのインポート。
  15. すべてのカスタマイズの公開 を選択します。
このコマンドは、会社が作成したカスタム管理ソリューションからのコマンドです

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

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

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