Dynamics CRM 2013/Fall '13 SDK Xrm.Page.ui の新機能 その 2 - フォームのメッセージ表示

みなさん、こんにちは。

今回は Microsoft Dynamics CRM 2013 および、Microsoft Dynamics
CRM Online Fall '13 SDK の新機能からフォームのメッセージ表示
機能を    紹介します。

概要

Microsoft Dynamics CRM 2013 および、Microsoft Dynamics CRM
Online Fall '13 では、ポップアップを極力減らすよう開発されて
います。その一環として、必須項目が入っていない場合のエラー
などもすべてフォーム上に表示できるようになっています。

メッセージには情報、警告、エラーの 3 種類があります。

[フィールド上のエラー]
image

フォームスクリプトからもこのメッセージ表示が利用できるよう
関数が提供されています。またフォームレベルのメッセージも
同時にサポートされます。

フォームレベルのメッセージ

Xrm.Page.ui.setFormNotification および clearFormNotification を
利用してフォーム上にメッセージを表示することができます。

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

image

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

function showMyNotification()
{
  // message : 表示するメッセージ
  // level : INFO (情報)、WARNING (警告)、ERROR (エラー) の指定
  // uniqueId : 削除時に指定できる一意の ID
  Xrm.Page.ui.setFormNotification("フォームレベルのメッセージ", "INFO", "MyID");
}

function clearMyNotification()
{
  Xrm.Page.ui.clearFormNotification("MyID");
}

3. スクリプト Web リソースを保存して公開します。

4. 任意のフォームの OnLoad に showMyNotification を指定します。
ここでは取引先担当者のフォームに指定しました。

image

5. フォームを保存して公開します。

6. 任意の取引先担当者を開きます。メッセージが表示されます。

image

7. 同じフォームの任意のフィールドに対して OnChange イベント
で clearMyNotification を設定します。今回は役職を使用しました。

image

8. フォームを保存して公開します。

9. 任意のレコードを開き、メッセージが表示されることを確認
します。その後役職を変更することでメッセージが消える事を
確認します。

フィールドレベルのメッセージ

フォームレベル同様、フィールドレベルでもメッセージが利用
できます。ただしフィールドメッセージはエラーのみでレベルを
指定できません。

1. 作成したスクリプト Web リソースに以下コードを追加します。

function showMyFieldNotification()
{
  Xrm.Page.getControl("jobtitle").setNotification("フィールドレベル");
}
 
function clearMyFieldNotification()
{
  Xrm.Page.getControl("jobtitle").clearNotification();
}
 
2. 保存して公開します。

3. 取引先担当者フォームの OnLoad に showMyFieldNotification
を指定します。

image

4. 同じフォームの任意のフィールドに対して OnChange イベント
で clearMyNotification を設定します。今回は役職を使用しました。

image

5. フォームを保存して公開します。

6. 任意の取引先担当者を開きます。メッセージが表示されます。

image

7. 役職の値を変更してメッセージが消えることを確認します。

業務ルールの利用

業務ルールではフィールドレベルのメッセージのみ利用できます。

image

まとめ

フィールドレベルのメッセージはもちろん、フォームレベルの
メッセージでは情報、警告、エラーを選択できるため、状況に
合わせたメッセージを表示できます。レコードの整合性向上に
役に立ちますので、是非ご利用ください。

- 中村 憲一郎