分享方式:


為平板電腦版本的 CRM 撰寫指令碼並偵錯

 

發佈日期: 2016年11月

適用對象: Dynamics CRM 2015

平板電腦專用 Microsoft Dynamics CRM 使用用於 Web 應用程式的相同的表單定義。 任何您加到表單事件常式或 Web 應用程式功能表命令的 JavaScript 程式碼可能也會在 平板電腦適用的 CRM 執行。 您需要注意部分差異。

本主題內容

一些 Xrm.Page 或視窗物件函數無法在平板電腦版本的 CRM 中運作

指定哪些碼會在平板電腦版本的 CRM 執行

指定哪些命令會顯示在平板電腦版本的 CRM

請注意在平板電腦版本的 CRM 與瀏覽器中的 Web 應用程式的差異

為平板電腦版本的 CRM 的指令碼偵錯

一些 Xrm.Page 或視窗物件函數無法在平板電腦版本的 CRM 中運作

平板電腦適用的 CRM 不允許會封鎖指令碼執行的任何函數。 一般的 JavaScript 函數,例如 window.alertwindow.confirm、以及 window.prompt 不會依照您的預期運作,或者僅會顯示錯誤訊息。

使用 Xrm.UtilityalertDialogconfirmDialog 函數來顯示訊息給使用者。 這些函數運作的方式有別於視窗函數,因為它們不會停止指令碼的運作,直到使用者下令關閉。 他們提供回撥函數,允許使用者輸入的非同步回覆。 使用 window.confirmwindow.prompt、或其他會阻擋執行指令碼的原生視窗函數,會顯示傳遞錯誤訊息。

備註

如果您在表單指令碼中使用 window.alert,您設定的訊息會自動顯示 (使用 Xrm.Utility.alertDialog),而不回撥指定的函數,但這是暫時且已取代。 您應該使用 window.alert 移動任何程式碼,來使用 Xrm.Utility.alertDialog

下列方法不會在 平板電腦適用的 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

大多數的函數只會執行空的函數且不回傳資訊。 如果您預期從這些函數之中收到回傳值,將會得到未定義的值。

指定哪些碼會在平板電腦版本的 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.

指定哪些命令會顯示在平板電腦版本的 CRM

當您在自訂命令列 (功能區) 命令使用 <JavaScriptFunction> (RibbonDiffXml) 時,您也可以用 Xrm.Page.context.client.getClient 分離您的程式碼。 如果您要執行的動作不會使用 平板電腦適用的 CRM,您應包含顯示規則,如此就不會出現在 平板電腦適用的 CRM。 根據預設,任何定義的命令將會在 平板電腦適用的 CRM 中顯示,除非明確設定不要顯示。 做為規則,您應該定義以下顯示規則並包含在所有命令,除非您知道使用 平板電腦適用的 CRM 可以運作。

<DisplayRule Id="My.HideOnModern">
 <CommandClientTypeRule Type="Modern"
                        InvertResult="true" />
</DisplayRule>

請注意在平板電腦版本的 CRM 與瀏覽器中的 Web 應用程式的差異

其實除了在 一些 Xrm.Page 或視窗物件函數無法在平板電腦版本的 CRM 中運作 描述的功能外,您也應該要知道其他的不同。

  • 複合欄位
    平板電腦適用的 CRM 會以不同方式實作複合欄位。平板電腦適用的 CRM 不包含複合屬性。 它會自動替代關係人屬性並顯示。其他資訊:為複合屬性撰寫指令碼

  • Web 資源與 IFRAME
    平板電腦適用的 CRM 不支援 Web 資源或 IFRAMEs 表單顯示。 如果您的程式碼與這些類型的控制項互動,您可以預期控制項不會出現在 平板電腦適用的 CRM 表單中,且您應該套用 指定哪些碼會在平板電腦版本的 CRM 執行 中的指引,該程式碼才會僅在網頁瀏覽器中執行。

為平板電腦版本的 CRM 的指令碼偵錯

因為 平板電腦適用的 CRM 是一種應用程式,一般可以用在瀏覽器中的 JavaScript 偵錯工具並不能使用。 我們建議您進行下列程序來測試並針對表單指令碼與功能區命令偵錯。

  1. 使用 Web 應用程式,仔細測試您的指令碼

  2. 在使用網頁瀏覽器做部分的測試時,當你使用 Xrm.Page.context.client.getClient 檢驗用戶端時,請取消準則並驗證使用者在使用 平板電腦適用的 CRM 的體驗邏輯是否適當。平板電腦適用的 CRM 使用的 API 是此 API 的子集,可用於網頁瀏覽器,所以您應該可以測試在網頁瀏覽器中的其他流程。

  3. 如果可能的話,請在安裝了 Microsoft Visual Studio 的 Windows 8 電腦上安裝 平板電腦適用的 CRM。 在您想要使用Visual Studio啟動偵錯工具時候和地方,包括偵測工具陳述式。

  4. 最後,在 平板電腦適用的 CRM中使用 Xrm.Utility.alertDialog 來顯示程式碼內的值。

另請參閱

撰寫 Microsoft Dynamics CRM 2015 表單的程式碼
使用表單和欄位事件
使用 Xrm.Page 物件模型
為複合屬性撰寫指令碼
表單指令碼快速參考
用戶端程式設計參考
命令列或功能區簡介

© 2017 Microsoft. 著作權所有,並保留一切權利。 著作權