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

注意

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

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

既定では、エンティティ バインド グリッドのデータ行で次のアクションのいずれかを実行すると、テーブル レコードが開きます:

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

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

注意

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

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

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

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

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

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

  2. 新しいソリューション を選択し、ソリューションに必要な列を入力します。

    Column 内容
    表示名 ソリューションの一覧に表示される名前。 これは後で変更できます。
    名前 ソリューションの一意の名前。 これは、表示名 列に入力した値を使用して生成されます。 ソリューションを保存する前に編集できますが、保存後は変更できません。
    公開元 既定の発行者を選択するか、または新しい発行元を作成できます。 ソリューションを使用する環境全体で一貫して使用できるように、組織の発行元を作成することをお勧めします。
    バージョン ソリューションのバージョン番号を入力します。 これは、ソリューションをエクスポートする場合にのみ重要です。 バージョン番号は、ソリューションをエクスポートしたときにファイル名に含まれます。
  3. 保存を選択します。

  4. ソリューションを開き、新規 > その他 > Web リソース を順に選択します。

    Web リソースを作成する。

  5. Web リソースの名前を入力し、種類JavaScript (JS) を選択します。

  6. テキスト エディター を選択し、次のコードをコピーしてテキスト エディターに貼り付け、開きたい URL の値を入力します:

    function ChangeBehavior(){
    
     // Enter the url
     var url =  "Enter the URL";
     var OpenUrlOptions = {height: 800, width: 1000};
     Xrm.Navigation.openUrl(url, openUrlOptions);
    }
    
  7. Web リソースを保存して発行します。

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

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

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

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

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

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

  5. エクスポート を選択し、customization.xml ファイルを編集します。

    ソリューションのエクスポート。

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

    ソリューションの公開。

  7. アンマネージド オプションを選択した状態で、エクスポート を選択します。

    アンマネージド ソリューション。

  8. ダウンロード ダイアログ ボックスで、保存 を選択し、ダウンロードの完了 ダイアログ ボックスで、フォルダを開く を選択します。

  9. ダウンロードした圧縮 .zip ファイルを右クリックして選択し、すべて展開 を選択します。

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

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

    注意

    ボタンを有効または無効にでき、どちらを実行しても、開いている既定の動作は上書きされます。

  11. Customize.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 ファイルを編集後、右クリックして customization.xml タブを選択し、含んでいるフォルダーを開く を選択します。

  2. ソリューションを展開したときに含まれていたすべてのファイルまたはフォルダーを選択します。 選択中のファイルを右クリックし、送るをポイントし、圧縮 (zip 形式) フォルダーをクリックします。

    注意

    ZIP 圧縮ファイルが同じフォルダーに作成されます。 ファイル名は異なりますが、.zip ファイル名の拡張子を除いて、フォルダ内の他のファイルのいずれかと同じになります。

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

  4. コマンド バーで インポート を選択します。

    ソリューションのインポート

  5. ソリューション パッケージの選択 ページで、参照 を選択し、インポートするソリューションが含まれている圧縮 (.zip または .cab) ファイルを検索します。

  6. 次へ を選択します。

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

  8. インポートが完了するまで、数分待つ必要がある場合があります。 結果を表示し、閉じる を選択します。

公開が必要な変更をインポートした場合、それらを使用可能にする前に、カスタマイズを公開する必要があります。

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

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

関連項目

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

注意

ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)

この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。