次の方法で共有


Power Apps でコマンド バーのボタンが正しく動作しない

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

ボタンが正しく動作しない理由を特定する

いくつかの要因により、ボタン アクションが失敗する可能性があります。 これには、ボタンに関連付けられているコマンド定義が正しく宣言されていない無効なリボンのカスタマイズが含まれます。

警告

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

コマンドが正しく宣言されていない場合、ボタンを選択すると何も行わないか、エラー メッセージが表示されることがあります。

お客様の状況に最も適した次のいずれかのオプションを選択して、最適な解決策を提供します。 既定では、最初のタブが選択されています。

選択したときに何もしないボタンを修正する

ボタンが選択され、何も発生しない場合、これは通常、ボタンに関連付けられている command の正しくない構成が原因で発生します。

アクションJavaScriptFunction値を宣言するときに発生する一般的なコマンド構成の誤り次に示します。 これらの間違いは、ボタンが誤動作し、選択されたときに何も行わないかのように見える可能性があります。

  • 無効な FunctionName: JavaScript 関数の名前が、Library プロパティに割り当てられている JavaScript Web リソースの有効な関数名と一致しません。
  • 無効なライブラリ: このパスは、有効な JavaScript Web リソースを参照していないか、 $webresource:でプレフィックス付けされていません。
  • パラメーターがありません: JavaScript 関数は特定のパラメーターを想定しており、コマンド定義ではそれらを宣言しません。
  • 正しくないパラメーターの型または順序: パラメーターは、正しくない型を使用して宣言されているか、JavaScript 関数宣言に記載されているものとは異なる順序で宣言されます。

詳細な構成のヘルプについては、「 既定のリボン アクション を参照してください。

これらの構成が正しい場合は、JavaScript コード エラーが原因である可能性があります。 カスタム JavaScript 関数が正しくコーディングされておらず、予期した動作を呼び出さない場合、ボタンは期待どおりに機能しません。 一覧に示されている構成ミスのいずれかが見つかると、問題を解決するためにコマンド定義を修正します。 それ以外の場合は、ボタンが正しく動作するように JavaScript 関数コードをデバッグして修正する必要がある場合があります。

ボタン コマンドの内容と、正しくない定義をインストールしたソリューションを特定します。

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

  2. コマンドのプロパティ タブを選択して、このボタンのコマンドの詳細を表示します。

    ボタンの [コマンドのプロパティ] タブのスクリーンショット。

  3. Command プロパティ タブには、アクションと対応するJavaScriptFunction構成が表示されます。 コマンド名の下にある View コマンド定義ソリューション レイヤー リンクを選択して、コマンドの定義をインストールしたソリューションを表示します。

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

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

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

    複数のレイヤーがある場合は、2 つの行を選択し、 Compare を選択して、各ソリューションによって提供される定義の比較を表示できます。

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

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

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

  5. 現在アクティブな定義と以前の非アクティブな定義の比較が表示され、存在する場合は違いが表示されます。 次の例は、アンマネージド Active 定義が、Microsoft が公開したシステム ソリューション レイヤーの他の非アクティブな定義と比較して、 FunctionName 値を誤って指定することによってカスタマイズされたことを示しています。 FunctionName値はXrmCore.Commands.Delete.deletePrimaryRecordと想定されますが、カスタム定義はFunctionName="deletePrimaryRecord"宣言されています。 この場合、関数が見つからないため、ボタンを選択しても何も発生しません。

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

  6. ボタンのアクション機能を修正するために必要なアプローチは、特定のシナリオのさまざまなカスタマイズによって異なります。 この例を考えると、コマンドは正しくない FunctionName 値を指定してカスタマイズされました。 コマンドのカスタム バージョンを変更し、 FunctionName 値を修正できます。 これは Microsoft が公開した定義のカスタム オーバーライドであり、その他の意図的な変更はないため、既定の機能を復元するには、このカスタム バージョンのコマンドを削除することをお勧めします。

次のいずれかの修復オプションを選択します。

