Freigeben über


Dynamics CRM 2016 SDK 新機能: クライアントサイドスクリプトその 2 - Web API 関連関数

みなさん、こんにちは。

前回に引き続き、Dynamics CRM 2016 SDK の新機能より、クライアント
サイド SDK の機能を紹介します。今回は Web API 関連関数を紹介します。

概要

スクリプトから Web API を利用する場合、サーバーのバージョンや
サービスのアドレスなど動的に取得しないといけない値があります。
今回のリリースではそれらのニーズを満たす関数が提供されています。

バージョンの取得

現在実行中の Microsoft Dynamics CRM のバージョンは以下の関数で
コンテキスト取得できます。

Xrm.Page.context.getVersion()

エンティティセット名の取得

現在スクリプトを実行しているレコードのエンティティセット名は
以下の関数で取得できます。

Xrm.Page.data.entity.getEntitySetName()

レコードの URL 取得

特定のレコードに対する URL は以下の関数で取得できます。

Xrm.Utility.getEntityUrl(<エンティティ名>,<レコード ID>)

スクリプトの作成

では早速スクリプトを作ってみましょう。

1. ブラウザで Microsoft Dynamics CRM に接続します。

2. 設定 | カスタマイズ | システムのカスタマイズを開きます。

3. 左ペインより 「Web リソース」を選択して「新規」ボタンを
クリックします。

image_thumb[4]

4. 「名前」と「表示名」に webApiFunctionSample.js と入力します。
「種類」で「スクリプト (JScript)」を選択し、「テキストエディター」
をクリックします。

image

5. エディターが開いたら、以下の関数を追加します。

function webApiFunctions()
{
  // バージョンの取得
  var currentVersion = Xrm.Page.context.getVersion();
  alert(currentVersion);

  // エンティティセット名の取得
  var entitySetName = Xrm.Page.data.entity.getEntitySetName();
  alert(entitySetName);

  // レコードの URL 取得
  var recordId = Xrm.Page.data.entity.getId();
  var entityName = Xrm.Page.data.entity.getEntityName();
  var recordUrl = Xrm.Utility.getEntityUrl(entityName, recordId);
  alert(recordUrl);
}

6. 「OK」をクリックします。エディターが閉じたら「公開」を
クリックします。

フォームに設定

作成したスクリプトを以下の手順でフォームに設定します。

1. 既定のソリューションより、エンティティ | 取引先企業 | フォーム
を選択し、メインフォームを開きます。

image_thumb[9]

2. 「フォームのプロパティ」をクリックします。

3. フォームライブラリで「追加」ボタンをクリックします。

image_thumb[11]

4. 先ほど作成した new_webApiFunctionSample.js 検索して選択します。

5. イベントハンドラーでフォームの OnLoad イベントが選択されている
状態で「追加」ボタンをクリックします。

image_thumb[13]

6. webApiFunctions 関数を指定して、「OK」をクリックします。

image

7. 「OK」をクリックしてフォームのプロパティを閉じます。

8. 「保存」ボタンをクリック後、「公開」をクリックします。

image_thumb[17]

9. 公開が完了したらフォームエディターを閉じます。

動作確認

最後に動作の確認です。

1. 営業 | 取引先企業に移動して、既存のレコードを開きます。

2. 情報が順次表示されます。

 

3. 右下の「ここをクリック!」リンクをクリックします。
メッセージが表示されることを確認します。

[バージョン]
image

[エンティティセット名]
image

[レコードのアドレス]
image

- 中村 憲一郎

※本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります