タブレット PC 用 CRM でのスクリプトの記述およびデバッグ
公開日: 2016年11月
対象: Dynamics CRM 2015
タブレット PC 用 Microsoft Dynamics CRM は Web アプリケーションで使用する同じフォーム定義を使用します。 Web アプリケーション内のフォーム イベント ハンドラーまたはリボン コマンドに追加する タブレット PC 用 CRM コードは、JavaScript でも実行できます。 これらにはいくつかの違いがあり、注意する必要があります。
このトピックの内容
一部の Xrm.Page 関数またはウィンドウ オブジェクト関数は、タブレット PC 用 CRM では動作しません
タブレット PC 用 CRM で実行するコードの指定
タブレット PC 用 CRM に表示するコマンドの指定
タブレット PC 用 CRM とブラウザーの Web アプリケーションとの違いに注意
タブレット PC 用 CRM のスクリプトのデバッグ
一部の Xrm.Page 関数またはウィンドウ オブジェクト関数は、タブレット PC 用 CRM では動作しません
タブレット PC 用 CRM では、スクリプトの実行を阻止する可能性のある関数の使用は許されません。window.alert、window.confirm、および window.prompt などの共通する JavaScript の関数は、期待通りには機能しないか、単にエラーをスローするだけです。
ユーザーにメッセージを表示するには、Xrm.UtilityalertDialog 関数と confirmDialog 関数を使用します。 これらの関数の動作はウィンドウ関数とは異なり、ユーザーが閉じるまでスクリプトの処理を停止しません。 これらの関数は、ユーザー入力への非同期応答を可能にするコールバック関数を提供します。window.confirm、window.prompt、またはスクリプトの実行を阻止するその他のネイティブ ウィンドウ関数を使用すると、エラーがスローされます。
注意
フォーム スクリプト内で window.alert を使用すると、設定したメッセージが、コールバック関数を指定しなくても、Xrm.Utility.alertDialog を使用して自動的に表示されますが、これは一時的で、既に削除済みであるとみなされます。Xrm.Utility.alertDialog を代わりに使用するには、window.alert を使用してコードを移動する必要があります。
次のメソッドは タブレット PC 用 CRM では機能しません。
Xrm.Page.context.getCurrentTheme |
Xrm.Page.uiViewPort メソッド |
Xrm.Page.data.entity.getDataXml |
Xrm.Page.ui controlWeb リソースおよび IFRAME コントロール メソッド |
Xrm.Page.ui.formSelector オブジェクト メソッド |
Xrm.Page.ui tab.setDisplayState |
Xrm.Page.ui.navigation.items コレクション |
Xrm.Utility.openWebResource |
これらの関数のほとんどは、空の関数を実行するだけで、何も返しません。 これらの関数の 1 つからの戻り値を期待しているコードがある場合、その値は未確定です。
タブレット PC 用 CRM で実行するコードの指定
クライアント API の機能が異なるときは、下記と同様のコードを組み込んで、各クライアントに適用するロジックを区別する必要があります。
var isCrmForTablets = (Xrm.Page.context.client.getClient() == "Mobile")
if (isCrmForTablets)
{
// Code for CRM for tablets only goes here,
}
else
{
// Code for web browser or CRM for Outlook only goes here.
}
// Code for any client goes here.
タブレット PC 用 CRM に表示するコマンドの指定
ユーザー設定のコマンド バー (リボン) のコマンドで <JavaScriptFunction> (RibbonDiffXml) 操作を使用すると、Xrm.Page.context.client.getClient を使用してコードを区別することもできます。 実行するアクションが タブレット PC 用 CRM を使用して動作しない場合は、タブレット PC 用 CRM にコマンドが表示されないようにする表示ルールを組み込む必要があります。 既定では、明示的に表示されないように構成しない限り、定義されたコマンドは タブレット PC 用 CRM に表示されます。 一般に、タブレット PC 用 CRM を使用して動作することを認識していない場合は、次の表示ルールを定義し、そのルールをすべてのコマンドに組み込む必要があります。
<DisplayRule Id="My.HideOnModern">
<CommandClientTypeRule Type="Modern"
InvertResult="true" />
</DisplayRule>
タブレット PC 用 CRM とブラウザーの Web アプリケーションとの違いに注意
一部の Xrm.Page 関数またはウィンドウ オブジェクト関数は、タブレット PC 用 CRM では動作しません に説明する関数以外に、違いがほかにもあることに留意してください。
複合フィールド
タブレット PC 用 CRM は複合フィールドを異なる方法で実装します。タブレット PC 用 CRM には複合属性が含まれません。 スタッフ属性を自動的に代用して、その属性を代わりに表示します。詳細:複合の属性のスクリプトを記述する.Web リソースと IFRAME
タブレット PC 用 CRM は、フォームでの Web リソースまたは IFRAMEs の表示をサポートしていません。 コードがこれらの種類のコントロールとやりとりする場合、そのコントロールが タブレット PC 用 CRM フォームに表示されない可能性があるので、そのコードが Web ブラウザー クライアントでのみ実行されるように、タブレット PC 用 CRM で実行するコードの指定 のガイダンスを適用する必要があります。
タブレット PC 用 CRM のスクリプトのデバッグ
タブレット PC 用 CRM は 1 つのアプリケーションなので、ブラウザーで使用できる標準の JavaScript デバッグ ツールは利用できません。 フォーム スクリプトおよびリボン コマンドのテストとデバッグには、次の手順をお勧めします。
Web アプリケーションを使用してスクリプトを完全にテストします。
Web ブラウザーを使用したテストの一部として、Xrm.Page.context.client.getClient を使用してクライアントを調べるときの基準を反転し、ユーザーが タブレット PC 用 CRM を使用するときに受け取るエクスペリエンスに対してロジックが適しているかを確認します。タブレット PC 用 CRM で使用できる API は Web ブラウザーで使用できる API のサブセットなので、代替のフローを Web ブラウザーでテストできるはずです。
可能な場合は、Windows 8 と Microsoft Visual Studio がインストールされているコンピューターに タブレット PC 用 CRM をインストールします。デバッガー ステートメントを、Visual Studio を使用してデバッガーを起動する場所に組み込みます。
最後に、Xrm.Utility.alertDialog を使用して、タブレット PC 用 CRM 内のコードの値を表示します。
関連項目
Microsoft Dynamics CRM 2015 フォームのコードを記述する
フォームおよびフィールド イベントの使用
Xrm.Page オブジェクト モデルの使用
複合の属性のスクリプトを記述する
フォーム スクリプトの簡易参照
クライアント側のプログラミング リファレンス
バーまたはリボンの表示
© 2017 Microsoft. All rights reserved. 著作権