- [アーティクル]
-
-
適用対象: Power Apps
元の KB 番号: 4552163
ボタンに関連付けられている command のすべての有効なルールおよび表示ルールが true に評価された場合、ボタンが表示されます。 これが予期しない場合は、コマンド定義がオーバーライドされ、有効なルールまたは表示ルールがない可能性があります。または、ルール定義自体がオーバーライドされ、非表示になると思われるときにボタンが表示される可能性があります。
警告
コマンドから Mscrm.HideOnModern
表示ルールを削除して、統一インターフェイスにボタンを強制的に表示しないでください。 Mscrm.HideOnModern
表示ルールを持つコマンドは、従来の Web クライアント インターフェイスを対象としており、統合インターフェイスではサポートされていないため、正しく機能しない可能性があります。
コマンド チェッカーを有効にし、検査するコマンド ボタンを選択。
次の例は、アクティビティ グリッド ページの 2 つの Appointment ボタンを示しています。1 つは非表示であることが想定されています。
コマンドのプロパティ タブを選択して、このボタンのコマンドの詳細を表示します。 これにより、各ルール評価の結果 (True、 False、 Skipped) と共に、アクション、有効化ルール、および表示ルールが表示されます。 有効化ルールと表示ルールを確認します。特定のルールが false に評価される必要がある場合は、ルールが誤ってカスタマイズされているか、誤った結果を返すために必要な状況が満たされていない可能性があります。 その場合は、手順 9 に進みます。それ以外の場合は、コマンドにルールまたはルールがない可能性があり、さらに分析するためにコマンド ソリューション レイヤーを表示します。
コマンド名の下にある View コマンド定義ソリューション レイヤー リンクを選択して、コマンドの定義をインストールしたソリューションを表示します。
[ソリューション レイヤー] ウィンドウには、特定のソリューションがインストールされている各リボン コンポーネント定義のレイヤーが表示されます。 リストの上部にあるレイヤーは、アプリケーションによって使用されている現在の定義であり、他のレイヤーは非アクティブであり、現時点ではアプリケーションによって使用されません。 最上位のソリューションをアンインストールするか、定義を削除する更新バージョンがインストールされている場合、次のレイヤーは、アプリケーションで使用されている現在のアクティブな定義になります。 アンマネージド Active ソリューション レイヤーが存在する場合、常にアプリケーションが使用する定義になります。 アクティブなソリューションが一覧に表示されていない場合、一覧の一番上に表示されるソリューションは、アプリケーションによって使用される定義になります。 Microsoft によって公開されていないカスタムマネージド ソリューションは、Microsoft が公開したソリューション レイヤーよりも優先されます。
エンティティ コンテキストは、リボンのカスタマイズがオンになっているオブジェクトを示します。"すべてのエンティティ" が一覧表示されている場合、レイヤーは Application Ribbon クライアント拡張機能からのものであり、エンティティ固有のものではありません。それ以外の場合は、エンティティの論理名が表示されます。
レイヤーが 2 つ以上ある場合は、2 つの行を選択し、 Compare を選択して、各ソリューションによって取り込まれた定義の比較を表示できます。
Back を選択すると、前のコマンド チェッカー ウィンドウに戻ります。
ソリューション レイヤーが 1 つしかない場合は、手順 9 に進みます。それ以外の場合は、上位 2 つのソリューション レイヤーを選択し (アクティブ なソリューションにレイヤーがあるが、一番上に表示されていない場合は、アクティブ ソリューション レイヤーを選択してから、一番上の行を選択します)、 Compare を選択します。
現在アクティブな定義と以前の非アクティブな定義の比較が表示され、相違点がある場合は表示されます。 次の例は、非アクティブな Microsoft 公開ソリューション レイヤーに含まれる表示ルール Mscrm.HideOnModern
を削除してカスタマイズされたアンマネージド Active 定義 msdynce_ActivitiesPatch
示しています。
ボタンの可視性を修正するために必要なアプローチは、特定のシナリオのさまざまなカスタマイズによって異なります。 ルールが誤って false に評価されていると判断し、ルール定義が正しく定義されていない場合は、ルール定義を変更し、適切な状況でルールが false に評価されるように変更する必要があります。 ルール定義が正しい場合、フィールド値やセキュリティ特権が正しく割り当てられないなど、ルールが false を返す要件が満たされない可能性があります。 ルールの定義によっては、要件が大きく異なる場合があります。「既定のリボンの有効化ルール 」および「既定のリボン表示ルールを参照してください。 この例を考えると、コマンドは Mscrm.HideOnModern
表示ルールを削除してカスタマイズされました。 この表示ルールは、この特定のボタンが統合インターフェイス アプリケーションに表示されないようにすることを目的としており、従来の Web クライアント インターフェイスでのみ表示されます。 コマンドのカスタム バージョンを変更し、不足している Mscrm.HideOnModern
表示ルールをコマンド定義に追加できます。 これは Microsoft が公開した定義のカスタム オーバーライドであり、その他の意図的な変更はないため、既定の機能を復元するには、このカスタム バージョンのコマンドを削除することをお勧めします。
修復オプション
下のいずれかのタブから修復オプションを選択します。 既定では、最初のタブが選択されています。
コマンドを削除する方法
このコマンドの作業定義を含む別のソリューション レイヤーがある場合は、この定義を削除して、次の非アクティブな作業定義を復元できます。
これが唯一のレイヤーであり、コマンドが不要になった場合は、他のボタンがコマンドを参照していない場合は、ソリューションから削除できます。
特定のシナリオに一致する次のいずれかのオプションを選択します。
コマンドはアンマネージド Active ソリューション内にある
Activeアンマネージド ソリューション レイヤー内のコマンドを削除するには、エンティティまたはアプリケーション リボンを含むアンマネージド ソリューションをエクスポートし、customizations.xml ファイル内の<RibbonDiffXml>
ノードを編集してから、コンポーネントを削除するためにこのコマンドが削除された新しいバージョンのこのソリューションをインポートします。 「 Export」を参照し、編集の準備をして、リボンをインポートします。
このコマンドはエンティティ固有です
この例のシナリオに基づいて、エンティティがactivitypointer であることを確認し削除する必要があるコマンドがMscrm.CreateAppointment
され、ActiveDefaultPublisherCITTest という名前のパブリッシャーからアンマネージド ソリューション レイヤー で宣言されています。
[Advanced Settings を開きます。
Settings ->Solutions に移動します。
New を選択して新しいソリューションを作成し、コマンドとアクティブ ソリューション レイヤーのコマンド チェッカーのソリューション レイヤーの一覧に表示される値に Publisher を設定します。 (この例では、これは DefaultPublisherCITTest)。
Entities>Add Existing を選択します。
コマンドが定義されているエンティティ (この例では、これは activitypointer) を選択し、 OK を選択します。
[エンティティ メタデータを含む]をオフにし[すべてのアセットの追加]オプションをオフにしてからFinishを選択してください。
[保存] を選択します。
Export Solutionを選択し、アンマネージド ソリューションをエクスポートします。
ZIP ファイルを展開します。
customizations.xml ファイルを開きます。
編集するエンティティ ノードの <Entity>
ノードの子を見つけ、その子 <RibbonDiffXml>
ノードを見つけます。
<CommandDefinition>
ノードを見つけます (この例では、<CommandDefinition>
ノードの ID がMscrm.CreateAppointment
されているため、次のノードを見つけます)。
<RibbonDiffXml>
ノードを編集し、削除するコマンドの ID を持つ特定の<CommandDefinition>
ノードを削除します。 存在する可能性がある他の <CommandDefinition>
ノードを意図せずに削除しないようにしてください。 (この例に基づいて、ID がMscrm.CreateAppointment
されている<CommandDefinition>
ノードを削除します)。
customizations.xml ファイルを保存します。
変更した customizations.xml ファイルをソリューション .zip ファイルに追加し直します。
ソリューション ファイルのインポート。
すべてのカスタマイズの公開 を選択します。
コマンドはアプリケーション リボンにあります ("すべてのエンティティ" に適用されます)
コマンドがエンティティ固有ではなく、アプリケーション リボンで宣言された "すべてのエンティティ" に適用できる場合、手順は次のように若干異なります。
- [Advanced Settings を開きます。
- 設定>ソリューション に移動します。
- New を選択して新しいソリューションを作成し、コマンドとアクティブ ソリューション レイヤーのコマンド チェッカーのソリューション レイヤーの一覧に表示される値に Publisher を設定します。
- Client 拡張機能>既存のリボン>追加を選択します。
- [保存] を選択します。
- Export Solutionを選択し、アンマネージド ソリューションをエクスポートします。
- ZIP ファイルを展開します。
- customizations.xml ファイルを開きます。
- ルート
<RibbonDiffXml>
ノードを見つけます。
<CommandDefinition>
を見つけます。
<RibbonDiffXml>
ノードを編集し、削除するコマンドの ID を持つ<CommandDefinition>
ノードを削除します。 存在する可能性がある他の <CommandDefinition>
ノードを意図せずに削除しないようにしてください。
- customizations.xml ファイルを保存します。
- 変更した customizations.xml ファイルを圧縮ソリューション .zip ファイルに追加し直します。
- ソリューション ファイルのインポート。
- すべてのカスタマイズの公開 を選択します。
このコマンドは、会社が作成したカスタム管理ソリューションからのコマンドです
作成したカスタムマネージド ソリューションによってインストールされたコマンドを削除するには、次の手順に従います。
- カスタム ソリューションのアンマネージド ソース バージョンを持つ別の開発組織で、 コマンドの上記の手順を実行します。コマンドはアンマネージド アクティブ ソリューション オプションにあります。
- カスタム ソリューションのバージョンをインクリメントします。
- ソリューションをマネージドとしてエクスポートします。
- 影響を受ける別の組織で、この新しいバージョンのカスタム管理ソリューションをインポートします。
このコマンドは、自分の会社が作成しなかったカスタム管理ソリューションからのコマンドです (サード パーティ/ISV から)
サード パーティ/ISV によって作成されたカスタムマネージド ソリューションによってインストールされたコマンドを削除するには、ソリューションの作成者に連絡し、特定のコマンド定義を削除したソリューションの新しいバージョンを要求してから、影響を受ける組織にこの新しいソリューションをインストールする必要があります。
不足している有効化/表示ルールをコマンドに追加する方法
保持する必要があるコマンドに変更があるが、適切な状況でボタンを非表示にしたい場合は、カスタム定義を削除する代わりに、不足している有効化/表示ルールをコマンドに追加できます。
特定のシナリオに一致する次のいずれかのオプションを選択します。
コマンドはアンマネージド Active ソリューション内にある
コマンド定義に有効化/表示ルールが欠落していると判断した場合は、 <CommandDefinition>
ノードを変更し、必要な動作を実現するためにルールを追加できます。 Activeアンマネージド ソリューション レイヤーでコマンドを修正するには、エンティティまたはアプリケーション リボンを含むアンマネージド ソリューションをエクスポートし、customizations.xml ファイル内の<RibbonDiffXml>
ノードを編集してから、固定コマンド定義を含むこのソリューションの新しいバージョンをインポートします。 「 Export」を参照し、編集の準備をして、リボンをインポートします。
このコマンドはエンティティ固有です
この例のシナリオに基づいて、エンティティが activitypointer であることがわかります修正する必要があるコマンドはMscrm.CreateAppointment
され、ActiveDefaultPublisherCITTest という名前の発行元からアンマネージド ソリューション レイヤー で宣言されています。
[Advanced Settings を開きます。
設定>ソリューションの順に移動します。
New を選択して新しいソリューションを作成し、コマンドとアクティブ ソリューション レイヤーのコマンド チェッカーのソリューション レイヤーの一覧に表示される値に Publisher を設定します。 (この例では、これは DefaultPublisherCITTest)
Entities>Add Existing を選択します。
コマンドが定義されているエンティティ (この例では、これは activitypointer) を選択し、 OK を選択します。
Finish を選択する前に、必ず [エンティティ メタデータを含む] オプションをオフに し、[すべてのアセットオプションを追加する] をオンにします。
[保存] を選択します。
Export Solutionを選択し、アンマネージド ソリューションをエクスポートします。
ZIP ファイルを展開します。
customizations.xml ファイルを開きます。
編集するエンティティ ノードの <Entity>
ノードの子を見つけ、その子 <RibbonDiffXml>
ノードを見つけます。
<CommandDefinition>
ノードを見つけます。 この例では、 <CommandDefinition>
ノードの ID が Mscrm.CreateAppointment
。 したがって、次のノードを見つけます。
<RibbonDiffXml>
ノードを編集し、<CommandDefinition>
ノードに必要な変更を加えます。このノードを使用すると、コマンドを修正するための正しい状況でコマンドが正しく機能するようになります。 コマンドを宣言する方法の詳細については、「 Define リボン コマンドを参照してください。 (この例に基づいて、このボタンを正しく非表示にするMscrm.HideOnModern
表示ルールを追加して、<CommandDefinition>
ノードを変更します)。
変更した customizations.xml ファイルをソリューション .zip ファイルに復元します。
ソリューション ファイルのインポート。
すべてのカスタマイズの公開 を選択します。
コマンドはアプリケーション リボンにあります ("すべてのエンティティ" に適用されます)
コマンドがエンティティ固有ではなく、アプリケーション リボンで宣言された "すべてのエンティティ" に適用できる場合、手順は次のように若干異なります。
- [Advanced Settings を開きます。
- 設定>ソリューションの順に移動します。
- New を選択して新しいソリューションを作成し、コマンドとアクティブ ソリューション レイヤーのコマンド チェッカーのソリューション レイヤーの一覧に表示される値に Publisher を設定します。
- Client 拡張機能>既存のリボン>追加を選択します。
- [保存] を選択します。
- Export Solutionを選択し、アンマネージド ソリューションをエクスポートします。
- ZIP ファイルを展開します。
- customizations.xml ファイルを開きます。
- ルート
<RibbonDiffXml>
ノードを見つけます。
<CommandDefinition>
を見つけます。
<RibbonDiffXml>
を編集し、<CommandDefinition>
ノードに必要な変更を加えます。このノードを使用すると、コマンドを修正するための正しい状況でコマンドが正しく機能するようになります。 コマンドを宣言する方法の詳細については、「 Define リボン コマンドを参照してください。
- 変更した customizations.xml ファイルをソリューション .zip ファイルに追加し直します。
- ソリューション ファイルのインポート。
- すべてのカスタマイズの公開 を選択します。
このコマンドは、作成したカスタムマネージド ソリューションのコマンドです。
作成したカスタムマネージド ソリューションによってインストールされたコマンドを修正するには、次の手順に従います。
- カスタム ソリューションのアンマネージド ソース バージョンを持つ別の開発組織で、 コマンドの上記の手順を実行します。コマンドはアンマネージド アクティブ ソリューション オプションにあります。
- カスタム ソリューションのバージョンをインクリメントします。
- ソリューションをマネージドとしてエクスポートします。
- 影響を受ける別の組織で、この新しいバージョンのカスタム管理ソリューションをインポートします。
このコマンドは、自分が作成しなかったか、自分の組織が所有していないカスタム管理ソリューションからのコマンドです (つまり、サード パーティ/ISV から)
サード パーティ/ISV によって作成されたカスタムマネージド ソリューションによってインストールされたコマンドを修正するには、ソリューションの作成者に連絡し、固定コマンド定義を含むソリューションの新しいバージョンを要求し、影響を受ける組織にこの新しいソリューションをインストールする必要があります。
このコマンドは、Microsoft が公開したマネージド ソリューション内にある
Microsoft が公開したマネージド ソリューションによってインストールされたコマンドを修正するには、新しいバージョンのソリューションをインストールすることが必要になる場合があります。これは通常、リリースの更新中に実行されます。 修正が必要なバグを特定している可能性があります。 サポートについては、カスタマー サポートにお問い合わせください。
有効化/表示ルールを修正する方法
ルール名の下にある View ルール定義ソリューション レイヤー リンクを選択して、ルールの定義をインストールしたソリューションを表示します。
[ソリューション レイヤー] ウィンドウには、特定のソリューションがインストールされている各リボン コンポーネント定義のレイヤーが表示されます。 リストの上部にあるレイヤーは、アプリケーションによって使用されている現在の定義であり、他のレイヤーは非アクティブであり、現時点ではアプリケーションによって使用されません。 最上位のソリューションをアンインストールするか、定義を削除する更新バージョンがインストールされている場合、次のレイヤーは、アプリケーションで使用されている現在のアクティブな定義になります。 アンマネージド Active ソリューション レイヤーが存在する場合、常にアプリケーションが使用する定義になります。 アクティブなソリューションが一覧に表示されていない場合、一覧の一番上に表示されるソリューションは、アプリケーションによって使用される定義になります。 Microsoft によって公開されていないカスタムマネージド ソリューションは、Microsoft が公開したソリューション レイヤーよりも優先されます。
エンティティ コンテキストは、リボンのカスタマイズがオンになっているオブジェクトを示します。"すべてのエンティティ" が一覧表示されている場合、レイヤーは Application Ribbon クライアント拡張機能からのものであり、エンティティ固有のものではありません。それ以外の場合は、エンティティの論理名が表示されます。
レイヤーが 2 つ以上ある場合は、2 つの行を選択し、 Compare を選択して、各ソリューションによって取り込まれた定義の比較を表示できます。
Back を選択すると、前のコマンド チェッカー ウィンドウに戻ります。
次の図は、この例の有効化ルールのソリューション レイヤーを示し、この場合は 1 つのソリューション レイヤーがあり、 Active というソリューションで示されるアンマネージド カスタマイズであることを示しています。 実際のシナリオは異なる場合があります。アクティブ なソリューション レイヤーではない場合があります。マネージド ソリューションがあり、そのソリューションの名前がここに一覧表示されます。
ソリューション レイヤーを確認し、カスタマイズをインストールしたソリューションを特定したので、適切なソリューションで定義を修正する必要があります。
特定のシナリオに一致する次のいずれかのオプションを選択します。
有効化/表示ルールは、アンマネージド Active ソリューション内にある
Activeアンマネージド ソリューション レイヤーの有効化/表示ルールを修正するには、エンティティまたはアプリケーション リボンを含むアンマネージド ソリューションをエクスポートし、customizations.xml ファイル内の<RibbonDiffXml>
ノードを編集してから、固定の有効化/表示ルール定義を含むこのソリューションの新しいバージョンをインポートします。 「 Export」を参照し、編集の準備をして、リボンをインポートします。
有効化/表示ルールはエンティティ固有です
この例のシナリオに基づいて、エンティティが contact修正する必要がある有効化ルールがnew.contact.EnableRule.EntityRule
され、ActiveDefaultPublisherCITTest という名前のパブリッシャーからアンマネージド ソリューション レイヤー で宣言されていることを確認しました。
[Advanced Settings を開きます。
設定>ソリューションの順に移動します。
New を選択して新しいソリューションを作成し、有効ルールとアクティブ ソリューション レイヤーのコマンド チェッカー ソリューション レイヤーの一覧に表示される値に Publisher を設定します。 (この例では、これは DefaultPublisherCITTest)
Entities>Add Existing を選択します。
有効化/表示ルールが定義されているエンティティ (この例では) を選択し、OKを選択します。
Finish を選択する前に、必ず [エンティティ メタデータを含む] オプションをオフに し、[すべてのアセットオプションを追加する] をオンにします。
[保存] を選択します。
Export Solutionを選択し、アンマネージド ソリューションをエクスポートします。
ZIP ファイルを展開します。
customizations.xml ファイルを開きます。
編集するエンティティ ノードの <Entity>
ノードの子を見つけ、その子 <RibbonDiffXml>
ノードを見つけます。
有効化/表示ルールを見つけます。 この例では、有効化ルールの ID が new.contact.EnableRule.EntityRule
されています。 したがって、次のノードを見つけます。
<RibbonDiffXml>
ノードを編集し、ルールを修正するために正しい状況でルールが True に評価されるようにする有効化/表示ルールに必要な変更を加えます。 ルールを宣言する方法の詳細については、「 Define リボンの有効化ルールおよび 既定のリボン表示ルールを参照してください。 (この例に基づいて、ルール定義を次のように変更します)
変更した customizations.xml ファイルをソリューション .zip ファイルに追加し直します。
ソリューション ファイルのインポート。
すべてのカスタマイズの公開 を選択します。
有効化/表示ルールはアプリケーション リボンにあります ("すべてのエンティティ" に適用されます)
有効化/表示ルールがエンティティ固有ではなく、アプリケーション リボンで宣言された "すべてのエンティティ" に適用できる場合、手順は次のように若干異なります。
- [Advanced Settings を開きます。
- 設定>ソリューションの順に移動します。
- Newを選択して新しいソリューションを作成し、有効/表示ルールとアクティブ ソリューション レイヤーのコマンド チェッカーのソリューション レイヤーの一覧に表示される値に Publisher を設定します。
- Client 拡張機能>既存のリボン>追加を選択します。
- [保存] を選択します。
- Export Solutionを選択し、アンマネージド ソリューションをエクスポートします。
- ZIP ファイルを展開します。
- customizations.xml ファイルを開きます。
- ルート
<RibbonDiffXml>
ノードを見つけます。
- 有効化/表示ルールを見つけます。
<RibbonDiffXml>
ノードを編集し、ルールを修正するために正しい状況でルールが True に評価されるようにする有効化/表示ルールに必要な変更を加えます。 ルールを宣言する方法の詳細については、「 Define リボンの有効化ルールおよび 既定のリボン表示ルールを参照してください。
- 変更した customizations.xml ファイルをソリューション .zip ファイルに追加し直します。
- ソリューション ファイルのインポート。
- すべてのカスタマイズの公開 を選択します。
有効化/表示ルールは、作成したカスタムマネージド ソリューションから取得されます
作成したカスタムマネージド ソリューションによってインストールされた有効化/表示ルールを修正するには、次の手順に従います。
- カスタム ソリューションのアンマネージド ソース バージョンを持つ別の開発組織で、 の上記の手順を完了します。有効化/表示ルールはアンマネージド アクティブ ソリューション オプションにあります。
- カスタム ソリューションのバージョンをインクリメントします。
- ソリューションをマネージドとしてエクスポートします。
- 影響を受ける別の組織で、この新しいバージョンのカスタム管理ソリューションをインポートします。
有効化/表示ルールは、自分が作成しなかったカスタムマネージド ソリューションまたは組織が所有していないソリューション (サード パーティ/ISV) からのルールです
サードパーティ/ISV によって作成されたカスタムマネージド ソリューションによってインストールされた有効化/表示ルールを修正するには、ソリューションの作成者に連絡し、固定有効化/表示ルール定義を含むソリューションの新しいバージョンを要求し、この新しいソリューションを影響を受ける組織にインストールする必要があります。
有効化/表示ルールは、Microsoft が公開したマネージド ソリューション内にある
Microsoft が公開したマネージド ソリューションによってインストールされた有効化/表示ルールを修正するには、新しいバージョンのソリューションをインストールする必要がある場合があります。これは通常、リリースの更新中に行われます。 修正が必要なバグを特定している可能性があります。 サポートについては、カスタマー サポートにお問い合わせください。
リファレンス
モデル駆動型アプリ リボンのコマンド チェッカー