エンティティにバインドされたグリッドでのデータ行の既定オープン動作の上書き

ヒント

このトピックは、従来のコマンドに関するものです。

コマンドを定義する新しい方法があります。 最新コマンドの概要 (プレビュー).

エンティティ バインド グリッド内のデータ行の既定のオープン動作をオーバーライドして、行を選択すると、URL を開くなどのカスタム アクションが実行されるようにする方法について説明します。 既定では、次のいずれかのアクションでテーブル レコードが開きます。

  • データ行をダブルクリックするか、行のプライマリ列のリンクを選択します。
  • データ行を選択して、Enter キーを押します。
  • タッチ対応デバイスでデータ行を選択します。

(デフォルトの動作である) テーブル レコードを開かずに、JavaScript 関数を使用して URL を開くなどのカスタム アクションを実行する場合もあります。 ID パラメータ Mscrm.OpenRecordItem の値として CommandDefinition を持つテーブルのコマンド定義を作成し、アクション タブでカスタム アクションを定義することで、既定の動作を上書きし、独自のカスタム動作を定義できます。アプリケーションは、エンティティ バインド グリッドからレコードを開こうとしたときに、テーブルの Mscrm.OpenRecordItem コマンド ID を検索し、存在する場合は、テーブル レコードを開く既定の動作を実行する代わりに、カスタム アクションを実行します。

ヒント

  • この機能は、統一インターフェイスでのみサポートされます。
  • コミュニティ ツールであるリボン ワークベンチを使用して、UI を使用してリボンを視覚的に編集することもできます。 コミュニティにより作成されたツールは Microsoft ではサポートされていないことに注意してください。 コミュニティ ツールに関するご質問または問題については、ツールの発行元にお問い合わせください。

テーブル レコードが選択されたときにカスタム アクションを指定するには、次の手順を実行します。

  1. アクションを実行する Web リソースを作成します。
  2. customization.xml ファイルを編集して、フォームにカスタム ボタンを作成します。
  3. customization.xml ファイルをインポートします。

ステップ 1: Web リソースを作成する

既定の動作を変更する Web リソースを作成します。 次の例では、レコードを表示する代わりに URL を開く場合は、そのアクションを実行する JavaScript Web リソースを作成します。

新しいソリューションを作成するか、既存のソリューションを編集する

  1. 「ソリューションの作成」の手順に従うか、サインインしてPower Appsし、左側のナビゲーションから [ソリューション] を選択します。 編集するアンマネージド ソリューションを選択します。

  2. ソリューションを開き、左側のナビゲーションで [オブジェクト] を選択します。

  3. メニューの [ + 新規>詳細>Web リソース] を選択します。

    JavaScript Web リソースを作成するためのメニュー オプションのスクリーンショット。

  4. 次のコードをコピーし、[ コード ] フィールドに貼り付けて、開く URL の値を編集します。

    function ChangeBehavior(){
    
     // Enter the url
     var url =  "Enter the URL";
     var OpenUrlOptions = {height: 800, width: 1000};
     Xrm.Navigation.openUrl(url, openUrlOptions);
    }
    
  5. Web リソースの 名前 を入力し、 ファイルの種類 として JavaScript (JS) を選択します。

  6. Web リソースを保存して発行します。

ステップ 2: カスタム ボタンを作成する

