クライアント API Xrm オブジェクトを使用したグローバル操作の実行の概要

完了

クライアント API では、コード内でグローバルにアクセス可能な Xrm オブジェクトが提供され、実行コンテキストの使用なしでさまざまな活動を実行するために使用できます。 次の図は、使用できるプロパティとメソッドの概要を示したものです。 このオブジェクトの詳しい説明については、「クライアント API Xrm オブジェクト」を参照してください。

アプリ オブジェクト

アプリ オブジェクトの addGlobalNotification を使用すると、アプリのエラー、情報、警告、または成功の通知を表示し、その通知を基に実行するアクションを指定することができます。 これはフォーム通知に似ていますが、フォームとは関係なく使用できます。 たとえば、コマンド バー スクリプトでこれを使用して、アクションの完了をユーザーに通知できます。 clearGlobalNotification メソッドを使用すると、通知をアプリから消去することができます。

Device オブジェクト

Xrm.Device オブジェクトは、モバイル デバイスとのやり取りに関連するネイティブ デバイス機能を公開します (pickFile メソッドを除く)。これには、Web クライアントを通じてアクセスすることもできます。 キャンバス アプリでも、モバイル開発用の拡張可能なフレームワークが提供されています。これらのシナリオにおいては、この点について考慮するようにしてください。 次の表は、Xrm.Device オブジェクト内で使用できるメソッドの概要を示したものです。

メソッド 説明
captureAudio オーディオを録音するためのデバイス マイクを呼び出します。
captureImage イメージをキャプチャするためのデバイス カメラを呼び出します。
captureVideo ビデオを録画するためのデバイス カメラを呼び出します。
getBarcodeValue バーコード情報 (製品番号など) をスキャンするためのデバイス カメラを呼び出します。
getCurrentPosition デバイスの位置情報機能を使用して、現在の場所を返します。
pickFile コンピューター (Web クライアント) またはモバイル デバイス (モバイル クライアント) からファイルを選択するためのダイアログ ボックスを開きます。

デバイスの構成によっては、使用できない機能もあります。 アプリが特定のデバイス機能にアクセスするために、ユーザーの同意が必要になる場合があります。 たとえば、ユーザーがデバイスの位置情報機能をグローバルに無効にしていたり、アプリによるカメラへのアクセスを拒否したりする場合があります。 したがって、アプリを開発する際には、これらのメソッドがデバイスの機能や構成によって、あるいはアクセス許可や同意が得られずエラーになる可能性があることに注意する必要があります。

Encoding オブジェクト

Xrm.Encoding オブジェクトは、XML や HTML の文字列をエンコード/デコードするために使用されます。 このエンコードとデコードは、次のような場合に便利です。

  • HTML Web リソースを操作する、

  • クエリ文字列パラメーターをエンコードおよびデコードする、

  • 検索文字列内に '&' や '<' のような特殊文字を含む FetchXML を操作する。

Navigation オブジェクトは、モデル駆動型アプリケーション内で使用できる、ナビゲーション関連のメソッドを提供します。 ブロック型の特質を持つことから、警告、確認、エラーなどのダイアログを表示する活動は、通常、最適なユーザー エクスペリエンスとは見なされませんが、使用できるようにはなっています。 問題に関する警告をユーザーに知らせる場合には、フォームによる通知やその他の非ブロック型メカニズムを使用することをお勧めします。 Xrm.Navigation オブジェクト内で使用できるメソッドの概要を次に示します。

メソッド 説明
openAlertDialog メッセージやボタンを含んだ警告ダイアログを表示します。
openConfirmDialog メッセージと 2 つのボタンを含んだ確認ダイアログ ボックスを表示します。
openErrorDialog エラー ダイアログを表示します。
openFile ファイルを開きます。
openForm テーブル フォームまたは簡易作成フォームを開きます。
openUrl URL を開きます (ファイル URL を含む)。
openWebResource HTML Web リソースを開きます。

Panel オブジェクト

