共有可能かつセキュリティで保護された、URL (ディープ リンク ) を作成
フォームおよびレコードへの共有可能かつセキュリティで保護された URL を作成する方法について説明します。
開始する
開発者は、ルートを利用できる特定のフォームに、共有可能でセキュリティで保護されたURL (セキュリティで保護されたURL) を作成できます。 オプションのデータ コンテキストをフォームに渡すと、フォームを開いた場合にフィルターや固有のデータを表示することができます。 URLジェネレータは、レポート、電子メール、外部アプリケーションへのリンクの埋め込みなどのシナリオで使用できます。 URLジェネレータを使用すると、生成されたデータを使用してナビゲーションすることで、指定したフォームまたはデータをすばやく簡単リンク。
使用方法
- 指定されたインスタンスでのルート移動可能なフォームに移動するために使用できる URL を生成する開発者を支援します。
- 必要に応じて、指定されたフォームに移動した際に表示されるデータ コンテキストを指定する開発者を支援します。
- ユーザーが、インターネットにアクセスできる任意のブラウザーから生成された URL を共有、保存、およびアクセスできるよう支援します。
- システム、フォーム、またはデータへの不正アクセスを防ぐために URL を保護します。
- 機密性の高いデータまたは改ざんの影響を防ぐために URL を保護します。
セキュリティ
サイト アクセス
ドメイン/クライアントへのアクセスは、既存のログインおよびSSL メカニズムを通じて制御されます。
フォーム アクセス
メニュー項目はセキュリティが施工されているエントリ ポイントなので、フォームへのアクセスはメニュー項目によって制御されます。 ユーザーがアクセス権を持わないメニュー項目を含むURLを使用して移動した場合、メニュー項目のセキュリティによりフォームは開かけます。 フォームを開く必要があるアクセス許可がユーザーに与えであることを通知するメッセージが表示されます。
メモ
深いリンクは、ルートナビゲーションを許可するメニュー項目に対してのみ機能します。
データ アクセス
データへのアクセスは、既存のフォーム レベルのクエリによって制御されます。 生成されたURLでフォームを開いたフォームは、既存のフォーム レベルのクエリで実行され、ユーザーのデータへのアクセスを制限します。 生成されたURLで指定されたデータ コンテキストは、これらのフォーム レベルのクエリが適用された後に消費され、ユーザーに表示されるデータをさらにフィルタ処理する結果になります。 つまり、生成された URL は多くても 1 つのフォームを開いて、フォーム レベルのクエリに基づいてフォームがユーザーに表示するデータすべてを表示できます。 生成されたURLでは、生成されたURLを使用しない場合、フォーム上で選択したデータに対するアクセス許可をユーザーに付与できません。
使用状況
データベースに対して深いリンクを作成するには、次の2つの財務と運用アプリ。
- URLジェネレーター X++ コードから深いリンクを生成するために使用できる .NETライブラリです。また、メニュー項目とパーティションを使用してクライアント内のナビゲーション用の深い リンク ターゲットを決定します。
- システム エンティティ のナビゲーション X++ コードの外部にある深リンクURLの生成が可能です。 開発者は、URLの深いリンク先のレコードのエンティティ名とレコードIDに基づいてパラメータを指定リンク作成できます。
URLジェネレータ
URL ジェネレーターは、次の名前空間の下の X++ からアクセス可能な .NET ライブラリです。
Microsoft.Dynamics.AX.Framework.Utilities.UrlHelper.UrlGenerator
必要量
URL ジェネレーターは、アクティブなユーザー セッションまたはバッチ処理で、AOS 上で実行されているコードから使用する必要があります。 この要件は、URL を生成するインスタンスに固有の暗号化によるセキュリティで保護することができます。 少なくとも、作業 URL を生成するために次の情報を指定して URL ジェネレータに渡す必要があります。
- ホストURL
- インスタンスの Web ルートの URL。 例:
https://ax.dynamics.contoso.com/
- インスタンスの Web ルートの URL。 例:
- メニュー項目の表示の AOT 名
- フォームを開くために使用するメニュー項目の表示。
- 分割
- 要求に使用するパーティション。
- 会社
- 要求に使用する会社。
例
// gets the generator instance
var generator = new Microsoft.Dynamics.AX.Framework.Utilities.UrlHelper.UrlGenerator();
var currentHost = new System.Uri(UrlUtility::getUrl());
generator.HostUrl = currentHost.GetLeftPart(System.UriPartial::Authority);
generator.Company = curext();
generator.MenuItemName = <menu item name>;
generator.Partition = getCurrentPartition();
// repeat this segment for each datasource to filter
var requestQueryParameterCollection = generator.RequestQueryParameterCollection;
requestQueryParameterCollection.AddRequestQueryParameter(
<datasource name>,
<field1>, <value1>,
<field2>, <value2>,
<field3>, <value3>,
<field4>, <value4>,
<field5>, <value5>
);
System.Uri fullURI = generator.GenerateFullUrl();
// to get the encoded URI, use the following code
fullURI.AbsoluteUri
システム エンティティのナビゲーション
開発者は、追加のアクションをリンクして、X++ コードの外部に動的に深いURL SysEntityNavigation
作成できます。 開発者は、詳細なデータが移動する必要があるレコードのエンティティ名とレコードIDを使用してURLリンク作成できます。 アクション SysEntityNavigation
、定義されたエンティティの基本メニュー項目に移動し、定義したエンティティの定義済レコードをフォームに財務と運用アプリ。
ナビゲーションがサポートされているエンティティは、そのエンティティの Dataverse 仮想テーブル財務と運用アプリ。 ユーザー定義の仮想テーブルの有効化の詳細については、「環境可能な 仮想 Microsoft Dataverse を参照してください。
パラメーター
次のパラメータは、詳細なURLを作成する際リンクです。
パラメーター | Description | データ型 | 要求済み |
---|---|---|---|
cmp | 法人の会社ID。 会社 Dataverse 仮想テーブル、これは "会社コード" 列 (列) mserp_dataareaid で識別。 |
文字列 | オプション |
エンティティ名 | 複数の 名 定義されている Dataverse 仮想テーブル、選択したフィールドの のMaker Portal。 たとえば、 mserp_custcustomerv3entities (mserp)の複数のスキーマ名 Customers V3 (mserp)) 仮想テーブル。 |
文字列 | 要求済み |
entity Entity | フィールドで選択したレコードの固有IDプロパティの mserp_custcustomerv3entityid 。 |
GUID | 要求済み |
URL 形式
システム エンティティ のナビゲーションを使用して、次の形式でURLを作成して、深いリンクを作成します。
https://[Root URL for the environment]/?cmp=[data area ID]&mi=action:SysEntityNavigation&entityName=[entity plural schema name]&entityGuid=[GUID of entity record]
例
次の例では、IDを持つ財務と運用アプリ USRT 会社 00004c03-0000-0000-6d28-014105000000 顧客の 顧客レコード (mserp)" セクションで、財務と運用アプリ で顧客レコードを Dataverse 仮想テーブル で開きます。リンク
https://contoso.operations.dynamics.com/?cmp=usrt&mi=action:SysEntityNavigation&entityName=mserp_custcustomerv3entities&entityGuid=00004c03-0000-0000-6d28-014105000000