既定の動作を変更するカスタム ボタンをフォームに作成します。 たとえば、アカウント フォーム上にサブグリッドに取引先担当者レコードを表示するサブグリッドがある場合、ボタンを作成して取引先担当者フォームに追加する必要があります。 ボタンを作成するには、customization.xml ファイルを編集します。

  1. ステップ 1 で作成したソリューションを開き、ボタンを作成するテーブルを追加します。 すべてのテーブル コンポーネントとメタデータを含める必要はありません。

  2. 既存の追加>テーブルを選択します。

  3. リストから、連絡先を選択します。

  4. ソリューションを保存し、公開します。

  5. [概要] に移動し、[エクスポート] を選択して、customization.xml ファイルを編集します。

    アンマネージド ソリューションの [エクスポート] コマンドのスクリーンショット。

  6. 発行していない最近の変更を行った場合は、[ 発行] を選択し、[ 実行 ] を選択して、ソリューションに問題または依存関係があるかどうかを確認してから、[ 次へ] を選択します。

    エクスポート前にソリューションを発行するオプションのスクリーンショット。

  7. [アンマネージド] オプションを選択した状態で、[エクスポート時にソリューション チェッカーを実行] を選択し、[エクスポート] を選択します

    ソリューションのエクスポートで [アンマネージド] オプションが選択されているスクリーンショット。

  8. ソリューションの準備ができたら、[ダウンロード] ボタンを選択してください。

    foo

  9. [ ダウンロード ] ダイアログ ボックスで、[ フォルダーを開く] を選択します。

  10. 右クリックして、ダウンロードした圧縮 .zip ファイルを選択し、[ すべて抽出...] を選択します。

  11. ファイルを展開する場所を選択してから、展開 を選択します。

    customizations.xml ファイルは、編集するファイルです。

    ヒント

    ボタンは有効または無効にできますが、どちらの場合も、開く際の既定の動作はオーバーライドされます。

  12. customization.xml ファイルを開き、次のコードをコピーして、RibbonDiffXml内のコードを置き換えます。

    <RibbonDiffXml>
    <CustomActions>
      <CustomAction Id="cr5c1.Mscrm.OpenRecordItem.CustomAction"
        Location="Mscrm.SubGrid.contact.MainTab.Management.Controls._children"
        Sequence="28">
        <CommandUIDefinition>
          <Button Alt="$LocLabels:Mscrm.OpenRecordItem.Alt"
            Command="Mscrm.OpenRecordItem"
            Id="Mscrm.OpenRecordItem"
            LabelText="$LocLabels:Mscrm.OpenRecordItem.LabelText"
            Sequence="28"
            TemplateAlias="o1"
            ToolTipTitle="$LocLabels:Mscrm.OpenRecordItem.ToolTipTitle"
            ToolTipDescription="$LocLabels:Mscrm.OpenRecordItem.ToolTipDescription" />
        </CommandUIDefinition>
      </CustomAction>
    </CustomActions>
    <Templates>
      <RibbonTemplates Id="Mscrm.Templates" />
    </Templates>
    <CommandDefinitions>
      <CommandDefinition Id="Mscrm.OpenRecordItem">
        <EnableRules />
        <DisplayRules />
        <Actions>
          <JavaScriptFunction FunctionName="ChangeBehavior"
            Library="$webresource:cr5c1_samplescript" />
        </Actions>
      </CommandDefinition>
    </CommandDefinitions>
    </RibbonDiffXml>
    

    ヒント

    前の XML ファイルの関数名と Web リソースの名前を置き換える必要があります。 上記の XML ファイル例を編集して、独自の既定の発行元に置き換えます。

    次の使用例は、サブグリッドの連絡先レコードを表示するアカウント フォームのサブグリッドのボタンを変更します。 したがって、LocationLocation="Mscrm.SubGrid.contact.MainTab.Management.Controls._children" です。 別のボタンに適用するには、この値を変更する必要があります。

ステップ 3: XML ファイルをインポートする

  1. customization.xml ファイルを編集したら、含まれているフォルダーを開きます。

  2. ソリューションを展開したときに含まれていたすべてのファイルまたはフォルダーを選択します。 選択したファイルを右クリックし、[圧縮先...] を選択して、次に [ZIP ファイル] を選択します。

    ヒント

    この手順では、圧縮された .zip ファイルを同じフォルダーに作成します。 ファイル名は異なりますが、.zip ファイル名拡張子を除き、フォルダー内の他のファイルの 1 つと同じです。

  3. Power Apps にサインインして、左ウィンドウから ソリューション を選択します。

  4. コマンド バーで、[ソリューションの インポート] を選択します。

    [ソリューション] コマンド バーの [インポート] コマンドのスクリーンショット。

  5. [ ソリューションのインポート ] ページで、[ 参照 ] を選択して、インポートするソリューションを含む圧縮 .zip ファイルを見つけます。

  6. 次へ を選択します。

  7. ソリューションに関する情報を表示するページで、インポート を選択します。

  8. インポートが完了するまでしばらく待ちます。 結果を表示し、閉じる を選択します。

発行が必要な変更をインポートする場合は、カスタマイズを公開してから使用できるようにする必要があります。

インポートが成功しなかった場合は、キャプチャされたエラーまたは警告を示すレポートが表示されます。 インポートが失敗した原因に関する詳細を確認するために、ログ ファイルのダウンロード を選択します。 インポートの失敗の最も一般的な原因は、ソリューションに必要なコンポーネントが含まれていなかったことです。

ログ ファイルをダウンロードすると、Excelで開いて内容を表示できる XML ファイルが表示されます。

参照

リボン ワークベンチ
リボンのカスタマイズ