Xrm.Panel オブジェクトは、モデル駆動型アプリケーション フォームのサイド ウィンドウに Web ページを表示するためのメソッドを提供します。 この機能は現在プレビュー段階であり、ここでは詳しく取り上げません。 詳細については、「Xrm.Panel」を参照してください。

Utility オブジェクト

Xrm.Utility オブジェクトは、各種の便利なメソッドに対するコンテナーです。 次の表は、Xrm.Utility オブジェクト内で使用できるメソッドの概要を示したものです。 詳細については、「Xrm.Utility (クライアント API リファレンス)」を参照してください

メソッド 説明
closeProgressIndicator showProgressIndicator を使用して、開いている進捗状況ダイアログ ボックスを閉じます。
getAllowedStatusTransitions 指定されたテーブル タイプと状態コードについて、有効な状態遷移を返します。
getEntityMetadata 指定されたエンティティのエンティティ メタデータを返します。
getGlobalContext 組織設定、ユーザー設定、アプリ、クライアント情報などのランタイム情報を提供するグローバル コンテキストを取得します。
getLearningPathAttributeName モデル駆動型アプリケーション フォームの UI コントロールを識別するために、ラーニング パス (ガイド付きヘルプ) のコンテンツ デザイナーで必要とされる DOM 属性の名前を返します。
getResourceString 指定された Web リソースに関連付けられているキーについて、ローカライズされた文字列を返します。
invokeProcessAction 指定されたパラメーターに基づいてアクションを呼び出します。 開発者が作成したカスタム API を呼び出すためにも使用します。
lookupObjects 1 つ以上の項目を選択するための検索コントロールを開きます。
refreshParentGrid 指定されたレコードを含んでいる親グリッドを更新します。
showProgressIndicator 指定されたメッセージを使用して、進行状況ダイアログを表示します。

このほかにも多数のメソッドがあり、古いコードで目にすることもありますが、それらは現在 Xrm.Navigation 名前空間に移動されているため、非推奨となっています。 それらのメソッドが見つかった場合は、Xrm.Navigation の新しいメソッドを使用するようにコードを更新してください。

Xrm.WebApi オブジェクト

Xrm.WebApi オブジェクトは、クライアント スクリプト内で従来の CRUD 操作に対応する Web API を使用するための、プロパティとメソッドを提供します。 Xrm.WebAPI をスクリプト ロジック使用する場合は、実行する処理が現在のアプリ ユーザーのコンテキストで自動的に実行されます。 Web API は、アプリがオンラインでもオフラインでも (環境がオフライン構成の場合) 使用できます。 名前空間にはオンラインおよびオフラインのメソッドがそれぞれセットで含まれていますが、これらを使用する場合はクライアントの状態を追跡する必要があります。 Xrm.WebAPI を使用すると、オンラインとオフラインのどちらの名前空間のメソッドを使用するかが Xrm.WebAPI.createRecord API により自動的に判断されます。

次の表は、Xrm.WebApi オブジェクト内で使用できるメソッドの概要を示したものです。 詳細については、「Xrm.WebApi (クライアント API リファレンス)」を参照してください。

メソッド 説明
createRecord テーブル行を作成します。
deleteRecord 行の ID を使用してテーブル行を削除します。
retrieveRecord 行の ID を使用してテーブル行を取得します。
retrieveMultipleRecords クエリ オプションに一致するテーブル行のコレクションを取得するか、指定された Fetch XML を取得します。
updateRecord テーブル行を更新します。
isAvailableOffline テーブルがユーザーのプロファイル内に存在しており、かつオフライン モードで使用できるかどうかを示すブール値を返します。
execute 単一のアクション、関数、または CRUD 操作を実行します。
executeMultiple アクション、関数、または CRUD 操作のコレクションを実行します。

Xrm ブジェクトのプロパティとメソッドを使用し、ビジネス プロセスを自動化することで、ユーザー エクスペリエンス全体の改善が可能になります。