Microsoft-crm-jscript-web-resources
JScript Webリソース
JScript Webリソースは、おそらくMicrosoft Dynamics CRMで使用する最も重要な種類のWebリソースです。
CRMでのJavaScriptのアプリケーション
フォームイベントプログラミング
フォームイベントプログラミングは、ユーザーがフォームを開いたとき、データを変更したとき、タブを移動したときなど、クライアント側の動作を処理するために使用されます。 このようなクライアント側の対話を実現するには、JavaScriptコードを記述し、CRMでJScript Webリソースとして追加します。 ただし、記述するJavaScriptコードは、標準のJavaScript DOMではなく、Dynamic CRMのXrm.Pageモデルを使用する必要があります。 Xrm.Pageモデルの使用は、このモデルを使用して作成したコードがCRMの将来のバージョンと互換性があることを保証するMicrosoftのコーディング方法です。
Webリソース
フォームイベントプログラミングで使用されることに加えて、JavaScriptは次のようなCRMの他のアプリケーションで使用されます-
- 一意のURLでフォーム、ビュー、およびダイアログを開きます。
- ODataおよびSOAPエンドポイントを使用して、Webサービスと対話します。
- 他のWebリソース(HTML Webリソースなど)内のJavaScriptコードの参照。
このような場合、JavaScriptコードを(Xrm.Pageモデルを使用して)作成し、CRMのJScript Webリソースとして追加すると、一意のURIでどこからでも参照できます。
リボンのカスタマイズ
最後に、JavaScriptの他の一般的な使用法の1つは、次のようなリボンのカスタマイズを処理することです-
- いくつかのロジックに基づいてリボンボタンを表示/非表示
- 何らかのロジックに基づいてリボンボタンを有効/無効にする *特定のリボンボタンをクリックしたときの処理
このようなシナリオを処理するには、JavaScriptロジックを(Xrm.Pageモデルを使用して)作成し、JScript Webリソースとして追加します。 このWebリソースは、リボンボタンのXMLで参照でき、リボンボタンを表示/非表示にするか、有効/無効にするか、クリックイベントを処理するかを確認するために呼び出すJScriptファイルのメソッドを指定できます。
Xrm.Pageオブジェクトモデル
以下は、使用可能な名前空間、オブジェクト、およびそれらのコレクションを示すXrm.Pageオブジェクトの階層です。 これらのプロパティを使用して、JScriptコードを記述します。
ネームスペース
Sr.No | Object & Description |
---|---|
1 |
組織の詳細、ログインしているユーザーの詳細、クエリ文字列でフォームに渡されたパラメーターなど、コンテキスト固有の情報を取得するメソッドを提供します。 |
2 |
Data エンティティデータおよびメソッドへのアクセスを提供して、フォーム内およびビジネスプロセスフロー制御内のデータを管理します。 |
3 |
UI フォームのいくつかのサブコンポーネントのコレクションに加えて、ユーザーインターフェイスに関する情報を取得するメソッドが含まれています。 |
オブジェクト
Sr.No | Object & Description |
---|---|
1 |
Entity メソッドを提供します-
|
2 |
ビジネスプロセスフローのプロパティを取得するメソッド。 |
3 |
Navigation アイテムコレクションを使用してナビゲーションアイテムへのアクセスを提供します。 |
4 |
FormSelector Itemsコレクションを使用して、ユーザーが利用可能なフォームにアクセスします。 また、ナビゲーションメソッドを使用して、フォームを閉じたり開いたりします。 |
5 |
Stages 各プロセスには、プロセスのgetStagesメソッドを使用してアクセスできるステージのコレクションがあります。 |
6 |
Steps 各ステージは、ステージのgetStepsメソッドを使用してアクセスできるさまざまなステップで構成されています。 |
コレクション
Sr.No | Collections & Description |
---|---|
1 |
Attributes フォームで利用可能なエンティティ属性へのアクセスを提供します。 |
2 |
Controls
|
3 |
Items フォーム上のすべてのナビゲーション項目へのアクセスを提供します。 |
4 |
Tabs フォーム上のすべてのタブへのアクセスを提供します。 |
5 |
Sections フォーム上のすべてのセクションへのアクセスを提供します。 |
フォームプログラミングでサポートされるイベント
Xrm.Pageモデルを使用したフォームプログラミングでは、次のフォームイベントを処理することができます-
- onLoad
- onSave
- onChange
- TabStateChange
- OnReadyStateComplete
- 事前検索
- ビジネスプロセスフロー制御イベント
フォームプログラミングの例
この例では、ユーザーが選択したPreferredMethodofCommunicationに基づいて、Contactフォームに検証を行います。 したがって、ユーザーが電子メールとして好みの方法を選択した場合、電子メールフィールドは必須になり、電話とファックスの他のフィールドでも同様になります。
ステップ1 *- *contacts.js という名前のJavaScriptファイルを作成し、次のコードをコピーします。
function validatePreferredMethodOfCommunication() {
//get the value of Preffered Method of Communication code
var prefferedContactMethodCode =
Xrm.Page.getAttribute('preferredcontactmetho dcode').getValue();
//if Preferred Method = Any, make all fields as non-mandatory
//else if Preferred Method = Phone, make Mobile Phone field mandatory
//and all other fields as non-mandatory
//else if Preferred Method = Fax, make Fax field mandatory
//and all other fields as non-mandatory
if(prefferedContactMethodCode == 1) {
clearAllMandatoryFields();
}
if(prefferedContactMethodCode == 2) {
clearAllMandatoryFields();
Xrm.Page.getAttribute('emailaddress1').setRequiredLevel('required');
} else if(prefferedContactMethodCode == 3) {
clearAllMandatoryFields();
Xrm.Page.getAttribute('mobilephone').setRequiredLevel('required');
} else if(prefferedContactMethodCode == 4) {
clearAllMandatoryFields();
Xrm.Page.getAttribute('fax').setRequiredLevel('required');
}
}
function clearAllMandatoryFields() {
//clear all mandatory fields
Xrm.Page.getAttribute('emailaddress1').setRequiredLevel('none');
Xrm.Page.getAttribute('mobilephone').setRequiredLevel('none');
Xrm.Page.getAttribute('fax').setRequiredLevel('none');
}
- ステップ2 *-[設定]→[カスタマイズ]→[システムのカスタマイズ]→[連絡先エンティティ]→[フォーム]→[メインフォーム]に移動して、連絡先エンティティフォームを開きます。
- ステップ3 *-[フォームのプロパティ]をクリックします。
- ステップ4 *-[フォームのプロパティ]ウィンドウで、[追加]をクリックします。
- ステップ5 *-新しいWebリソースを作成しているため、次の[Webリソースレコードの検索]ウィンドウで[新規]をクリックします。
- ステップ6 *-[新しいWebリソース]ウィンドウで、次の詳細を入力します-
名前-new_contacts.js
表示名-contacts.js
タイプ-JScript
ファイルのアップロード-ローカルマシンから作成したJavaScriptファイルをアップロードします。
- ステップ7 *-[保存]、[公開]の順にクリックします。 この後、ウィンドウを閉じると、Look Up Web Resource Recordウィンドウに戻ります。
- ステップ8 *-ここで、new_contacts.js Webリソースを確認できます。 それを選択して、「追加」をクリックします。 これで、新しいWebリソースが正常に追加され、フォームに登録されました。
- ステップ9 *-次に、優先通信方法フィールドの変更にイベントハンドラを追加します。 このイベントハンドラーは、作成したJavaScript関数を呼び出します。 [イベントハンドラー]セクションから次のオプションを選択します。
*Control* -優先される通信方法
イベント-OnChange
次に、次のスクリーンショットに示すように、[追加]ボタンをクリックします。
- ステップ10 *-ハンドラープロパティの次のウィンドウで、変更イベントが発生したときに呼び出すメソッドを指定します。
ライブラリをnew_contacts.jsとして、関数をvalidatePreferredMethodOfCommunicationとして選択します。 OKをクリックしてください。
- ステップ11 *-フォームライブラリ(Webリソース)とそれに登録されたイベントを表示できるようになります。 OKをクリックしてください。
- ステップ12 *-[保存]、[公開]の順にクリックします。
- ステップ13 *-連絡先フォームを開き、優先する通信方法を電話に設定します。 これにより、[携帯電話]フィールドが必須になります。 携帯電話番号を入力せずにこの連絡先を保存しようとすると、「携帯電話に値を入力する必要があります」というエラーが表示されます。
結論
この章では、CRMのJavaScriptの3つの重要なアプリケーションを理解することから始めました。 後で、Xrm.Pageモデルを調査し、それを使用して、フォームプログラミングを例とともに学習しました。