トピックス

知識創造研究室 by CRM(xRM)

Dynamics CRM クライアントサイドスクリプトのススメ 番外編

みなさん、こんばんは。
梅雨も明けてカラッとするかと思いきやジメジメしてますね。。。今日は暑いな~と思っていたのですが、いつもつけているエアコンを切ってましたwww

前回はクライアントサイドスクリプトを使用した画面操作の最適化をご紹介しました。今回は、番外編としてDynamics CRM が用意しているXrm.Page オブジェクトモデルの便利な関数をご紹介します。

Xrm.Page オブジェクトモデルの便利な関数の紹介

実際によく使う便利な関数をご紹介します。(もはや備忘録www)

Xrm.Page.context

Dynamics CRM のURLを取得する
Xrm.Page.context.getClientUrl();

Dynamics CRM のURLはOnline の場合は https://orgname.crm#.dynamics.com が返されます。

現在のユーザーのID(GUID)を取得する
Xrm.Page.context.getUserId();

アクセスしているユーザーのGUIDが返されます。

フォーム(全体)操作

フォームの再読み込み
Xrm.Page.data.refresh();

ページを再読み込みせずに非同期でフォームのデータをすべて再表示します(保存することも可能)

レコードのエンティティ名を取得する。
Xrm.Page.data.entity.getEntityName();

取引先企業であれば account、取引先担当者であれば contact など

GUID(主キー)を取得する。
Xrm.Page.data.entity.getId();

レコードの主キーとなるGUIDを返します。

プライマリフィールドの値を取得する。
Xrm.Page.data.entity.getPrimaryAttributeValue();

レコードのプライマリフィールドの値を取得します。

フォーム(レコード)の種類(状態)を取得する。
Xrm.Page.ui.getFormType();

フォームの種類(レコードの状態)を数値で取得します。
新規作成の場合は 1 、更新の場合は 2、読み取り専用の場合は 3 など

エンティティセット名を取得する。
Xrm.Page.data.entity.getEntitySetName();

Web API でアクセスするときに使用するエンティティ名です。
※ このメソッドMSDNにも載ってないのですが、CRM Team blogでは紹介されてたりします(要チェックや~!)
色々なブログで"複数形"って書かれているんですが、実は違うんです。それ用のモノがあるんです!

フォーム(フィールド、コントロール)操作

フィールドの値を取得する。
Xrm.Page.getAttribute("field name").getValue();

指定したフィールドの値を取得します。データの種類により戻り値は変わります。

フィールドの保存時の動作を指定する。
Xrm.Page.getAttribute("field name").setSubmitMode("mode");

[ always | never | dirty ]のいずれかを指定します。データとして保存したくない場合は never を指定する。既定値は dirty。

コントロールを非表示にする
Xrm.Page.getControl("field name").setVisible(false);

指定したコントロールを非表示にします。

コントロールを読み取り専用にする
Xrm.Page.getControl("field name").setDisabled(true);

指定したコントロールを読み取り専用にします。

サブグリッドを再読み込み
Xrm.Page.getControl("subgrid name").refresh();

サブグリッドに表示するデータを再読み込みします。

簡易表示フォームを取得
Xrm.Page.ui.quickForms.get("quickform name");

簡易表示フォームを取得します。取得したコントロールより表示しているフィールドにもアクセス可能。

その他

メッセージダイアログの表示
Xrm.Utility.alertDialog(message,onCloseCallback);

window.alert と同じようにダイアログを表示します。タブレットPC用CRMではwindow.alert はコードがブロックされるため、この関数を使用する必要があります。

フォームを開く
Xrm.Utility.openEntityForm(entityName,id,params,options);

entityName のフォームを開きます。オプションの指定で別ウィンドウで開くことが可能。

Web API のURLを取得
Xrm.Utility.getEntityUrl(entityName,id);

Web API のレコードURLを取得します。
例)https://orgname.crm#.dynamics.com/api/data/v8.1/entitySet(GUID)
※ このメソッドMSDNにも載ってないのですが、ブログでは紹介されてたりします。

今回はこのぐらいにしておきます(笑)Dynamics CRM 2015 Update 1 から追加されたものやDynamics CRM 2016 から追加されたもの、そしてDynamics CRM 2016 Update 1 で追加されたものを織り交ぜてご紹介しました。(いっぱいあると思いません?)
この関数群をいかに利用し、実際に画面を使用する人の補助をするかがDynamics CRMの構築では大切な事となってきます。前回がまさに一例です)
アーカス・ジャパンのこういったノウハウにご興味がある方は、是非一度お問い合わせ頂けましたら幸いですm(_ _)m

※ 記事の内容は個人発信の参考情報です。記事内容のご利用は、ご自身の判断でお願いします。

この記事を書いた人
原田 研吾

文系プログラマ(.NET Framework、Java)。
25歳から始めたプログラムは死ぬ気で頑張った(誰も褒めてくれないので自分で誉めてます)。
気が付けば製品開発部のマネージャー・・・
弊社Dynamics CRM トレーニングの講師をやったりもします。
事業部やら役職やらありますが、『事業部内の便利屋』が一番フィットする肩書です。
アーカス・ジャパン株式会社 CRM製品
CRM製品に関するお問い合わせ
TEL 06-6195-7501
お問い合わせはこちら

同じカテゴリの記事

Translate »