次の方法で共有


URL を使用してフォーム、ビュー、ダイアログ、およびレポートを開く

URL アドレス指定が可能な要素を使用すると、他のアプリケーションに Dynamics 365 Customer Engagement (on-premises) のフォーム、ビュー、ダイアログ、およびリポートへのリンクを含めることができます。 これにより、他のアプリケーション、レポート、または Web サイトを容易に拡張できるため、ユーザーはアプリケーションを切り替えなくても情報を表示したりアクションを実行したりできるようになります。

Note

  • URL アドレス指定が可能なフォーム、ビュー、ダイアログ、およびレポートは、Dynamics 365 Customer Engagement (on-premises) のセキュリティを回避することはできません。 セキュリティ ロールに基づいて、ライセンスを受けた Dynamics 365 Customer Engagement (on-premises) ユーザーだけが、表示されるデータとレコードにアクセスできます。
    • アプリケーション内で Web リソースを使用して、エンティティ フォームをプログラムで開くときは、Xrm.Navigation.openForm を使用します。 window.open を使用しないでください。
    • ページが Xrm.Navigation.openForm 関数にアクセスできないアプリケーションの外では、window.open またはリンクを使用してエンティティの特定のレコードまたはフォームを開きます。

URL アドレス指定が可能なフォームとビュー

すべてのエンティティ フォームとビューが main.aspx ページに表示されます。 このページに渡されたクエリ文字列パラメーターによって、表示される内容が制御されます。 たとえば、次のようになります。

設置型 Dynamics 365 Customer Engagement (on-premises) の新しい取引先企業エンティティ レコード フォームを開く場合:

https://mycrm/myOrg/main.aspx?etn=account&pagetype=entityrecord  

ID が {91330924-802A-4B0D-A900-34FD9D790829} の Dynamics 365 for Customer Engagement のアカウント エンティティ レコード フォームを開く:

https://myorg.crm.dynamics.com/main.aspx?etn=account&pagetype=entityrecord&id=%7B91330924-802A-4B0D-A900-34FD9D790829%7D  

Dynamics 365 for Customer Engagement のクローズした営業案件ビューを開くには:

https://myorg.crm.dynamics.com/main.aspx?etn=opportunity&pagetype=entitylist&viewid=%7b00000000-0000-0000-00AA-000010003006%7d&viewtype=1039  

ナビゲーション バーやコマンド バーなしで、Dynamics 365 for Customer Engagement のアクティブな連絡先ビューを開くには

https://myorg.crm.dynamics.com/main.aspx?etn=contact&pagetype=entitylist&viewid={00000000-0000-0000-00AA-000010001004}&viewtype=1039&navbar=off&cmdbar=false  

Note

showModalDialog または showModelessDialog を使用してダイアログ ウィンドウでエンティティ フォームを開くことはサポートされていません。

別のエンティティ フォームに埋め込まれた iFrame 内のエンティティ フォームを表示することはサポートされていません。

通常は、getClientUrl メソッドを使用して、オンプレミスの Dynamics 365 Customer Engagement (on-premises) と Dynamics 365 for Customer Engagement の両方について組織のルート URL を取得します。

Main.aspx ページのクエリ文字列パラメーター

チップ

レコードの ID 値を取得するには、コマンド バーのリンクの送信ボタンを使用します。 電子メール アプリケーションで開かれる例を次に示します。

<https://mycrm/myOrg/main.aspx?etc=4&id=%7b899D4FCF-F4D3-E011-9D26-00155DBA3819%7d&pagetype=entityrecord>.

URL に渡される id パラメーターは、レコードのエンコードされた id 値です。 この例では、id 値は {899D4FCF-F4D3-E011-9D26-00155DBA3819} です。 GUID のエンコードされたバージョンは、「%7B」および「%7D」のそれぞれがある開閉括弧「{”および“}」を置き換えます。

次に、エンティティ フォームやビューを開くために main.aspx ページで使用されるクエリ文字列パラメーターを示します。

