Power Apps でコマンド バーのボタンが正しく動作しない
適用対象: Power Apps
元の KB 番号: 4552163
ボタンが正しく動作しない理由を判断する
いくつかの要因により、ボタン アクションが失敗する可能性があります。 これには、ボタンに関連付けられているコマンド定義が正しく宣言されていない無効なリボンのカスタマイズが含まれます。
警告
コマンドから表示ルールを Mscrm.HideOnModern
削除して、統一インターフェイスにボタンを強制的に表示しないでください。 表示ルールを Mscrm.HideOnModern
持つコマンドは、従来の Web クライアント インターフェイスを対象としており、統合インターフェイスではサポートされていません。 そのため、正しく動作しない可能性があります。
コマンドが正しく宣言されていない場合、ボタンを選択すると何も実行されないか、エラー メッセージが表示される可能性があります。
お客様の状況に最も適した次のいずれかのオプションを選択して、最適な解決策を提供します。 既定では、最初のタブが選択されています。
選択時に何も行わないボタンを修正
ボタンが選択されていて何も発生しない場合、これは通常、ボタンに関連付けられている コマンド の正しくない構成が原因で発生します。
アクションの値を宣言するときに発生する一般的なコマンド構成の間違いを JavaScriptFunction
次 に示します。 これらの間違いは、ボタンが誤動作し、選択されたときに何も行わないかのように見える可能性があります。
- 無効な FunctionName: JavaScript 関数の名前が、Library プロパティに割り当てられている JavaScript Web リソースの有効な関数名と一致しません。
-
無効なライブラリ: このパスは、有効な JavaScript Web リソースを参照していません。プレフィックスは 付
$webresource:
いていません。 - パラメーターがありません: JavaScript 関数は特定のパラメーターを想定しており、コマンド定義では宣言されません。
- パラメーターの型または順序が正しくない: パラメーターは、正しくない型を使用して宣言されるか、JavaScript 関数宣言に記載されているものとは異なる順序で宣言されます。
詳細な構成のヘルプについては、「 リボン アクションを定義する」 を参照してください。
これらの構成が正しい場合は、JavaScript コード エラーが原因である可能性があります。 カスタム JavaScript 関数が正しくコーディングされておらず、予期した動作を呼び出さない場合、ボタンは期待どおりに機能しません。 一覧表示されている構成ミスのいずれかが見つかる場合は、コマンド定義を修正して問題を解決します。 そうしないと、ボタンが正しく動作するように JavaScript 関数コードをデバッグして修正しなければならない場合があります。
ボタン コマンドの内容と、不適切な定義をインストールしたソリューションを特定します。
[ コマンドのプロパティ ] タブを選択して、このボタンのコマンドの詳細を表示します。
[ コマンドのプロパティ ] タブには、アクションと対応する
JavaScriptFunction
構成が表示されます。 コマンド名の下にある [ コマンド定義ソリューション レイヤーの表示 ] リンクを選択して、コマンドの定義をインストールしたソリューションを表示します。[ソリューション レイヤー] ウィンドウには、特定のソリューションがインストールされている各リボン コンポーネント定義のレイヤーが表示されます。 リストの上部にあるレイヤーは、アプリケーションによって使用される現在の定義です。 他のレイヤーは非アクティブであり、現時点ではアプリケーションで使用されていません。 上位のソリューションをアンインストールするか、定義を削除する更新されたバージョンがインストールされている場合、次のレイヤーは、アプリケーションによって使用される現在のアクティブな定義になります。 アンマネージド Active ソリューション レイヤーが存在する場合は、常にアプリケーションで使用される定義になります。 アクティブなソリューションが一覧に表示されていない場合、一覧の一番上に表示されるソリューションは、アプリケーションによって使用される定義になります。 Microsoft によって公開されていないカスタム管理ソリューションは、Microsoft が公開したソリューション レイヤーよりも優先されます。
Entity コンテキストは、リボンのカスタマイズが有効になっているオブジェクトを示します。 "すべてのエンティティ" が一覧表示されている場合、レイヤーはアプリケーション リボン クライアント拡張機能からのものであり、エンティティ固有ではありません。 それ以外の場合は、エンティティの論理名が一覧表示されます。
レイヤーが 2 つ以上ある場合は、2 つの行を選択し、[ 比較 ] を選択して、各ソリューションによって提供される定義の比較を表示できます。
[ 戻る ] を選択すると、前のコマンド チェッカー ウィンドウに戻ります。
ソリューション レイヤーが 1 つしかない場合は、手順 8 に進みます。 それ以外の場合は、上位 2 つのソリューション レイヤーを選択します。 (Active ソリューションにレイヤーがあるが、一番上に一覧表示されていない場合は、Active ソリューション レイヤーを選択し、次に一番上の行を選択します)。次に、[ 比較] を選択します。
現在のアクティブな定義と以前の非アクティブな定義の比較が表示され、存在する場合は違いが表示されます。 次の例は、アンマネージド Active 定義が、Microsoft が公開したシステム ソリューション レイヤーの他の非アクティブな定義と比較して、値を誤って指定
FunctionName
することによってカスタマイズされたことを示しています。 値はFunctionName
である必要XrmCore.Commands.Delete.deletePrimaryRecord
がありますが、カスタム定義では が宣言されていますFunctionName="deletePrimaryRecord"
。 この場合、関数が見つからないため、ボタンを選択しても何も発生しません。ボタンのアクション機能を修正するために必要なアプローチは、特定のシナリオのさまざまなカスタマイズによって異なります。 この例を考えると、コマンドは正しくない
FunctionName
値を指定してカスタマイズされました。 コマンドのカスタム バージョンを変更し、値をFunctionName
修正できます。 これは Microsoft が公開した定義のカスタム オーバーライドであり、他の意図的な変更がないため、既定の機能を復元するには、このカスタム バージョンのコマンドを削除することをお勧めします。
次のいずれかの修復オプションを選択します。
オプション 1: JavaScriptFunction 宣言が正しくないコマンドを削除する
コマンドは、アンマネージド Active ソリューションにあります。
Active アンマネージド ソリューション レイヤーのコマンドを削除するには、エンティティまたはアプリケーション リボンを含むアンマネージド ソリューションをエクスポートし、customizations.xml ファイル内のノードを編集<RibbonDiffXml>
してから、コンポーネントを削除するためにこのコマンドが削除された新しいバージョンのこのソリューションをインポートします。 「 エクスポート、編集の準備、リボンのインポート」を参照してください。
コマンドはエンティティ固有です
このシナリオの例に基づいて、エンティティがアカウントであると判断し、削除する必要があるコマンドは Mscrm.DeletePrimaryRecord
であり、DefaultPublisherCITTest という名前の発行元から Active アンマネージド ソリューション レイヤーで宣言されています。
[詳細設定] を開きます。
[設定ソリューション]> に移動します。
[ 新規 ] を選択して新しいソリューションを作成し、コマンドと Active ソリューション レイヤーの一覧のコマンド チェッカーのソリューション レイヤーに表示される値を Publisher に設定します。 (この例では、 これは DefaultPublisherCITTest です)。
[エンティティ][既存の追加] の順に>選択します。
コマンドが定義されているエンティティ (この例では"account") を選択し、[ OK] を選択します。
[完了] を選択する前に、[エンティティ メタデータを含める] オプションと [すべての資産の追加] オプションをオフにしてください。
[保存] を選択します。
[ ソリューションのエクスポート] を選択し、アンマネージド ソリューションをエクスポートします。
.zip ファイルを抽出します。
customizations.xml ファイルを開きます。
編集する
<Entity>
エンティティ ノードのノード子を見つけ、その子<RibbonDiffXml>
ノードを見つけます。ノードを
<CommandDefinition>
見つけます。 (この例では、ノードの<CommandDefinition>
ID は ですMscrm.DeletePrimaryRecord
。そのため、次のノードを見つけます)。ノードを
<RibbonDiffXml>
編集して、削除するコマンドの ID を持つ特定<CommandDefinition>
のノードを削除します。 存在する可能性のある他<CommandDefinition>
のノードを意図せずに削除しないようにしてください。 (この例に基づいて、ID がMscrm.DeletePrimaryRecord
であるノードを削除<CommandDefinition>
します)。customizations.xml ファイルを保存します。
変更した customizations.xml ファイルをソリューション .zip ファイルに復元します。
ソリューション ファイルをインポートします。
[ すべてのカスタマイズの発行] を選択します。
コマンドはアプリケーション リボンにあります ("すべてのエンティティ" に適用されます)
コマンドがエンティティ固有ではないが、代わりに、アプリケーション リボンで宣言されている "すべてのエンティティ" に適用できる場合、手順は次のように若干異なります。
- [詳細設定] を開きます。
- [設定ソリューション]> に移動します。
- [ 新規 ] を選択して新しいソリューションを作成し、コマンドと Active ソリューション レイヤーの一覧のコマンド チェッカーのソリューション レイヤーに表示される値を Publisher に設定します。
- [クライアント拡張機能>] [既存のアプリケーション リボンの>追加]の順に選択します。
- [保存] を選択します。
- [ ソリューションのエクスポート] を選択し、アンマネージド ソリューションをエクスポートします。
- .zip ファイルを抽出します。
- customizations.xml ファイルを開きます。
- ルート
<RibbonDiffXml>
ノードを見つけます。 - ノードを
<CommandDefinition>
見つけます。 - を
<RibbonDiffXml>
編集し、削除<CommandDefinition>
するコマンドの ID を持つノードを削除します。 存在する可能性のある他<CommandDefinition>
のノードを意図せずに削除しないようにしてください。 - customizations.xml ファイルを保存します。
- 変更した customizations.xml ファイルを圧縮されたソリューション .zip ファイルに復元します。
- ソリューション ファイルをインポートします。
- [ すべてのカスタマイズの発行] を選択します。
コマンドは、会社が作成したカスタムマネージド ソリューションからのコマンドです。
作成したカスタムマネージド ソリューションによってインストールされたコマンドを削除するには、次の手順に従います。
- カスタム ソリューションのアンマネージド ソース バージョンを持つ個別の開発organizationで、[The] コマンドの上記の手順をアンマネージド Active ソリューション オプションで実行します。
- カスタム ソリューションのバージョンをインクリメントします。
- ソリューションをマネージドとしてエクスポートします。
- 影響を受ける別のorganizationで、この新しいバージョンのカスタムマネージド ソリューションをインポートします。
コマンドは、(第 3 部または ISV から) 自分の会社が作成しなかったカスタムマネージド ソリューションからのコマンドです。
サード パーティまたは ISV によって作成されたカスタム マネージド ソリューションによってインストールされたコマンドを削除するには、ソリューションの作成者に問い合わせて、特定のコマンド定義が削除されたソリューションの新しいバージョンを要求し、影響を受けるorganizationにこの新しいソリューションをインストールする必要があります。
オプション 2: JavaScriptFunction 宣言のコマンドを修正する
コマンドは、アンマネージド Active ソリューションにあります。
Active アンマネージド ソリューション レイヤーのコマンドを修正するには、エンティティまたはアプリケーション リボンを含むアンマネージド ソリューションをエクスポートし、customizations.xml ファイル内のノードを編集<RibbonDiffXml>
してから、固定コマンド定義を含む新しいバージョンのこのソリューションをインポートします。 「 エクスポート、編集の準備、リボンのインポート」を参照してください。
警告
コマンドから表示ルールを削除 Mscrm.HideOnModern
して、統一インターフェイスにボタンを強制的に表示しないでください。 表示規則を Mscrm.HideOnModern
持つコマンドは、従来の Web クライアント インターフェイスを対象としており、統合インターフェイスではサポートされていないため、正しく動作しない可能性があります。
コマンドはエンティティ固有です
このシナリオの例に基づいて、エンティティがアカウントであると判断し、修正する必要があるコマンドは Mscrm.DeletePrimaryRecord
、 であり、DefaultPublisherCITTest という名前の発行元から Active アンマネージド ソリューション レイヤーで宣言されています。
[詳細設定] を開きます。
[設定ソリューション]> に移動します。
[ 新規 ] を選択して新しいソリューションを作成し、コマンドと Active ソリューション レイヤーのコマンド チェッカーのソリューション レイヤーの一覧に表示される値に Publisher を設定します。 (この例では、 これは DefaultPublisherCITTest です)。
[エンティティ][既存の追加] の順に>選択します。
コマンドが定義されているエンティティ (この例では、これは アカウント) を選択し、[OK] を選択 します。
[完了] を選択する前に、[エンティティ メタデータを含める] オプションと [すべての資産の追加] オプションをオフにしてください。
[保存] を選択します。
[ ソリューションのエクスポート] を選択し、アンマネージド ソリューションをエクスポートします。
.zip ファイルを抽出します。
customizations.xml ファイルを開きます。
編集する
<Entity>
エンティティ ノードのノード子を見つけ、その子<RibbonDiffXml>
ノードを見つけます。ノードを
<CommandDefinition>
見つけます。 (この例では、ノードの<CommandDefinition>
ID は ですMscrm.DeletePrimaryRecord
。そのため、次のノードを見つけます)。ノードを
<RibbonDiffXml>
編集し、コマンドを修正するために<CommandDefinition>
正しい状況でコマンドを正しく機能させるノードに必要な変更を加えます。 コマンドを宣言する方法の詳細については、「リボン コマンドの定義」および 「リボンアクションの定義」を参照してください。 (この例に基づいて、値を<CommandDefinition>
にXrmCore.Commands.Delete.deletePrimaryRecord
設定してノードのJavaScriptFunction
をFunctionName
変更します)。変更した customizations.xml ファイルをソリューション .zip ファイルに復元します。
ソリューション ファイルをインポートします。
[ すべてのカスタマイズの発行] を選択します。
コマンドはアプリケーション リボンにあります ("すべてのエンティティ" に適用されます)
コマンドがエンティティ固有ではないが、代わりに、アプリケーション リボンで宣言されている "すべてのエンティティ" に適用できる場合、手順は次のように若干異なります。
- [詳細設定] を開きます。
- [設定ソリューション]> に移動します。
- [ 新規 ] を選択して新しいソリューションを作成し、コマンドと Active ソリューション レイヤーの一覧のコマンド チェッカーのソリューション レイヤーに表示される値を Publisher に設定します。
- [クライアント拡張機能>] [既存のアプリケーション リボンの>追加]の順に選択します。
- [保存] を選択します。
- [ ソリューションのエクスポート] を選択し、アンマネージド ソリューションをエクスポートします。
- .zip ファイルを抽出します。
- customizations.xml ファイルを開きます。
- ルート
<RibbonDiffXml>
ノードを見つけます。 - を
<CommandDefinition>
見つけます。 - ノードを
<RibbonDiffXml>
編集して、コマンドを修正するために<CommandDefinition>
正しい状況でコマンドが正しく機能するようにノードに必要な変更を加えます。 コマンドを宣言する方法の詳細については、「リボン コマンドの定義」および 「リボンアクションの定義」を参照してください。 - customizations.xml ファイルを保存します。
- 変更した customizations.xml ファイルを圧縮されたソリューション .zip ファイルに復元します。
- ソリューション ファイルをインポートします。
- [ すべてのカスタマイズの発行] を選択します。
コマンドは、私が作成したカスタムマネージドソリューションからのものです。
作成したカスタム マネージド ソリューションによってインストールされたコマンドを修正するには、次の手順に従います。
- カスタム ソリューションのアンマネージド ソース バージョンを持つ個別の開発organizationで、[The] コマンドの上記の手順をアンマネージド Active ソリューション オプションで実行します。
- カスタム ソリューションのバージョンをインクリメントします。
- ソリューションをマネージドとしてエクスポートします。
- 影響を受ける別のorganizationで、この新しいバージョンのカスタムマネージド ソリューションをインポートします。
コマンドは、私が作成しなかったカスタムマネージドソリューションから、または私のorganizationが所有していない(サードパーティ/ISVから)です。
サード パーティまたは ISV によって作成されたカスタム マネージド ソリューションによってインストールされたコマンドを修正するには、ソリューションの作成者に問い合わせて、固定コマンド定義を含むソリューションの新しいバージョンを要求し、影響を受けるorganizationにこの新しいソリューションをインストールする必要があります。
"無効な JavaScript アクション ライブラリ"](#tab/error) というスクリプト エラー メッセージが表示されます
選択時にエラーが表示されるボタンを修正しました
リボン コマンド バー ボタンが選択され、エラーが発生した場合、通常、リボン コマンド のカスタマイズが正しく行われないことです。
スクリプト エラー "無効な JavaScript アクション ライブラリ" を修正しました
次のようなスクリプト エラー メッセージが表示される場合があります。
無効な JavaScript アクション ライブラリ: [スクリプト名] は Web リソースではなく、サポートされていません。
これは、コマンドの で正しくないライブラリを宣言したリボン コマンドの JavaScriptFunction
カスタマイズが無効であることが原因で発生します。
次の例は、アカウント エンティティのフォーム ページの [新規 ] ボタンが表示され、[ 新規] というラベルの項目で表されていることを示しています。
[ コマンドのプロパティ ] タブを選択して、このボタンのコマンドの詳細を表示します。 これにより 、Actions と JavaScriptFunction 宣言が表示され、各ルール評価の結果 (True、 False、スキップ) と共にルールが有効または表示 されます。
"シェブロン" アイコンを選択して JavaScriptFunction を 展開し、関数宣言の詳細を表示します。 Library プロパティは JavaScript Web リソースで、プレフィックス
$webresource:
は である必要があります。 次の例は、Library プロパティが _/_static/common/scripts/RibbonActions.jsであることを示しています。 これは、有効な JavaScript Web リソースへのパスではありません。 次に、コマンドのソリューション レイヤーを確認して、問題を解決するための正しい値を特定する必要があります。コマンド名の下にある [ コマンド定義ソリューション レイヤーの表示 ] リンクを選択して、コマンドの定義をインストールしたソリューションを表示します。
[ソリューション レイヤー] ウィンドウには、特定のソリューションがインストールされている各リボン コンポーネント定義のレイヤーが表示されます。 一覧の上部にあるレイヤーは、アプリケーションによって使用されている現在の定義であり、他のレイヤーは非アクティブであり、現時点ではアプリケーションによって使用されません。 上位のソリューションをアンインストールするか、定義を削除する更新されたバージョンがインストールされている場合、次のレイヤーはアプリケーションで使用されている現在のアクティブな定義になります。 アンマネージド Active ソリューション レイヤーが存在する場合は、常にアプリケーションが使用する定義になります。 アクティブなソリューションが一覧に表示されていない場合、一覧の一番上に一覧表示されているソリューションは、アプリケーションによって使用される定義になります。 Microsoft によって公開されていないカスタム管理ソリューションは、Microsoft が公開したソリューション レイヤーよりも優先されます。
Entity コンテキストは、リボンのカスタマイズがオンになっているオブジェクトを示します。"すべてのエンティティ" が一覧表示されている場合、レイヤーは Application Ribbon クライアント拡張機能からのものであり、エンティティ固有のものではありません。それ以外の場合は、エンティティの論理名が一覧表示されます。
レイヤーが 2 つ以上ある場合は、2 つの行を選択し、[ 比較 ] を選択して、各ソリューションによって取り込まれた定義の比較を表示できます。
[ 戻る ] を選択すると、前のコマンド チェッカー ウィンドウに戻ります。
次の図は、例のコマンドのソリューション レイヤーを示し、2 つのソリューション レイヤーがあることを示し、1 つは Active というタイトルのソリューションで示されるアンマネージド カスタマイズであり、もう 1 つは Microsoft によって発行されたシステム ソリューションからのカスタマイズであることを示しています。 実際のシナリオは異なる場合があります。アクティブなソリューション レイヤーがない場合があります。マネージド ソリューションがあり、そのソリューションの名前がここに一覧表示されます。
上位 2 行を選択し、[ 比較 ] を選択して、各ソリューションによって取り込まれた定義の比較を表示します。 ソリューション レイヤーが 1 つだけの場合は、この手順をスキップします。
コマンド定義間の比較では、2 つのレイヤー間に存在する可能性がある違いが表示されます。 次の例は、Library 値が異なっていることを明確に示しています。 Active ソリューションからのアンマネージド エントリが正しくないパス _/_static/common/scripts/RibbonActions.js に設定され (特定のパスが若干異なる場合があります)、Microsoft の既定の定義でライブラリが に
$webresoure:Main_system_library.js
設定されています。 これは、この特定のコマンドでサポートされているパスです (この値は、特定のコマンドによって異なる場合があります)。 サポートされている唯一のパスは、有効な JavaScript Web リソースの名前で$webresource:
始まり、終わるパスです。ソリューション レイヤーを確認し、カスタマイズをインストールしたソリューションを決定したら、適切なソリューションで定義を修正する必要があります。
特定のシナリオに一致する次のいずれかのオプションを選択します。
コマンドは、アンマネージド Active ソリューションにあります。
コマンドを修正する方法は、定義が唯一のものかどうか、または他の非アクティブな定義があるかどうか、および変更が意図的であるかどうかによって異なります。
シナリオを反映するオプションを選択します。
-
コマンドには意図的な変更がないため、このカスタムレイヤーを削除します。
Active アンマネージド ソリューション レイヤーのコマンドを削除するには、エンティティまたはアプリケーション リボンを含むアンマネージド ソリューションをエクスポートし、customizations.xml ファイル内のノードを編集
<RibbonDiffXml>
してから、コンポーネントを削除するためにこのコマンドが削除された新しいバージョンのこのソリューションをインポートします。 「 エクスポート、編集の準備、リボンのインポート」を参照してください。コマンドはエンティティ固有です
このシナリオの例に基づいて、エンティティがアカウントであると判断し、削除する必要があるコマンドは
Mscrm.NewRecordFromForm
であり、DefaultPublisherCITTest という名前の発行元から Active アンマネージド ソリューション レイヤーで宣言されています。[詳細設定] を開きます。
[設定ソリューション]> に移動します。
[ 新規 ] を選択して新しいソリューションを作成し、コマンドと Active ソリューション レイヤーの一覧のコマンド チェッカーのソリューション レイヤーに表示される値を Publisher に設定します。 (この例では、 これは DefaultPublisherCITTest です)。
[エンティティ][既存の追加] の順に>選択します。
コマンドが定義されているエンティティを選択します。 (この例では、これは アカウントです)、[OK] を選択します。
[完了] を選択する前に、[エンティティ メタデータを含める] オプションと [すべての資産の追加] オプションをオフにしてください。
[保存] を選択します。
[ ソリューションのエクスポート] を選択し、アンマネージド ソリューションをエクスポートします。
.zip ファイルを抽出します。
customizations.xml ファイルを開きます。
編集する
<Entity>
エンティティ ノードのノード子を見つけ、その子<RibbonDiffXml>
ノードを見つけます。ノードを
<CommandDefinition>
見つけます (この例では、 の<CommandDefinition>
ID は ですMscrm.NewRecordFromForm
。そのため、次のノードを見つけます)。ノードを
<RibbonDiffXml>
編集して、特定<CommandDefinition>
のノードを削除します。 存在する可能性のある他<CommandDefinition>
のノードを意図せずに削除しないようにしてください。 (この例に基づいて、ID がMscrm.NewRecordFromForm
であるノードを削除<CommandDefinition>
します)。customizations.xml ファイルを保存します。
変更した customizations.xml ファイルをソリューション .zip ファイルに復元します。
ソリューション ファイルをインポートします。
[ すべてのカスタマイズの発行] を選択します。
コマンドはアプリケーション リボンにあります ("すべてのエンティティ" に適用されます)
コマンドがエンティティ固有ではないが、代わりに、アプリケーション リボンで宣言されている "すべてのエンティティ" に適用できる場合、手順は次のように若干異なります。
- [詳細設定] を開きます。
- [設定ソリューション]> に移動します。
- [ 新規 ] を選択して新しいソリューションを作成し、コマンドと Active ソリューション レイヤーの一覧のコマンド チェッカーのソリューション レイヤーに表示される値を Publisher に設定します。
- [クライアント拡張機能>] [既存のアプリケーション リボンの>追加]の順に選択します。
- [保存] を選択します。
- [ ソリューションのエクスポート] を選択し、アンマネージド ソリューションをエクスポートします。
- .zip ファイルを抽出します。
- customizations.xml ファイルを開きます。
- ルート
<RibbonDiffXml>
ノードを見つけます。 - ノードを
<CommandDefinition>
見つけます。 - 編集
<RibbonDiffXml>
して、<CommandDefinition>
削除するコマンドの一致する ID を持つノードを削除します。 存在する可能性のある他<CommandDefinition>
のノードを意図せずに削除しないようにしてください。 - customizations.xml ファイルを保存します。
- 変更した customizations.xml ファイルを圧縮されたソリューション .zip ファイルに復元します。
- ソリューション ファイルをインポートします。
- [ すべてのカスタマイズの発行] を選択します。
-
コマンドには、保持する追加の変更があり、このソリューション レイヤーを修正する必要があります。
Active アンマネージド ソリューション レイヤーのコマンドを修正するには、エンティティまたはアプリケーション リボンを含むアンマネージド ソリューションをエクスポートし、customizations.xml ファイル内のノードを編集
<RibbonDiffXml>
してから、固定コマンド定義を含む新しいバージョンのこのソリューションをインポートします。 「 エクスポート、編集の準備、リボンのインポート」を参照してください。警告
コマンドから表示ルールを削除
Mscrm.HideOnModern
して、統一インターフェイスにボタンを強制的に表示しないでください。 表示規則をMscrm.HideOnModern
持つコマンドは、従来の Web クライアント インターフェイスを対象としており、統合インターフェイスではサポートされていないため、正しく動作しない可能性があります。コマンドはエンティティ固有です
このシナリオの例に基づいて、エンティティがアカウントであると判断し、修正する必要があるコマンドは
Mscrm.NewRecordFromForm
、 であり、DefaultPublisherCITTest という名前の発行元から Active アンマネージド ソリューション レイヤーで宣言されています。[詳細設定] を開きます。
[設定ソリューション]> に移動します。
[ 新規 ] を選択して新しいソリューションを作成し、コマンドと Active ソリューション レイヤーのコマンド チェッカーのソリューション レイヤーの一覧に表示される値に Publisher を設定します。 (この例では、 これは DefaultPublisherCITTest です)。
[エンティティ][既存の追加] の順に>選択します。
コマンドが定義されているエンティティ (この例では、これは アカウント) を選択し、[OK] を選択 します。
[完了] を選択する前に、[エンティティ メタデータを含める] オプションと [すべての資産の追加] オプションをオフにしてください。
[保存] を選択します。
[ ソリューションのエクスポート] を選択し、アンマネージド ソリューションをエクスポートします。
.zip ファイルを抽出します。
customizations.xml ファイルを開く
編集する
<Entity>
エンティティ ノードのノード子を見つけて、その子<RibbonDiffXml>
ノードを見つけます。ノードを
<CommandDefinition>
見つけます。 (この例では、ノードの<CommandDefinition>
ID は ですMscrm.NewRecordFromForm
。そのため、次のノードを見つけます)。コマンドを修正するために
<CommandDefinition>
正しい状況でコマンドが正しく機能するようにノードに必要な変更を加えるには、編集<RibbonDiffXml>
します。 コマンドを宣言する方法の詳細については、「リボン コマンドの定義」および 「リボンアクションの定義」を参照してください。 (この例に基づいて、 を設定Library="$webresoure:Main_system_library.js"
してノードを<CommandDefinition>
変更し、値が一致することをFunctionName
確認します。この例では、これはFunctionName="XrmCore.Commands.Open.openNewRecord"
になります。)customizations.xml ファイルを保存します。
変更した customizations.xml ファイルをソリューション .zip ファイルに復元します。
ソリューション ファイルをインポートします。
[ すべてのカスタマイズの発行] を選択します。
コマンドはアプリケーション リボンにあります ("すべてのエンティティ" に適用されます)
コマンドがエンティティ固有ではなく、アプリケーション リボンで宣言された "すべてのエンティティ" に適用できる場合、手順は次のように若干異なります。
- [詳細設定] を開きます。
- [設定ソリューション]> に移動します。
- [ 新規 ] を選択して新しいソリューションを作成し、コマンドと Active ソリューション レイヤーの一覧のコマンド チェッカーのソリューション レイヤーに表示される値を Publisher に設定します。
- [クライアント拡張機能>] [既存のアプリケーション リボンの>追加]の順に選択します。
- [保存] を選択します。
- [ ソリューションのエクスポート] を選択し、アンマネージド ソリューションをエクスポートします。
- .zip ファイルを抽出します。
- customizations.xml ファイルを開きます。
- ルート
<RibbonDiffXml>
ノードを見つけます。 - ノードを
<CommandDefinition>
見つけます。 - ノードを
<RibbonDiffXml>
編集して、コマンドを修正するために<CommandDefinition>
正しい状況でコマンドが正しく機能するようにノードに必要な変更を加えます。 コマンドを宣言する方法の詳細については、「リボン コマンドの定義」および 「リボンアクションの定義」を参照してください。 - customizations.xml ファイルを保存します。
- 変更した customizations.xml ファイルを圧縮されたソリューション .zip ファイルに復元します。
- ソリューション ファイルをインポートします。
- [ すべてのカスタマイズの発行] を選択します。
コマンドは、私が作成したカスタムマネージドソリューションからのものです。
作成したカスタム マネージド ソリューションによってインストールされたコマンドを修正するには、次の手順に従います。
- カスタム ソリューションのアンマネージド ソース バージョンを持つ個別の開発organizationで、[The] コマンドの上記の手順をアンマネージド Active ソリューション オプションで実行します。
- カスタム ソリューションのバージョンをインクリメントします。
- ソリューションをマネージドとしてエクスポートします。
- 影響を受ける別のorganizationで、この新しいバージョンのカスタムマネージド ソリューションをインポートします。
コマンドは、私が作成しなかったカスタムマネージドソリューションから、または私のorganizationが所有していない(サードパーティまたはISVから)です。
サード パーティまたは ISV によって作成されたカスタムマネージド ソリューションによってインストールされたコマンドを修正するには、ソリューションの作成者に連絡して、固定コマンド定義を含むソリューションの新しいバージョンを要求し、影響を受けるorganizationにこの新しいソリューションをインストールする必要があります。
コマンドは、Microsoft が発行したマネージド ソリューション内にあります。
Microsoft が発行したマネージド ソリューションによってインストールされたコマンドを修正するには、新しいバージョンのソリューションをインストールする必要がある場合があります。 これは通常、リリースの更新中に行われます。 修正が必要なバグを特定した可能性があります。 サポートについては、カスタマー サポートにお問い合わせください。