- Microsoft Dynamics CRM 教程
- Microsoft CRM - 首頁
- Microsoft CRM - 概述
- Microsoft CRM - 環境
- Microsoft CRM - 功能模組
- Microsoft CRM - 實體和記錄
- Microsoft CRM - 欄位
- Microsoft CRM - 表單
- Microsoft CRM - 搜尋
- Microsoft CRM - 網頁資源
- JScript 網頁資源
- HTML 網頁資源
- Microsoft CRM - 工作流流程
- Microsoft CRM - 外掛
- Microsoft CRM - 外掛註冊
- Microsoft CRM - Web 服務
- Microsoft CRM - 解決方案
- Microsoft CRM 有用資源
- Microsoft CRM - 快速指南
- Microsoft CRM - 有用資源
- Microsoft CRM - 討論
JScript 網頁資源
JScript 網頁資源可能是您在使用 Microsoft Dynamics CRM 時最常使用的一類網頁資源。
JavaScript 在 CRM 中的應用
表單事件程式設計
表單事件程式設計用於處理客戶端行為,例如使用者開啟表單、更改某些資料、在選項卡之間移動等時發生的情況。為了實現這種客戶端互動,您需要編寫 JavaScript 程式碼並將其作為 JScript 網頁資源新增到 CRM 中。但是,您編寫的 JavaScript 程式碼必須使用 Dynamic CRM 的 Xrm.Page 模型,而不是標準的 JavaScript DOM。使用 Xrm.Page 模型是 Microsoft 的編碼方式,它確保使用此模型編寫的任何程式碼都與 CRM 的任何未來版本相容。
網頁資源
除了用於表單事件程式設計之外,JavaScript 還用於 CRM 的其他應用程式,例如:
使用唯一的 URL 開啟表單、檢視和對話方塊。
使用 OData 和 SOAP 端點與 Web 服務互動。
在其他網頁資源(如 HTML 網頁資源)中引用 JavaScript 程式碼。
在這種情況下,您將編寫 JavaScript 程式碼(使用 Xrm.Page 模型)並將其作為 JScript 網頁資源新增到 CRM 中,然後可以透過唯一的 URI 在任何地方引用它。
功能區自定義
最後,JavaScript 的另一個常見用途是處理功能區自定義,例如:
- 根據某些邏輯顯示/隱藏功能區按鈕
- 根據某些邏輯啟用/停用功能區按鈕
- 處理單擊特定功能區按鈕時發生的情況
為了處理此類場景,您將編寫 JavaScript 邏輯(使用 Xrm.Page 模型),然後將其作為 JScript 網頁資源新增。然後可以在功能區按鈕的 XML 中引用此網頁資源,並指定要呼叫的 JScript 檔案中的哪個方法來檢查是否應顯示/隱藏或啟用/停用功能區按鈕或處理單擊事件。
Xrm.Page 物件模型
以下是 Xrm.Page 物件的層次結構,顯示了可用的名稱空間、物件及其集合。在編寫 JScript 程式碼時,您將使用這些屬性。
名稱空間
| 序號 | 物件和描述 |
|---|---|
| 1 | 上下文 提供方法來檢索特定於上下文的資訊,例如組織詳細資訊、已登入使用者詳細資訊或作為查詢字串傳遞給表單的引數。 |
| 2 | 資料 提供對實體資料以及管理表單中和業務流程流控制中資料的訪問。 |
| 3 | UI 除了表單的幾個子元件的集合外,還包含用於檢索有關使用者介面資訊的方法。 |
物件
| 序號 | 物件和描述 |
|---|---|
| 1 | 實體 提供方法:
|
| 2 | 流程 用於檢索業務流程屬性的方法。 |
| 3 | 導航 使用 items 集合訪問導航項。 |
| 4 | FormSelector 使用 Items 集合訪問使用者可用的表單。還使用導航方法關閉和開啟表單。 |
| 5 | 階段 每個流程都有一組階段,可以使用流程的 getStages 方法訪問。 |
| 6 | 步驟 每個階段包含各種步驟,可以使用階段的 getSteps 方法訪問。 |
集合
| 序號 | 集合和描述 |
|---|---|
| 1 | 屬性 提供對錶單上可用的實體屬性的訪問。 |
| 2 | 控制元件 ui.controls - 提供對錶單上每個控制元件的訪問。 attribute.controls - 提供對屬性內所有控制元件的訪問。 section.controls - 提供對部分內所有控制元件的訪問。 |
| 3 | 專案 提供對錶單上所有導航項的訪問。 |
| 4 | 選項卡 提供對錶單上所有選項卡的訪問。 |
| 5 | 部分 提供對錶單上所有部分的訪問。 |
表單程式設計中支援的事件
使用 Xrm.Page 模型的表單程式設計允許您處理以下表單事件:
- onLoad
- onSave
- onChange
- TabStateChange
- OnReadyStateComplete
- PreSearch
- 業務流程流控制事件
表單程式設計示例
在此示例中,我們將根據使用者選擇的 PreferredMethodofCommunication 對聯絡人表單進行一些驗證。因此,如果使用者選擇電子郵件作為首選方法,則電子郵件欄位將變為必填欄位,電話和傳真欄位也類似。
步驟 1 - 建立一個名為 contacts.js 的 JavaScript 檔案,並複製以下程式碼。
function validatePreferredMethodOfCommunication() {
//get the value of Preffered Method of Communication code
var prefferedContactMethodCode =
Xrm.Page.getAttribute('preferredcontactmetho dcode').getValue();
//if Preferred Method = Any, make all fields as non-mandatory
//else if Preferred Method = Phone, make Mobile Phone field mandatory
//and all other fields as non-mandatory
//else if Preferred Method = Fax, make Fax field mandatory
//and all other fields as non-mandatory
if(prefferedContactMethodCode == 1) {
clearAllMandatoryFields();
}
if(prefferedContactMethodCode == 2) {
clearAllMandatoryFields();
Xrm.Page.getAttribute('emailaddress1').setRequiredLevel('required');
} else if(prefferedContactMethodCode == 3) {
clearAllMandatoryFields();
Xrm.Page.getAttribute('mobilephone').setRequiredLevel('required');
} else if(prefferedContactMethodCode == 4) {
clearAllMandatoryFields();
Xrm.Page.getAttribute('fax').setRequiredLevel('required');
}
}
function clearAllMandatoryFields() {
//clear all mandatory fields
Xrm.Page.getAttribute('emailaddress1').setRequiredLevel('none');
Xrm.Page.getAttribute('mobilephone').setRequiredLevel('none');
Xrm.Page.getAttribute('fax').setRequiredLevel('none');
}
步驟 2 - 透過導航到設定→自定義→自定義系統→聯絡人實體→表單→主表單開啟聯絡人實體表單。
步驟 3 - 單擊表單屬性。
步驟 4 - 在表單屬性視窗中,單擊新增。
步驟 5 - 在下一個查詢網頁資源記錄視窗中,單擊新建,因為我們正在建立新的網頁資源。
步驟 6 - 在新建網頁資源視窗中,輸入以下詳細資訊:
名稱 - new_contacts.js
顯示名稱 - contacts.js
型別 - JScript
上傳檔案 - 從本地計算機上傳您建立的 JavaScript 檔案。
步驟 7 - 單擊儲存,然後單擊發布。之後關閉視窗,您將返回到查詢網頁資源記錄視窗。
步驟 8 - 在這裡,您現在可以看到 new_contacts.js 網頁資源。選擇它並單擊新增。您現在已成功新增新的網頁資源並在表單上註冊了它。
步驟 9 - 現在,我們將新增一個事件處理程式來處理首選通訊方式欄位的更改。此事件處理程式將呼叫我們剛剛編寫的 JavaScript 函式。從事件處理程式部分選擇以下選項。
控制元件 - 首選通訊方式
事件 - OnChange
然後,單擊新增按鈕,如下面的螢幕截圖所示。
步驟 10 - 在處理程式屬性的下一個視窗中,我們將指定更改事件發生時要呼叫的方法。
選擇庫為 new_contacts.js,函式為 validatePreferredMethodOfCommunication。單擊確定。
步驟 11 - 您現在將能夠看到表單庫(網頁資源)和在其上註冊的事件。單擊確定。
步驟 12 - 單擊儲存,然後單擊發布。
步驟 13 - 現在開啟任何聯絡人表單並將首選通訊方式設定為電話。這將使手機欄位變為必填欄位。如果您現在嘗試在不輸入任何手機號碼的情況下儲存此聯絡人,它將顯示一條錯誤訊息,提示“您必須為手機提供值”。
結論
在本章中,我們首先了解了 JavaScript 在 CRM 中的三個重要應用。之後,我們探討了 Xrm.Page 模型並使用它來學習表單程式設計以及一個示例。