パラメーター 設定
etn エンティティの論理名です。 重要: エンティティに整数コードを含む etc (エンティティの種類コード) パラメーターは使用しないでください。 この整数コードは、異なる組織のユーザー定義エンティティでは異なります。
extraqs フォームではオプションです。 このパラメーターには、このパラメータ内のエンコードされたパラメーターが含まれます。

このパラメーターを使用してフォームに値を渡します。 詳細については、「フォームに渡すパラメーターを使用してフィールド値を設定する」を参照してください。

エンティティに複数のフォームが定義されている場合は、このパラメーターを使用して、フォームの ID 値と等しい値を持つエンコードされたパラメーター formid を渡すことで、開くフォームを指定できます。 たとえば、‘6009c1fe-ae99-4a41-a59f-a6f1cf8b9daf’ の ID を持つフォームを開くためには、extraqs パラメーターにある次の値を含ませます: formid%3D6009c1fe-ae99-4a41-a59f-a6f1cf8b9daf%0D%0A
pagetype ページの種類です。 指定できる値は 2 つあります。

- entityrecord
エンティティ レコード フォームを表示します。
- entitylist
エンティティ ビューを表示します。
id フォームではオプションです。 特定のエンティティ レコードを開く場合に使用します。 エンティティのエンコードされた GUID 識別子を渡します。 GUID のエンコードされたバージョンは、「%7B」および「%7D」のそれぞれがある開閉括弧「{”および“}」を置き換えます。たとえば、{91330924-802A-4B0D-A900-34FD9D790829}%7B91330924-802A-4B0D-A900-34FD9D790829%7D です。
viewid ビューでは必須です。 これは、ビューを定義する savedquery または userquery エンティティ レコードの ID です。 ビューの URL を取得する最も簡単な方法は、その URL をコピーすることです。 詳細については、「ビューの URL のコピー」を参照してください。
viewtype ビューの種類を定義します。 使用できる値は次のとおりです。

- 1039
システム ビューに使用します。 viewidsavedquery レコードの ID を表します。
- 4230
個人用ビューに使用します。 viewiduserquery レコードの ID を表します。
navbar サイト マップで定義されているエリアとサブエリアを使用して、ナビゲーション バーを表示するかどうか、およびアプリケーションのナビゲーションを使用可能にするかどうかを制御します。

- on
ナビゲーション バーが表示されます。 これは、navbar パラメーターが使用されていない場合の既定の動作です。
- off
ナビゲーション バーは表示されません。 他のユーザー インターフェイス要素、または戻るボタンと進むボタンを使用して移動できます。
- entity
エンティティ フォームでは、関連するエンティティのナビゲーション オプションのみが利用可能です。 関連エンティティへの移動の後は、ナビゲーション バーに [戻る] ボタンが表示され、元のレコードに戻ることができます。
cmdbar コマンド バーを表示するかどうかを制御します。 注: この機能は Dynamics 365 アプリ用 Unified Service Desk の要件をサポートしています。 これを使用して別のエンティティ フォームに埋め込まれた IFrame 内のエンティティ フォームを表示することは、サポートされていません。

- true
コマンド バーが表示されます。 これが既定です。
- false
コマンド バーが非表示になります。

ビューの URL のコピー

Dynamics 365 Customer Engagement (on-premises) の多くのビューには、特定のビューの URL をコピーしたり、電子メールのメッセージに特定のビューの URL を埋め込んで送信したりできる機能が備えられています。 この機能により、ユーザー間のやり取りが容易になり、ユーザーが別のアプリケーション (SharePoint サイトなど) に含めることのできるビューの URL にもアクセスできるようになります。

Note

この URL は、サイト マップを使用してアプリケーション ナビゲーションにビューを含めるときは使用しないでください。 詳細については、「サイト マップを使用したアプリケーション ナビゲーションへのビューの表示」を参照してください。

URL で表示されるページにはビュー全体が含まれます。 これにはリボンが含まれますが、アプリケーション ナビゲーションは含まれません。

ビューの URL の取得
  1. 使用するビューを開きます。

  2. コマンド バーで、リンクの送信をクリックし、次に現在のビューをクリックします。

  3. リンクをメモ帳に貼り付けて編集し、テキストから必要な URL 部分のみ抽出します。

Note

  • ユーザー コンテキストをパラメーターとして使用するビュー (自分の取引先企業など) はコピーできません。
    • システム エンティティのシステム ビューを表す GUID は、どの設置型バージョンの Dynamics 365 Customer Engagement (on-premises) をインストールした場合でも同じになります。 ユーザー定義エンティティおよびユーザー定義ビューの GUID は、Dynamics 365 Customer Engagement (on-premises) のインストールごとに一意になります。

サイト マップを使用したアプリケーション ナビゲーションへのビューの表示

サイト マップを使用してアプリケーション ナビゲーションをカスタマイズするときは、URL の設定に、ビューに URL をコピーする の手順に従って、アプリケーションからコピーしたビューの URL を使用しないでください。 これはリボンを含むページを表示する URL であり、<SubArea> Url 属性で使用すると望ましくない結果が生じます。

SubArea のアプリケーションに含まれるエンティティ レコードの一覧を表示するには、Entity 属性の値を設定します。 これにより、そのエンティティの既定のビューが正しいタイトルとアイコンで表示されます。

特定の初期設定ビューを使用する SubArea 要素が必要な場合は、統一インターフェイスで作業する際にに次の URL パターンを使用します。

[Organization Url]/main.aspx?pagetype=entitylist&etn=<entity logical name >&viewid=%7b00000000-0000-0000-0000-000000000000%7d&viewType=1039

旧式のWebクライアントでは、次のURLを使用してください。

[Organization Url]/homepage.aspx?etn=<entity logical name >&viewid=%7b00000000-0000-0000-0000-000000000000%7d  

この URL を使用するときは、さらに、<Titles><Descriptions> に適切な値を指定し、エンティティのアイコンを指定する必要があります。

Note

.../homepage.aspx ページを使用してビューを指定した場合も、ビュー セレクターは表示されます。 ユーザーがビューを変更した場合、ユーザーが最後に選択したビューが Dynamics 365 Customer Engagement (on-premises) で記憶され、ブラウザーを閉じて次に開いたときに既定の初期ビューが表示されます。

URL を使用してダイアログ プロセスを開く

一般的なカスタマイズは、ユーザーが特定のレコードのコンテキストで特定のダイアログ プロセスを開けるようにすることです。 たとえば、現在のレコードの id 値をダイアログ プロセスの入力パラメーターとして使用して、特定のエンティティのリボンにカスタム ボタンを追加できます。

ダイアログを開くには、以下が必要です。

  • ダイアログの一意識別子。

  • ダイアログの作成対象のエンティティの論理名。

  • ダイアログの実行対象のレコードの一意識別子。

チップ

ダイアログの一意識別子を取得するには、設定に移動し、既定のソリューションでプロセスを選択します。 プロセスを選択し、コマンド バーのアクションオプションで、リンクのコピーをクリックします。 これにより、たとえば [organization url]/sfa/workflow/edit.aspx?id=%7b6A6E93C9-1FE6-4C07-91A9-E0E2A7C70976%7d のように、ダイアログを編集するためのリンクがクリップボードにコピーされます。

次の例では、ダイアログを開くための URL とクエリ文字列パラメーターを示します。

[organization url]/cs/dialog/rundialog.aspx?DialogId=[dialog unique identifier]&EntityName=[entity logical name]&ObjectId=[unique identifier for the record]  

たとえば、アカウント レコード ID ={40C9ADFD-90A8-DF11-840E-00155DBA380F} を持つ ID ={6A6E93C9-1FE6-4C07-91A9-E0E2A7C70976} でダイアログを開くには、次の例にある URL を使用します。

