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

URL アドレスを指定できる要素を使用すると、他のアプリケーションに、アプリ、フォーム、ビュー、ダイアログ、リポートへのリンクを含めることができます。

注意

URL アドレスを指定できる、アプリ、フォーム、ビュー、ダイアログ、レポートは、セキュリティをバイパスできません。 セキュリティ ロールに基づいて、ライセンスを受けた ユーザーだけが、表示されるデータとレコードにアクセスできます。

アプリの URL

注意

モデル駆動型アプリケーションは、別のアプリケーションの IFrame への埋め込みに対応していません。

AppModule.UniqueNameAppModule.AppModuleId の値を使用して、モデル駆動型アプリケーションを開くことができます。

次のクエリを使用した Web API によって、これらの値を取得できます。

GET [Organization URI]/api/data/v9.1/appmodules?$select=appmoduleid,uniquename

詳細: Web API を使用するクエリ データ

一意の名前または AppModuleId 値で appnameappid のクエリ パラメーターのいずれかをそれぞれ使用できますが、両方を同時に使用できません。

一意の名前を使用する

appname クエリ パラメーターを main.aspx ページに追加し、一意の名前を使用してアプリを開きます。

https://myorg.crm.dynamics.com/main.aspx?appname={UniqueName}

たとえば一意の名前が msdyn_SolutionHealthHub の場合、このアプリを次の URL を使用して開けます。

https://myorg.crm.dynamics.com/main.aspx?appname=msdyn_SolutionHealthHub

AppModuleId を使用する

appid クエリ パラメーターを main.aspx ページに追加し、AppModuleId を使用してアプリを開きます。

https://myorg.crm.dynamics.com/main.aspx?appid={AppModuleId}

例:

https://myorg.crm.dynamics.com/main.aspx?appid=12fd1cf3-e06e-e911-a95f-000d3a13c42a

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

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

ID が {91330924-802A-4B0D-A900-34FD9D790829} のアカウント レコード フォームを開くには:

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

クローズされた営業案件 ビューを開く場合:

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

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

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

注意

  • アプリケーション内で Web リソースを使用してプログラムからフォームを開く際は、Xrm.Navigation.navigateTo または Xrm.Navigation.openForm を使用します。 window.open は使用しないでください。
  • アプリケーションの外部でページが Xrm.Navigation.openFormXrm.Navigation.navigateTo の機能にアクセスできない場合、window.open またはリンクを使用して、テーブルの特定のレコードまたはフォームを開きます。 別のフォームに埋め込まれた IFrame 内のフォームの表示は、サポートされていません。

通常は、getClientUrl メソッドを使用して、モデル駆動型アプリ用の組織のルート 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 コマンド バーを表示するかどうかを制御します。 注: この機能は Unified Service Desk アプリケーションの要件をサポートしています。 これを使用して別のフォームに埋め込まれた IFrame 内のフォームを表示することは、サポートされていません。

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

ビューの URL のコピー

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

注意

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

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

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

  2. コマンド バーで操作をクリックし、リンクを電子メールで送信をクリックします。

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

注意

  • ユーザー コンテキストをパラメーターとして使用するビュー (自分の取引先企業など) はコピーできません。
    • システム テーブルのシステム ビューを表す GUID は、インストールごとに同じになります。 カスタム テーブルおよびカスタム ビューの GUID は、インストールごとに一意になります。

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

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

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

ただし、SubArea 要素の既定の初期ビューとして特定のビューを使用する場合は、次の Url のパターンを使用します。

Url="/main.aspx?appid=e2bc1066-488f-eb11-b1ac-000d3a56ead9&pagetype=entitylist&etn=account&viewid=%7b<GUID value of view id>%7d"

この URL を使用するときは、<Titles><Descriptions> に適切な値を指定し、テーブルのアイコンを指定する必要もあります。

注意

/main.aspx ページを使用してビューを指定した場合も、ビュー セレクターは表示されます。 ユーザーがビューを変更した場合、ユーザーが最後に選択したビューがモデル駆動型アプリで記憶され、ブラウザーを閉じて次に開いたときに既定の初期ビューが表示されます。

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=[table 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  

ヒント

ダイアログ プロセスをリンクから開くと、完了 ボタンが機能しない場合があります。 この場合、データは保存されますが、ウィンドウの閉じるボタンをクリックしないとウィンドウが閉じません。 これは、他のブラウザーでは、別のウィンドウから 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
このパラメータは任意です。 モデル駆動型アプリに含まれているレポートでは、このパラメーターの値により、このページのヘルプを選択している場合に、ヘルプ ボタンはこのレポートに関する適切な内容を表示します。 値は、レポートの FileName 値に対応する必要があります。

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

次の例はモデル駆動型アプリでレポートを開くために使用できる 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;  
}  

関連項目

フォームに渡すパラメーターを使用して列値を設定する
Xrm.Navigation.openUrl
カスタム クエリストリング パラメーターが許可されるフォームの構成
リボンのカスタマイズ
JavaScript を使用したクライアント スクリプト
Web リソース
SiteMap を使用したアプリケーション ナビゲーションの変更

注意

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

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