オプション 1: JavaScriptFunction 宣言が正しくないコマンドを削除する
このコマンドは、アンマネージド Active ソリューション内にあります。

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

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

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

  1. [Advanced Settings を開きます。

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

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

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

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

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

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

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

  9. ZIP ファイルを展開します。

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

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

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

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

  13. <RibbonDiffXml> ノードを編集して、削除するコマンドの ID を持つ特定の<CommandDefinition> ノードを削除します。 存在する可能性のある他の <CommandDefinition> ノードを誤って削除しないようにしてください。 (この例に基づいて、ID がMscrm.DeletePrimaryRecordされている<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. 影響を受ける別の組織で、この新しいバージョンのカスタム管理ソリューションをインポートします。
このコマンドは、私の会社が作成しなかったカスタム管理ソリューションからのコマンドです (第 3 部または ISV から)。

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

オプション 2: JavaScriptFunction 宣言のコマンドを修正する
このコマンドは、アンマネージド Active ソリューション内にあります。

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

警告

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

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

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

  1. [Advanced Settings を開きます。

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

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

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

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

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

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

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

  9. ZIP ファイルを展開します。

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

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

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

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

  13. <RibbonDiffXml> ノードを編集し、<CommandDefinition> ノードに必要な変更を加えます。このノードを使用すると、コマンドを修正するための正しい状況でコマンドが正しく機能するようになります。 コマンドを宣言する方法の詳細については、「 Define リボン コマンド」および「 Define リボン アクションを参照してください。 (この例に基づいて、FunctionName値を XrmCore.Commands.Delete.deletePrimaryRecord に設定して、<CommandDefinition> ノードのJavaScriptFunctionを変更します)。

    FunctionName 値を設定して CommandDefinition ノードの JavaScriptFunction を変更するスクリーンショット。

  14. 変更した customizations.xml ファイルをソリューション .zip ファイルに復元します。

  15. ソリューション ファイルのインポート。

  16. すべてのカスタマイズの公開 を選択します。

コマンドはアプリケーション リボンにあります ("すべてのエンティティ" に適用されます)

コマンドがエンティティ固有ではなく、アプリケーション リボンで宣言されている "すべてのエンティティ" に適用できる場合、手順は次のように若干異なります。

  1. [Advanced Settings を開きます。
  2. 設定>ソリューションの順に移動します。
  3. New を選択して新しいソリューションを作成し、コマンドのコマンド チェッカーのソリューション レイヤーとアクティブ ソリューション レイヤーの一覧に表示される値に Publisher を設定します。
  4. Client 拡張機能>既存のリボン>追加を選択します。
  5. [保存] を選択します。
  6. Export Solutionを選択し、アンマネージド ソリューションをエクスポートします。
  7. ZIP ファイルを展開します。
  8. customizations.xml ファイルを開きます。
  9. ルート <RibbonDiffXml> ノードを見つけます。
  10. <CommandDefinition>を見つけます。
  11. <RibbonDiffXml> ノードを編集して、<CommandDefinition> ノードに必要な変更を加えます。このノードを使用すると、コマンドを修正するための正しい状況でコマンドが正しく機能するようになります。 コマンドを宣言する方法の詳細については、「 Define リボン コマンド」および「 Define リボン アクションを参照してください。
  12. customizations.xml ファイルを保存します。
  13. 変更した customizations.xml ファイルを圧縮ソリューション .zip ファイルに復元します。
  14. ソリューション ファイルのインポート。
  15. すべてのカスタマイズの公開 を選択します。
このコマンドは、私が作成したカスタム管理ソリューションからのものです。

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

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

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

"JavaScript アクション ライブラリが無効です"](#tab/error) というスクリプト エラー メッセージが表示される

選択時にエラーを表示するボタンを修正する

リボン のコマンド バー ボタンが選択され、エラーが発生した場合、エラーは通常、リボン コマンド のカスタマイズが正しくなされていないことが原因で発生します。

スクリプト エラー "JavaScript アクション ライブラリが無効です" を修正しました

次のようなスクリプト エラー メッセージが表示される場合があります。

無効な JavaScript アクション ライブラリ: [スクリプト名] は Web リソースではなく、サポートされていません。

スクリプト エラー メッセージの例を示すスクリーンショット。

これは、コマンドの JavaScriptFunctionで不適切なライブラリを宣言した無効なリボン コマンドのカスタマイズが原因で発生します。

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

  2. 次の例は、アカウント エンティティのフォーム ページの New ボタンが表示され、 New というラベルの付いたアイテムで表されます。

    スクリーンショットは、アカウント エンティティのフォーム ページの [新規] ボタンを示しています。

  3. コマンドのプロパティ タブを選択して、このボタンのコマンドの詳細を表示します。 これにより、 Actions JavaScriptFunction 宣言と、各ルール評価の結果 (TrueFalseSkipped) と共にルールが有効または表示されます。

    [chevron]\(シェブロン\) アイコンを選択してJavaScriptFunction展開し、関数宣言の詳細を表示します。 Library プロパティは JavaScript Web リソースであり、プレフィックスとして $webresource: である必要があります。 次の例は、Library プロパティが _/_static/common/scripts/RibbonActions.js であることを示しています。 これは、有効な JavaScript Web リソースへのパスではありません。 次に、コマンドのソリューション レイヤーを確認して、問題を解決するための正しい値を特定する必要があります。

    Library プロパティの例を示すスクリーンショット。

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

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

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

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

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

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

    次の図は、この例のコマンドのソリューション レイヤーを示し、2 つのソリューション レイヤーがあることを示しています。1 つは、Active というタイトルのソリューションで示されるアンマネージド カスタマイズであり、もう 1 つは Microsoft によって公開されたシステム ソリューションからのカスタマイズです。 実際のシナリオは異なる場合があります。アクティブなソリューション レイヤーがない場合、マネージド ソリューションがあり、そのソリューションの名前がここに表示される場合があります。

    上位 2 行を選択し、 Compare を選択して、各ソリューションによって取り込まれた定義の比較を表示します。 ソリューション レイヤーが 1 つしかない場合は、この手順をスキップします。

    上位 2 行を選択し、[比較] オプションを選択して定義の比較を表示するスクリーンショット。

  6. コマンド定義間の比較では、2 つのレイヤー間に存在する可能性のある相違点が表示されます。 次の例は、Library の値が異なっていることを明確に示しています。 Active ソリューションからのアンマネージド エントリが正しくないパス _/_static/common/scripts/RibbonActions.js (特定のパスが若干異なる場合があります) に設定され、Microsoft の既定の定義でライブラリが $webresoure:Main_system_library.jsに設定されています。 これは、この特定のコマンドでサポートされているパスです (この値は、特定のコマンドによって異なる場合があります)。 サポートされている唯一のパスは、 $webresource: で始まり、有効な JavaScript Web リソースの名前で終わるパスです。

    [ライブラリ] の値が異なる例を示すスクリーンショット。

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

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

このコマンドは、アンマネージド Active ソリューション内にあります。

コマンドを修正する方法は、定義が唯一のものかどうか、または他の非アクティブな定義があるかどうか、および変更が意図的なものかどうかによって異なります。

シナリオを反映するオプションを選択します。

  • このコマンドには意図的な変更がないため、このカスタム レイヤーを削除します。

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

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

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

    1. [Advanced Settings を開きます。

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

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

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

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

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

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

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

    9. ZIP ファイルを展開します。

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

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

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

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

    13. <RibbonDiffXml> ノードを編集して、特定の<CommandDefinition> ノードを削除します。 存在する可能性のある他の <CommandDefinition> ノードを誤って削除しないようにしてください。 (この例に基づいて、ID がMscrm.NewRecordFromFormされている<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. すべてのカスタマイズの公開 を選択します。
  • このコマンドには、保持する追加の変更があり、このソリューション レイヤーを修正する必要があります。

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

    警告

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

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

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

    1. [Advanced Settings を開きます。

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

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

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

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

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

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

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

    9. ZIP ファイルを展開します。

    10. customizations.xml ファイルを開く

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

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

      スクリーンショットは、ID が Mscrm.NewRecordFromForm である CommandDefinition ノードの場所を示しています。

    13. <RibbonDiffXml>を編集して、<CommandDefinition> ノードに必要な変更を加えます。このノードを使用すると、コマンドを修正するための正しい状況でコマンドが正しく機能するようになります。 コマンドを宣言する方法の詳細については、「 Define リボン コマンド および Define リボン アクションを参照してください。 (この例に基づいて、Library="$webresoure:Main_system_library.js"を設定して<CommandDefinition> ノードを変更し、FunctionName値が一致することを確認します。この例では、FunctionName="XrmCore.Commands.Open.openNewRecord")。

      CommandDefinition ノードを変更し、FunctionName 値が一致することを確認するスクリーンショット。

    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> ノードを編集して、<CommandDefinition> ノードに必要な変更を加えます。このノードを使用すると、コマンドを修正するための正しい状況でコマンドが正しく機能するようになります。 コマンドを宣言する方法の詳細については、「 Define リボン コマンド」および「 Define リボン アクションを参照してください。
    12. customizations.xml ファイルを保存します。
    13. 変更した customizations.xml ファイルを圧縮ソリューション .zip ファイルに復元します。
    14. ソリューション ファイルのインポート。
    15. すべてのカスタマイズの公開 を選択します。
このコマンドは、私が作成したカスタム管理ソリューションからのものです。

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

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

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

このコマンドは、Microsoft が公開したマネージド ソリューション内にあります。

Microsoft が公開したマネージド ソリューションによってインストールされたコマンドを修正するには、新しいバージョンのソリューションをインストールする必要がある場合があります。 これは通常、リリースの更新中に行われます。 修正が必要なバグを特定している可能性があります。 サポートについては、カスタマー サポートにお問い合わせください。