Dynamics CRM 2013/Fall '13 SDK Xrm.Utility の新機能

みなさん、こんにちは。

今回は Microsoft Dynamics CRM 2013 および、Microsoft Dynamics
CRM Online Fall '13 SDK の Xrm.Utility 新機能を紹介します。

概要

Microsoft Dynamics CRM for Tablet では window.alert 関数、および
window.confirm 関数をサポートしないため、代わりの関数として
Xrm.Utility.alertDialog、Xrm.Utility.confirmDialog を提供します。

いずれも画面処理をブロックせず、ユーザーがクリックしたボタン
に応じてコールバック関数を呼び出せるようになっています。

既存のスクリプトで window.alert を利用している場合には、自動的
にコールバックのない alertDialog 関数に置換されますが、将来的
にこの自動置換はサポートされなくなりますので、事前に既存コード
のアップグレードを行ってください。

Xrm.Utility.alertDialog

1. 任意のスクリプト Web リソースを作成します。ここでは以下の
名前で作成しました。

image

2. テキストエディターをクリックして、以下のコードを追加します。

function showMyAlert()
{
  Xrm.Utility.alertDialog("プライマリフィールドの値をフォームメッセージとして表示します。", mycallback);
}

3. alertDialog の第 2 引数に指定した関数を追加します。

function mycallback()
{
  var primaryvalue = Xrm.Page.data.entity.getPrimaryAttributeValue();
  Xrm.Page.ui.setFormNotification("プライマリフィールドの値は " + primaryvalue + " です。", "INFO", "MyNotification");
}

※ setFormNotification についてはこちらの記事を参照してください。

4. OK をクリックしてテキストエディターを閉じます。

5. 上書き保存をしてから公開します。

6. 任意のフォームの OnLoad に showMyAlert 関数を登録します。
ここでは発注に対して指定しました。

image

7. フォームの変更を保存して公開します。

8. 既存の発注レコードを開きます。メッセージが出たら OK を
クリックします。

image

9. フォームのメッセージを確認します。

image

Xrm.Utility.confirmDialog

基本的に Xrm.Utility.alertDialog と同じですが、OK または Cancel
ボタンに対してそれぞれコールバック関数を指定できます。

まとめ

タブレット対応を行う際に必須となる変更ですが、それ以外にも
コールバック関数を指定できるなど処理をわかり易く記述できる
メリットもあります。是非お試しください!

- 中村 憲一郎