[organization url]/cs/dialog/rundialog.aspx?DialogId=%7b6A6E93C9-1FE6-4C07-91A9-E0E2A7C70976%7d&EntityName=account&ObjectId=%7b40C9ADFD-90A8-DF11-840E-00155DBA380F%7d  

チップ

Internet Explorer 以外のブラウザーでは、ダイアログ プロセスをリンクから開いた場合に、完了ボタンが機能しないことがあります。 この場合、データは保存されますが、ウィンドウの閉じるボタンをクリックしないとウィンドウが閉じません。 これは、他のブラウザーでは、別のウィンドウから JavaScript を使用してウィンドウを開かなかった場合に window.close メソッドが提供されないためです。 可能なら、ダイアログ プロセスを開くときは、単にリンクを用意するのではなく、 JavaScript と window.open メソッドを使用するようにしてください。

次の例に示すように、ダイアログを開くための JavaScript 関数を作成できます。

function openDialogProcess(dialogId, entityName, objectId)  
{  
 var url = Xrm.Page.context.getClientUrl() +  
  "/cs/dialog/rundialog.aspx?DialogId=" +  
  dialogId + "&EntityName=" +  
  entityName + "&ObjectId=" +  
  objectId;  
 window.open(url);  
}  

URL を使用してレポートを開く

URL [organization url]/crmreports/viewer/viewer.aspx に適切なパラメーター値の渡すことでレポートを開くことができます。

この URL は、次のパラメーターを受け取ります。

操作
このパラメーターに可能な 2 つの値は run または filter のいずれかです。 run が使用される場合、レポートは既定のフィルターを使用して表示されます。 filter を使用する際、レポートの実行ボタンを選択してレポートを表示する前に、レポートにはユーザーが編集できるフィルターが表示されます。

helpID
このパラメータは任意です。 Dynamics 365 Customer Engagement (on-premises) に含まれているレポートでは、このページのヘルプを選択すると、このパラメータの値はヘルプボタンを使用してこのレポートについて適切な内容を表示できます。 値は、レポートの FileName 属性値に対応する必要があります。

id
このパラメーターは、レポートの ReportId 属性値です。

次の例は Dynamics 365 Customer Engagement (on-premises)でレポートを開くために使用できる URL を示します。

既定のフィルターを使用して放置されたサポート案件レポートを開きます。

[organization url]/crmreports/viewer/viewer.aspx?action=run&helpID=Neglected%20Cases.rdl&id=%7b8c9f3e6f-7839-e211-831e-00155db7d98f%7d  

上位のサポート情報記事レポートを開いて、ユーザーにフィルターの値を設定すよう促します。

[organization url]/crmreports/viewer/viewer.aspx?action=filter&helpID=Top%20Knowledge%20Base%20Articles.rdl&id=%7bd84ec390-7839-e211-831e-00155db7d98f%7d  

次の機能は、適切に URL の値をエンコードする方法を示しています。

function getReportURL(action,fileName,id) {  
 var orgUrl = GetGlobalContext().getClientUrl();  
 var reportUrl = orgUrl +   
  "/crmreports/viewer/viewer.aspx?action=" +  
  encodeURIComponent(action) +  
  "&helpID=" +  
  encodeURIComponent(fileName) +  
  "&id=%7b" +  
  encodeURIComponent(id) +  
  "%7d";  
 return reportUrl;  
}  

関連項目

クライアントの Dynamics 365 Customer Engagement (on-premises) の拡張
フォームに渡すパラメーターを使用してフィールド値を設定する
カスタム クエリストリング パラメーターが許可されるフォームの構成
SiteMap を使用したアプリケーション ナビゲーションの変更
Dynamics 365 Customer Engagement (on-premises) のリボンのカスタマイズJavaScript を使用した Customer Engagement のクライアント スクリプトDynamics 365 Customer Engagement (on-premises) の Web リソース
URL によるダイアログの起動